Как создать двумерный динамический массив с одним фиксированным измерением? - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Что имеется: текстовый файл, в котором содержатся данные о координатах по двум осям и цвет блока (ч/б): (пример: -2 -3 20 -2 -6 25 -3 -9 30 -4 -12 35 0 -12 35 1 -15 33 -5 -15 29 3 -18 30 -7 -18 25 -9 -21 20 -4 -20 100 -6 -24 140 -11 -24 150 -11 -20 80 -10 -16 65 2 -21 140 5 -24 160 6 -21 20 7 -19 60 8 -22 130) Весь текстовик описывает один объект. Цель: описать универсальную процедуру обработки объектов, позволяющую эффективно распределять память (посредством динамических массивов) Предполагаемая структура массива с объектом: двумерный массив, одно измерение которого представляет собой координаты и цвет каждого блока (статический), а другое - номера соответствующих блоков (динамический). Решал проблему так: 1)Создал тип одномерного массива размера [1..n]
2)Добавил тип массива, состоящего из массивов п.1
3)Ввел класс, в параметрах которого фигурирует переменная типа 2
(класс еще дорабатывается, не все переменные используются) 4)Начинаю считывать данные текстовиков:
5)Сама процедура обработки:
Строка ошибки:
Ошибка: Ошибка времени выполнения: Ссылка на объект не указывает на экземпляр объекта. Как я понял, объявлен лишь тип xyz, а не переменные, куда пытаюсь писать данные. Подскажите, как исправить?

Решение задачи: «Как создать двумерный динамический массив с одним фиксированным измерением?»

textual
Листинг программы
type point=record
                x,y,c:integer;
               end;
var a:array of point;//динамический массив

Объяснение кода листинга программы

В данном коде объявлен тип записи point, который содержит три поля: x, y и c типа integer. Затем объявлен динамический массив a типа array of point. Так как в описании задачи указано, что массив должен быть двумерным с одним фиксированным измерением, то в данном случае это означает, что массив a будет одномерным, но каждый его элемент будет являться двумерным массивом (записью типа point). Список кода:

  1. type point=record x,y,c:integer; end;
  2. var a:array of point; Пояснение к коду:
  3. Создается тип записи point, который содержит три поля типа integer: x, y и c.
  4. Объявляется динамический массив a типа array of point. В данном случае это означает, что массив a будет содержать элементы типа point (записи), а не обычные значения типа integer.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5
Похожие ответы