При работе с данными, например с числами, часто возникает ситуация, когда набор этих данных можно назвать одним именем. Например, набор чисел на рис. 1 обозначен именем ЦЕНА, а набор строк именем МАРКА. Такой набор в программировании принято называть массивом.
Массив – это последовательность однотипных элементов, имеющих общее имя, причем каждый элемент этой последовательности определяется порядковым номером (индексом) элемента. Структура массива всегда однородна. Массив может состоять из элементов типа integer, real или char , либо других однотипных элементов. Другая особенность массива состоит в том, что к любой его компоненте можно обращаться произвольным образом. Программа может сразу получить нужный ей элемент по его порядковому номеру (индексу). Номер элемента массива называется индексом.
По способу расположения элементов массивы могут быть одномерными и двумерными.
Одномерный массив можно представить в виде одномерной таблицы. Примером такого массива может быть массив ЦЕНА. У элементов этого массива один индекс, который показывает позицию элемента в массиве.
Двумерный массив можно представить в виде двумерной таблицы как представлено на рисунке ниже. На рис. изображён массив целых чисел с именем А из 3-х строк и 4-х столбцов (или двухмерный массив 3 на 4). В двумерных массивах каждая ячейка имеет два индекса: строка и столбец.
Элементы данного двухмерного массива А записываются так: А[1,1], А[1,2], А[1,3], А[1,4], А[2,1],..., А[2,4], А[3,1],..., А[3,4]
Значения элементов этого массива таковы (рис. 2):
Рис. 2. Значения элементов массива.
Действия над элементами массива A осуществляются аналогично действиям над целыми переменными: С:=А[1,2] + А[2,3]; {C= 7 + 0 = 7}
Двумерные массивы могут быть прямоугольной или квадратной формы. В первом случае это означает, что число строк не равно числу столбцов. Во втором – число строк и столбцов равны. Пример квадратного массива В размером 3х3 приведён на рис. 3.
Рис. 3. Квадратный массив размером 3х3.
Особенностью квадратного массива В является наличие диагонали. Она состоит из элементов В[1,1], В[2,2], В[3,3], которые выделены на рис. 4. Свойством элементов диагонали является равенство индекса строки и индекса столбца.
В основном массивы состоят из целых, вещественных чисел, строк или символов. Пример описания таких массивов представлен в программе Primer_6.
{1} Program primer_6;
{2} Var A:array[1..10] of integer; {Массив целых чисел}
{3} B: array[1..10] of real; {Массив вещественных чисел}
{4} C: array[1..10] of char; {Массив символов}
{5} D: array[1..10] of string; {Массив строк}
{6} E: array[1..3, 1..4] of integer; {Двумерный массив 3 строки ´ 4 столбца}
BEGIN
●●● {команды программы}
END.
В программе primer_6 в строках 2–5 после команды Var задают одномерные массивы А, В, С и D. Все они состоят из 10 элементов и задаются командой: array [1..10] of тип данных. В строке 6 задан двумерный массив Е. Его размер 3 строки на 4 столбца, и он состоит из целых чисел.
Массивы являются удобным средством работать сразу со множеством переменных. Поэтому круг их применения чрезвычайно широк. Например, при компьютерном моделировании при помощи массива можно описать граф или таблицу. В данной главе мы рассмотрим вопросы ввода и вывода элементов массива, а также действия с элементами и индексами массива.
Продолжим программу primer_6 и реализуем заполнение массивов элементами несколькими способами. Также в этой программе сделаем вывод элементов массивов.
{1} Program Primer_6;
{2} Var A: array[1..10] of integer;
{3} B: array [1..10] of real;
{4} C: array [1..10] of char;
{5} D: array [1..10] of string;
{6} E: array [1..3,1..4] of integer;
{7} I, J: integer;
{Конец описательной части}
{8} BEGIN
{9} Randomize;
{10} For I:=1 to 10 do
{11} Begin {начало цикла с параметром для ввода элементов}
{12} A[I]:=Random(100);
{13} B[I]:=A[I]/I;
{14} write('Введите символ:');
{15} readln(C[I]);
{16} write('Введите строку символов:');
{17} readln (D[I]);
{18} End; {конец цикла с параметром для ввода элементов}
{19} For I:=1 to 3 do
{20} For J:=1 to 4 do
{21} E[I,J]:=Random(3,5);
{22} For I:=1 to 10 do write(A[I]:4);
{23} writeln;
{24} For I:=1 to 10 do write(B[I]:8:3);
{25} writeln;
{26} For I:=1 to 10 do write(C[I]:8);
{27} writeln;
{28} writeln('End of Program');
{29} END.
Описание программы. Помимо описаний массивов в строку 7 мы добавили две переменных целого типа: I и J. Это индексы массивов.
В строке 9 команда Randomize; инициализирует создание ряда случайных чисел, которые команда Random(100) создаёт в диапазоне от 0 до 100 (строка 12.) В этой же строке это случайное число присваивается элементу массива А.
В строке 10 задаём цикл с параметром I, который принимает значения от 1 до 10 по числу элементов в массиве. Так в цикле более одной команды, то вводим границы цикла (строки 11 и 18).
В строке 13 элементы массива B создаются путём деления элемента массива A на индекс I.
В строках с 14 по 17 осуществляется ввод элементов массивов С и D. В строках 14 и 16 команда write выводит сообщение на экран, а в строчках 15 и 17 команда readln осуществляет чтение элемента массива с клавиатуры.
В строках 19 и 20 команды цикла осуществляют заполнение двухмерного массива E. Каждый элемент массива создаётся командой Random(3,5);, которая создаёт случайное целое число в диапазоне от 3 до 5 (строка 21). Следует отметить, что, так как массив E является двумерным, то для работы с ним используют два цикла. Первый с параметром I, который означает в цикле номер строки, а второй с параметром J, который означает в цикле номер столбца элемента массива. Цикл For J:=1 to 4 do является вложенным в тело цикла For I:=1 to 3 do. Это означает, что при одном выполнении цикла с параметром I внутри его цикл с параметром J выполнится 4 раза.
В строках с 22 по 27 осуществляется вывод элементов массивов на экран. В строке 22 выполняются две команды – задание цикла с I от 1 до 10 и вывода элемента массива А на экран. Команды write(A[I]:4); означает, что при выводе каждого элемента массива А ему отводиться 4 позиции на экране и следующий элемент будет выведен справа. После выполнения цикла команда writeln; переведёт вывод данных на другую строку. Другими словами выполнение команды writeln; равносильно нажатию клавиши «ENTER».
В строке 24 также выполняется вывод элементов массива В. Команда write(B[I]:8:3); выводит на экран вещественное число, под которое на экране отведено 8 позиций, из них на три числа после запятой.
В строке 28 команда writeln('End of Program'); выполняет вывод на экран сообщения End of Program и переводит вывод данных на другую строку.
Введённые с клавиатуры элементы массивов С и D будут выглядеть следующим образом:
Введите символ: А
Введите строку символов: ЭТО 1-Я СТРОКА
Введите символ: Б
Введите строку символов: ЭТО 2-Я СТРОКА
Введите символ: В
Введите строку символов: ЭТО 3-Я СТРОКА
Введите символ: Г
Введите строку символов: ЭТО 4-Я СТРОКА
Введите символ: Д
Введите строку символов: ЭТО 5-Я СТРОКА
Введите символ: Е
Введите строку символов: ЭТО 6-Я СТРОКА
Введите символ: Ж
Введите строку символов: ЭТО 7-Я СТРОКА
Введите символ: З
Введите строку символов: ЭТО 8-Я СТРОКА
Введите символ: И
Введите строку символов: ЭТО 9-Я СТРОКА
Введите символ: К
Введите строку символов: ЭТО 10-Я СТРОКА
Программа выведет на экран следующую информацию:
41 90 2 95 15 85 44 6 46 53
41.000 45.000 0.667 23.750 3.000 14.167 6.286 0.750 5.111 5.300
А Б В Г Д Е Ж З И К
End of Program
Первая строка – 10 элементов массива А (целые числа), вторая строка - элементы массива В (вещественные числа), третья строка – элемента массива С (символы). Массивы D и E не были выведены.
Прочитать параграф 24. Определения переписать в тетрадь! Выполнить задание 5 после параграфа. Решение в виде текстового файла с кодом выслать на почту: sharlayar@yandex.ru
В теме письма указать ФИО и класс!
Срок: до 9.02.22
У кого нет учебника, Вы можете взять его тут: