МАССИВЫ Конечная, упорядоченная по номерам совокупность значений, объединенных общим типом и именем Индекс – величина, характеризующая положение элемента, относительно начала массива. № Х 1 25 2 87 3 43 … … 29 17 30 33 Например, массив Х из 30 элементов (целые числа) Определение элементов массива Const N=30; Var … M:array[1..N] of integer; Массивы (определение и печать элементов массива) Program massiv_Opr_elem; Const N=10; Var k,s:integer; sr:real; M:array[1..N] of integer; begin Randomize; {активизируем датчик случайных чисел} For k:=1 to N do {Определяем элементы массива} M[k]:=random(101) – 50; {случ. числа от -50 до 50} For k:=1 to N do {Печатаем элементы массива} Write( M[k]:5); {в одной строке} Writeln; {Переводим курсор в следующую строку} … … S:=0; For k:=1 to N do {Находим сумму} s:=s + M[k]; {элементов массива} Sr:=s/n; {и среднее значение} Writeln( ‘Сумма=‘,s:5, ‘Среднее значение =’,sr:6:2); Readln; … … Max:=M[1]; Inmax:=1; For k:=1 to N do {Находим максимальное и его индекс} If M[k] > Max then begin Max:= M[k]; Inmax:=k; end; Writeln( ‘Максимальное = M[‘, inmax, ‘]=‘,Max); Readln; … 1. В массиве из 20 элементов найти количество элементов, имеющих отрицательное значение. 2. … имеющих положительное значение. 3. Каких больше (отрицательных или положительных)? 4. Есть ли в массиве элементы, значение которых равно нулю? 5. Найти минимальный элемент массива и его Решение задач индекс. 6. Поменять местами минимальное значение и последний элемент массива. 7. Рассортировать элементы массива по возрастанию. 8. Удалить элемент массива с максимальным значением. 9. После максимального элемента массива вставить число 100 ДВУМЕРНЫЕ МАССИВЫ – Положение элементов описывается двумя индексами. Их можно представить в виде прямоугольной таблицы или матрицы. А= а11 а12 а13 а21 а22 а23 Матрица А размерностью 2*3 (две строки, три столбца) Номер элемента определяется пересечением строки и столбца. а12 – элемент, стоящий в первой строке и во втором столбце. Объявление двумерного массива Const n = 2; m = 3; Var a: array[1..n,1..m] of <тип элементов>; Программы большинства матричных задач строятся на основе вложенных циклов. Внешний цикл работает со строками матрицы, внутренний цикл – со столбцами матрицы Формирование двумерного массива осуществляется всеми возможными способами: ввод с клавиатуры, через генератор случайных чисел, с помощью файла или др. Program dv_mas; {Ввод и вывод двумерного массива А } Const n = 10; m = 15; {размерностью 10*15} Var i,k: integer; a: array[1..n,1..m] of integer; Begin Randomize; {активизируем датчик случайных чисел} For i:=1 to n do {Определяем элементы массива} For k:=1 to m do A[i,k]:=random(51) – 25; {случ. числа от -25 до 25} For i:=1 to n do {Печатаем элементы массива} Begin For k:=1 to m do Write( A[i,k]:5); Writeln; End; … Сформировать одномерный массив, каждый элемент которого равен сумме отрицательных элементов соответствующей строки заданной целочисленной матрицы. (Var ) B: array[1..n] of integer; … For i:=1 to n do Begin B[ i ]:=0; {задание начальных значений элементов массива суммы} For k:=1 to m do if A[ i,k ] < 0 then B[ i ]:= B[ i ] + A[ i,k ]; End; Writeln (‘Массив из суммы отр-ных элементов’); For i:=1 to n do {Печатаем элементы массива В} Write( В[ i ]:5); Writeln; Решение задач 1. Найти максимальный элемент двумерного массива и его индексы. 2. Найти количество отрицательных элементов в каждой строке. 3. Определить, есть ли в данном массиве элемент, равный нулю.