@levedun

Как заполнить двумерный массив?

Здравствуйте.
Есть двумерный массив

masMask: array[1..3, 1..3] of string;

Подскажите, пожалуйста, как полностью заполнить массив известными строками,
до началы работы с массивом.

Например строками 'fgfg', 'fgfgdf', 'dfgder' и т.д.

Если одномерный можно так

const n = 200;
type
	months = (jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec);
	years = 1900..2100;
	people = array[years] of longint;
var
	growth: array[months] of real;
	hum: people;
	notes: array[1..n] of string;


То двумерный не пойму как.
  • Вопрос задан
  • 261 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Mercury13
Программист на «си с крестами» и не только
var // ну или const
masMask: array[1..3, 1..3] of string = (
  ( '11', '12', '13' ), ( '21', '22', '23' ), ( '31', '32', '33' )
);

ВНИМАНИЕ! Я не проверял, как оно работает, когда это локальная переменная (var).

UPD. Проверил, нельзя. Var работает только если массив глобальный. Const, разумеется, работает всегда, ибо создаёт глобальный массив и запрещает туда писать. Если же нужно инициализировать локальный var, надо объявить тип
type TSomeTable = array[1..3, 1..3] of string;
создать какую-то константу
const masStart: TSomeTable = …;
var masMask : TSomeTable;

а затем в начале masMask := masStart;

UPD2. Для чего объявить тип? Читайте правила эквивалентности типов в Паскале, они жёстче, чем в Си. И тот учебник, по которому я учил Паскаль (Зуев), особо упоминает, что два одинаковых array не эквивалентны.

UPD3.
months = (jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec);
 — это не массив! Это перечисляемый тип. Кстати, из-за правил пересечения идентификаторов очень не советую писать типы и перечисляемые константы без венгерской записи, к тому же название months сбивает с толку. Лучше будет TMonth = (monJan, monFeb, …);.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы