Читайте также: |
|
Массивы
Массив – поименованный набор с фиксированным количеством однотипных данных.
Размерность массива – количество элементов массива.
Виды массивов: одномерный, двумерный и многомерный.
Для однозначной идентификации каждому элементу массива присваивается свой номер.
Номер элемента одномерного массива состоит из одной цифры, обозначающей номер столбца.
А | а1 | а2 | а3 | … | аn-1 | an |
Двумерный массив: номер элемента двумерного массива состоит из двух цифр – первая обозначает номер строки, вторая – номер столбца (на пересечении которых находится сам элемент). Например номер 23, элемент b указывает на вторую строку и третий столбец.
B | b11 | b12 | b13 | … | b1n-1 | b1n |
b21 | b22 | b23 | … | b2n-1 | b2n | |
b31 | b32 | b33 | … | b3n-1 | b3n | |
… | ||||||
bm1 | bm2 | bm3 | … | bmn-1 | bmn |
Описание массива.
Как и все переменные, массивы описываются в разделе переменных:
<имя массива>: array [<размерность>] of <тип элементов массива>;
Например, опишем массив A размерность 5 целых чисел.
А | а1 | а2 | а3 | a4 | a5 |
var
A: array [1..5] of integer;
Двумерный массив B размерностью 5 на 7 (5×7) описывается следующим образом:
B | b11 | b12 | b13 | b14 | b15 | b16 | b17 |
b21 | b22 | b23 | b24 | b25 | b26 | b27 | |
b31 | b32 | b33 | b34 | b35 | b36 | b37 | |
b41 | b42 | b43 | b44 | b45 | b46 | b47 | |
b51 | b52 | b53 | b54 | b55 | b56 | b57 |
var
B: array [1..5, 1..7] of integer;
Заполнение массива элементами.
Каждому элементу массива можно присвоить (или ввести с клавиатуры) число, соответствующие типу массива:
Присваивание: | Ввод с клавиатуры: | |
Одномерный массив | ||
А [1]:=15; А [2]:=35; А [3]:=6; … А [5]:=15; | Read (A[1]); Read (A[2]); Read (A[3]); … Read (A[5]); | |
Двумерный массив | ||
B[1,1]:= 45; B[1,2]:=12; … B[1,7]:=18; … B[2,1]:= 45; B[2,2]:=12; … B[2,7]:=18; … B[5,1]:= 45; B[5,2]:=12; … B[5,7]:=18; | Read (B[1,1]); Read (B[1,2]); … Read (B[1,7]); | Заполнение первой строки |
… Read (B[2,1]); Read (B[2,2]); … Read (B[2,7]); | Заполнение второй строки | |
… Read (B[5,1]); Read (B[5,2]); … Read (B[5,7]); | Заполнение пятой строки |
Данные способы трудоемки, особенно если у массива большая размерность. В большинстве случаев удобно использовать циклы, поскольку все команды одинаковы, за исключением порядковых элементов массива. Порядковые номера изменяются с каждой последующей командой на й, поэтому рациональнее использовать цикл For, в котором параметр цикла будет играть номер строки или столбца, увеличиваясь с каждым шагом.
Ввод с клавиатуры: | |||||
Одномерный массив | |||||
For i:=1 to 5 do Read (A[i]); | - в данном фрагменте одна команда – цикл, тело которого будет выполняться 5 раз. С каждым шагом параметр цикла i будет изменяться на 1, начиная с 1 до 5, т.е. будут выполнены следующие команды: Read (A[1]); Read (A[2]); Read (A[3]); Read (A[4]); Read (A[5]); | ||||
Двумерный массив | |||||
For i:=1 to 5 do For j:=1 to 7 do Read (B[i, j]); | В данном фрагменте 1 команда – цикл по i, в теле которого цикл по j. При каждом выполнении цикла по i, тело цикла по j Read (B[i, j]), будет выполняться 7 раз, меняя параметр j от 1 до 7. Другими словами, при каждом выполнении тела цикла по i, будет заполняться строка массива с номером соответствующего i. | ||||
i=1 | j=1 | B [1,1] | заполнение 1 строки массива | ||
j=2 | B [2,1] | ||||
j=3 | B [3,1] | ||||
… | … | ||||
j=7 | B [7,1] | ||||
Параметр i автоматически увеличивается на 1 | |||||
i=2 | j=1 | B [2,1] | заполнение 2 строки массива | ||
j=2 | B [2,1] | ||||
j=3 | B [2,1] | ||||
… | … | ||||
j=7 | B [2,1] | ||||
… | |||||
i=5 | j=1 | B [5,1] | заполнение 5 строки массива | ||
j=2 | B [5,1] | ||||
j=3 | B [5,1] | ||||
… | … | ||||
j=7 | B [5,1] | ||||
Так же массивы можно заполнять автоматически с помощью функции random.
Random (x) – возвращает псевдослучайное целое число из интервала [0…x-1].
Например:
x:= random (5); | переменной х будет присвоено целое число из интервала от 0 до 4 |
s:= random (11) + 4; | переменной s будет присвоено целое число из интервала от 4 до 14 |
n:= random (13) – 6 | переменной n будет присвоено целое число из интервала от -6 до 6 |
d:= random (6) + random (4) | переменной d будет присвоено целое число из интервала от 0 до 8 |
r:= random (12) – random (3) | переменной r будет присвоено целое число из интервала от -2 до 11 |
Перед использованием данной функции обычно выполняется процедура инициализации датчика случайных чисел – randomize; иначе программа всегда будет выдавать один и тот же результат. Randomize задает начальное значение последовательности, от которого вычисляются все последующие. При каждом запуске программы это значение будет разным, а значит и результат работы функции randomбудет различным.
Заполнить, рассмотренные выше массивы A и B целыми числами из интервала
[–30…50] и [15…100] соответственно.
randomize; For i:=1 to 5 do A[i]:= Random(81) – 30; | randomize; For i:=1 to 5 do For j:=1 to 7 do B[i, j]:= Random(86) + 15; |
Дата добавления: 2015-07-08; просмотров: 180 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
End Sub | | | Символьный тип. |