Как создать двумерный динамический массив с одним фиксированным измерением? - 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).
Список кода:
- type point=record x,y,c:integer; end;
- var a:array of point; Пояснение к коду:
- Создается тип записи
point
, который содержит три поля типа integer: x, y и c. - Объявляется динамический массив
a
типа array of point. В данном случае это означает, что массивa
будет содержать элементы типа point (записи), а не обычные значения типа integer.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д