Описание типа одномерных массивов.
Способы задания одномерных массивов.
End.
Begin
Одномерные массивы.
Операция над массивами.
Понятие массив данных.
Лекция 21.
Тема «Массивы».
Массивы представляют собой ограниченную упорядоченную совокупность однотипных величин. Каждая отдельная величина называется компонентной или элементом массива. Тип компонент может быть любым, принятым в языке ПАСКАЛЬ, кроме файлового типа. Массив может быть одномерным или многомерным. Для обозначения отдельных компонент используется конструкция, называемая переменной с индексом: A [5] S [k+1]. В качестве индекса может быть использовано выражение. Если массив имеет два индекса, то он называется двумерным B[5,6]. Первый индекс определяет номер строки, второй-номер столбца. Двумерные массивы хранятся в памяти ЭВМ по строкам.
Инициализация. Инициализация-это присваивание компонентам массива начальных значений. Выполняется в цикле:
FOR I: =1 TO 10 DO MASI [I]:=0 ;{ все элементы массива MASI равны 0}
Для двумерных массивов: FOR I: =1TO 3DO
FOR J: =1TO 6
MAT [I, J]:=0;
Другой способ- с использованием типизированных констант, например:
TYPE Dim10=ARRAY [1..10] OF REAL;
COMST raM10:Dim10= (0, 0, 0, 0, 0, 0, 0, 0, 0, 0,)
При инициализации двумерных массивов значения компонент каждого из входящих в него одномерных массивов записывается в скобках:
TYPE Dim3x2= ARRAY [1...3,1...2] OF INTEGER;
CONST iaM3x2: Dim3x2= ((1, 2)
(3, 4)
(5, 6))
Ввод. Ввод элементов массива осуществляется в цикле:
FOR I: =1 TO 10 DO
BEGIN
WRITELN (′Введите′,I′,-ый элемент массива′);
READLN (MAS1 [I]);
END;
Для двумерных массивов: FOR I: =1 TO 3 DO
FOR J: =1TO 6
READLN (MAT [I, J]);
Вывод. Вывод значений элементов массива выполняется аналогично:
FOR I: =1 TO 10 DO WRITELN (MAS1 [I]:6:2) ;{ вывод всего массива}
WRITELN (MAS1 [6]) ;{ вывод 6-го элемента}
FOR I: =1 TO 4 DO
FOR J: =1TO 3 DO
WRITELN (MAS1 [I, J]:8:3) ;{ вывод всего массива Temp2}
WRITELN (MAS1 [2, 3]) ;{ вывод элемента 2-й строки 3-го столбца}
Обработка. Под обработкой массива понимаются любые манипуляции с элементами массива. Например, требуется найти среднее значение 10-ти элементов массива:
SUM: =0;
FOR I: =1TO 10 DO SUM: =SUM+MAS1 [1];
WRITELN (′СРЕДНЕЕ ЗНАЧЕНИЕ =′, SUM/10);
3.1.Основные понятия.
Массивы позволяют при помощи короткой подпрограммы произвести обработку большого количества данных.
Например, если необходимо найти сумму 5 различных целых чисел можно составить следующую программу:
Program summa;
Var al, a2, a3, a4, a5, Sum: Integer;
Writeln (′введите пять целых чисел′);
Readln(a1, a2, a3, a4, a5);{вводим пять чисел}
Siim: =x1+x2+x3+x4+x5;
Writeln (′их сумма равна′, sum);{вывод результата на экран}
Readln;
Теперь рассмотрим задачу, когда необходимо найти сумму 30целых чисел.
Если будим решать эту задачу по аналогии с первой, то необходимо будет описать 30 переменных для всех целых чисел. А это не очень удобно. Поэтому используем для решения этой задачи одномерный массив.
Одномерный массив-это фиксированное количество элементов одного и тоже типа, объединенных одним именем, где каждый элемент имеет свой номер.
Одномерный массив описывается следующим образом: Var A: Array [al...an] OF<Тип элементов>;
где A-переменная типа массив, al-номер первого элемента массива, an-номер последнего элемента массива, в качестве типа элементов может использоваться любой тип данных, кроме файлового.
Так как каждый элемент имеет свой номер, то к каждому элементу можно обращаться непосредственно. Для того, чтобы обратится к i –у элементу этого массива, необходимо записать: A[i]-сначала имя массива, а в квадратных скобках указывается номер элемента, к которому обращаемся – i. Например, обращение к первому элементу массива A-A[i], а к пятому-A [5].
à Первый способ задания одномерного массива - это задание с клавиатуры. Заполнение и вывод массива можно осуществлять только поэлементно, то есть можно сначала присвоить значение первому элементу, затем второму и так далее, до последнего; то же самое и с выводом на экран - выводим первый, второй, третий и так до последнего. На Паскале заполнение одномерного массива, состоящего из N элементов, с клавиатуры осуществляется следующим образом.
For i: =I to n Do {ввод массива с клавиатуры}
Readln(m[i]); {чтение i-го элемента}
End;
Массив m должен быть предварительно объявлен в разделе переменных.
Вывод массива осуществляется следующим образом:.
For i: =I to n Do {ввод массива}
Writeln(m[i]:3); {вывод i-го элемента массива}
à Второй способ задания это задание с помощью генератора случайных чисел, этот способ более удобен, когда много элементов в массиве.
На Паскале данный способ реализуется следующим образом: в теле программы, перед заполнением массива необходима включить генератор случайных чисел Randomize;,после чего записывают примерно так:
Randomize ;{ включение генератора случайных чисел}
For i: =I to n Do
m [i]:=-25+Random(100);
{Random выбирает случайное число из отрезка от 0 до 99, тогда i-му элементу массива будет присвоена сумма выбранного случайного числа и -25, таким образом, массив будет заполнятся случайными числами от-25 до -25+(99), то есть до 26+100}
Распечатка такого массива аналогична первому способу.
à Третий способ задания – это чтение чисел из файла. Этот способ будет рассматриваться позже.
à
Опишем в разделе типов свой тип - одномерный массив, состоящий из n целых чисел.
Type myarray=Array [1...n] of Integer;
Попомним , что раздел типов начинается со служебного слова TYRE, после этого идет имя нового типа и его описание. Между именем типа и его описанием ставится знак “равно” (в разделе переменных между именем переменной и ее описанием ставится двоеточие).Тогда: myarray-это имя нового типа;
Array-служебное слово (в переводе с английского означает “массив”, ″набор″):
[1...n]-в квадратных скобках указывается номер первого элемента, затем, после двух точек, номер последнего элемента массива, пусть в этом примере первый элемент имеет номер 1, а последний – n..
Of-служебное слово (в переводе с английского - ″из″ Integer-тип всех элементов массива.