В предыдущих записях мы работали с обычными переменными, которые хранили некоторые данные. Как вы помните, это были числовые данные, строки или значения типа true, а также false. Но что делать, если мы должны написать программу, которая будет работать с тысячей чисел? В конце концов, мы же не объявим для каждого числа отдельную переменную… и именно в этом случае используются массивы.
Практически любой язык программирования позволяет использовать массивы, так называемые структуры, состоящие из одинаковых элементов одного типа. Простейший одномерный массив можно представить таким образом:
x1 | x2 | x3 | … | xn |
Точно так же данные хранятся в, так называемых, одномерных массивах. В Паскале они объявляются следующим образом:
1 |
VAR table : array[1..10] of integer; |
И общий код:
1 2 |
VAR custom_name of the array : array[1..10] {<span class="enlighter-text">количество элементов в т. е. от 1</span> <span class="enlighter-g1">до 10</span>} of integer; {тип данных integer, byte, single и т.д. |
Объявленный выше массив будет визуально выглядеть так:
x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | x10 |
Конечно, он не будет содержать никаких данных.
Итерационный цикл используется для чтения и записи данных в массивы for-to-do. Рассмотрим на примере, как это делается:
1 2 3 4 5 6 7 8 9 10 11 |
programm table; uses CRT; var table : array[1..10] of integer; i:byte; begin clrscr; for i:=1 to 10 do table[i] := i; {в массив с индексом, равным значению переменной мы присваиваем число, которое в настоящее время сохраняется в итерационной переменной} for i:=1 to 10 do writeln(table[i]); {отображаем значение индекса массива, обозначенного заданным номером, например, массивом[1] - при первом выполнении цикла, массив[2], таблица[3] и т.д.} repeat until keypressed; end. |
Запись данных:
1 |
for i:=1 to 10 do table[i] := i; |
Чтение данных:
1 |
for i:=1 to 10 do writeln(<span class="enlighter-text">таблица</span><span class="enlighter-g1">[</span><span class="enlighter-text">i</span><span class="enlighter-g1">])</span>); |
С Уважением, MonitorBank