OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 17 Июль, 2018 14:23

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
СообщениеДобавлено: Воскресенье, 10 Июнь, 2012 11:15 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4485
Откуда: Россия, Орёл
У меня была отложена в закорках "сишная" схема, подразумевал, что и тут (ББ/КП) так же; даже проверить в голову не приходило:
Код:
MODULE PrivTest;

   IMPORT Log, SYSTEM;
   
   PROCEDURE Do* (a, b: INTEGER);
      VAR   p: POINTER TO ARRAY OF ARRAY OF INTEGER; i, j, base: INTEGER;
   BEGIN
      NEW(p, a, b);
      i := 0;
      base := SYSTEM.ADR(p^);
      WHILE i < LEN(p) DO
         j := 0;
         WHILE j < LEN(p[i]) DO
            Log.Int(SYSTEM.ADR(p[i, j]) - base);
            INC(j)
         END;
         Log.Ln;
         INC(i)
      END
   END Do;
   
END PrivTest.
^Q "PrivTest.Do(2, 3)"
Код:
  0 4 8
 12 16 20


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 10 Июнь, 2012 11:58 

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 7834
Откуда: Троицк, Москва
Вы бы оснащали чиселки интерпретацией.

А то требуется пусть маленькое, но ненужное усилие и потеря времени, чтобы понять (тем, кто это знал всегда), что тут речь о том, что ... некоторые знали всегда :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 10 Июнь, 2012 12:50 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1158
Откуда: Tel-Aviv
Ну да. А в чём новость?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 10 Июнь, 2012 14:30 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 2846
Откуда: Астрахань
Да. А как иначе? Память-то линейная. Поэтому вся "многомерность" - это вычисление соответствующих индексов на строке элементов... :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 10 Июнь, 2012 14:45 

Зарегистрирован: Среда, 04 Июль, 2007 16:43
Сообщения: 229
Валерий Лаптев писал(а):
Да. А как иначе? Память-то линейная. Поэтому вся "многомерность" - это вычисление соответствующих индексов на строке элементов... :)

Т.е. нет отличия от C?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 10 Июнь, 2012 17:07 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1537
Откуда: Беларусь, Минск
Евгений Темиргалеев писал(а):
Код:
  0 4 8
 12 16 20

Так а что Вы хотели сказать?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 10 Июнь, 2012 19:52 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4485
Откуда: Россия, Орёл
Хотел сказать, что мне долгое время казалось одно, а реально было другое. Пережитки сей в голове. Насчёт "сишной" схемы --- посмотрите какие примеры попадаются при поиске "динамический двумерный массив в си". Например тут: http://citforum.ru/programming/cpp_march/cpp_059.shtml
Много "на виду" примеров с линеаризацией?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 11 Июнь, 2012 00:31 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1537
Откуда: Беларусь, Минск
А, всё, теперь понятно. А то название темы вкупе с первым предложением как-то запутывало. Почему-то показалось, что в Си оно выделяется одним блоком, а в Обероне - непонятно.

В Си, подозреваю, тоже можно одним блоком выделять. x*y ячеек памяти выделить в new, а затем каждый из x указателей выставить в правильную позицию выделенного блока памяти.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2018, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB