Таблица 1
Характеристика | Для всех элементов | Для части элементов |
| Сумма s | s:=0; for i:=1 to n do s:=s+A[i]; | s:=0; for i:=1 to n do if A[i]>z then s:=s+A[i]; |
| Количество k | k:=n; | k:=0; for i:=1 to n do if A[i]>z then k:=k+1; |
| Произведение p | p:=1; for i:=1 to n do p:=p*A[i]; | p:=1; for i:=1 to n do if A[i]>z then p:=p*A[i]; |
| Максимальное значение max | max:=A[1]; for i:=2 to n do if A[i]>max then max:=A[i]; | max:=-1E10; for i:=1 to n do if (A[i]>max) and (A[i]>z) then max:=A[i]; |
| Минимальное значение min | min:=A[1]; for i:=2 to n do if A[i]<min then min:=A[i]; | min:=1E10; for i:=1 to n do if (A[i]<min) and (A[i]>z) then min:=A[i]; |
| Среднее значение sr | s:=0; for i:=1 to n do s:=s+A[i]; sr:=s/n; | s:=0; k:=0; for i:=1 to n do if A[i]>z then begin s:=s+A[i]; k:=k+1; end; sr:=s/k; |
Фрагменты операций с одномерными массивами
Рассмотрим фрагменты программ в таблице 2.
Таблица 2
Операция | Фрагмент программы |
| Ввод элементов массива | for i:=1 to n do read(A[i]); |
| Вывод элементов массива | for i:=1 to n do writeln(A[i]); |
| Замена элементов массива на величину z | for i:=1 to n do A[i]:=z; |
| Увеличение элементов массива на величину z (аналогично уменьшение, умножение, деление) | for i:=1 to n do A[i]:=A[i]+z; |
| Вычисление элементов массива B прибавлением к элементам массива A величины z (аналогично вычитанием, умножением, делением) | for i:=1 to n do B[i]:=A[i]+z; |
| Вычисление индекса максимального элемента imax (аналогично минимального) | max:=A[1]; imax:=1; for i:=2 to n do if A[i]>max then begin max:=A[i]; imax:=i; end; |
| Вывод индексов для части элементов | for i:=1 to n do if A[i]>z then writeln(i); |
| Перестановка 1-го и 2-го элементов одномерного массива | c:=A[1]; A[1]:=A[2]; A[2]:=c; |
Особенности элементов одномерного массива
Рассмотрим одномерный массив
. Элементы ai этого массива имеют такие особенности:
10.2. Двумерные массивы
Двумерный массив (матрица) – массив, элементы которого имеют два номера (номер строки и номер столбца).
Индекс двумерного массива – порядковый номер строки или столбца в двумерном массиве.
Описание двумерного массива в разделе описания переменных (Var) на языке Pascal имеет вид:
Mas : array [ IMin.. IMax, JMin.. JMax ] of T ;
где array – массив, of – из, Mas – имя массива, IMin – минимальное значение индекса строки, IMax – максимальное значение индекса строки, JMin – минимальное значение индекса столбца, JMax – максимальное значение индекса столбца, T – тип элементов.
Это означает, что переменная Mas является массивом, который может иметь индексы строк от IMin до IMax, индексы столбцов от JMin до JMax у элементов типа T.
Пример.
Var A : array [1..10,1..15] of real;
Это означает, что переменная A – массив, который может содержать от 1 до 10 строк, от 1 до 15 столбцов из элементов вещественного типа.
Доступ к элементу двумерного массива на языке Pascal имеет вид:
Mas [ Ind1 , Ind2 ]
где Mas – имя массива, Ind1 – индекс строки, Ind2 – индекс столбца.
Это означает доступ к элементу массива Mas, находящемуся в строке с индексом Ind1 и в столбце с индексом Ind2 .
Пример.
A[1,1]
b[i, j]
Это означает элемент массива A в 1-й строке и 1-м столбце, и т. д.
Задача 2.
Условие задачи. Дан двумерный массив A из m строк и n столбцов (m ≤ 10; n ≤ 15). Найти сумму положительных элементов в массиве A.
Блок-схема.
Программа.
Program z2;
Var
A:array[1..10,1..15] of real;
i, j,m, n:integer;
s:real;
Begin
read(m, n);
s:=0;
for i:=1 to m do
for j:=1 to n do
begin
read(A[i, j]);
if A[i, j]>0 then s:=s+A[i, j];
end;
writeln(s);
End.
Пусть A - двумерный массив, m - количество строк, n - количество столбцов, i - индекс строки, j - индекс столбца. Рассмотрим следующие фрагменты программ.
Фрагменты вычисления характеристик двумерного массива
Рассмотрим фрагменты программ в таблице 3.
Таблица 3
Характеристика | Для всех элементов | Для части элементов |
| Сумма s | s:=0; for i:=1 to m do for j:=1 to n do s:=s+A[i, j]; | s:=0; for i:=1 to m do for j:=1 to n do if A[i, j]>z then s:=s+A[i, j]; |
| Количество k | k:=m*n; | k:=0; for i:=1 to m do for j:=1 to n do if A[i, j]>z then k:=k+1; |
| Произведение p | p:=1; for i:=1 to m do for j:=1 to n do p:=p*A[i, j]; | p:=1; for i:=1 to m do for j:=1 to n do if A[i, j]>z then p:=p*A[i, j]; |
| Максимальное значение max | max:=A[1,1]; for i:=1 to m do for j:=1 to n do if A[i, j]>max then max:=A[i, j]; | max:=-1E10; for i:=1 to m do for j:=1 to n do if (A[i, j]>max) and (A[i, j]>z) then max:=A[i, j]; |
| Минимальное значение min | min:=A[1,1]; for i:=1 to m do for j:=1 to n do if A[i, j]<min then min:=A[i, j]; | min:=1E10; for i:=1 to m do for j:=1 to n do if (A[i, j]<min) and (A[i, j]>z) then min:=A[i, j]; |
| Среднее значение sr | s:=0; for i:=1 to m do for j:=1 to n do s:=s+A[i, j]; sr:=s/(m*n); | s:=0; k:=0; for i:=1 to m do for j:=1 to n do if A[i, j]>z then begin s:=s+A[i, j]; k:=k+1; end; sr:=s/k; |
Фрагменты вычисления характеристик строк и столбцов двумерного массива
Рассмотрим фрагменты программ в таблице 4.
Таблица 4
Характеристика | Для каждой строки | Для каждого столбца |
| Сумма s | for i:=1 to m do begin s[i]:=0; for j:=1 to n do s[i]:=s[i]+A[i, j]; end; | for j:=1 to n do begin s[j]:=0; for i:=1 to m do s[j]:=s[j]+A[i, j]; end; |
| Произведение p | for i:=1 to m do begin p[i]:=1; for j:=1 to n do p[i]:=p[i]*A[i, j]; end; | for j:=1 to n do begin p[j]:=1; for i:=1 to m do p[j]:=p[j]*A[i, j]; end; |
| Максимальное значение max | for i:=1 to m do begin max[i]:=A[i,1]; for j:=1 to n do if A[i, j]>max[i] then max[i]:=A[i, j]; end; | for j:=1 to n do begin max[j]:=A[1,j]; for i:=1 to m do if A[i, j]>max[j] then max[j]:=A[i, j]; end; |
| Минимальное значение min | for i:=1 to m do begin min[i]:=A[i,1]; for j:=1 to n do if A[i, j]<min[i] then min[i]:=A[i, j]; end; | for j:=1 to n do begin min[j]:=A[1,j]; for i:=1 to m do if A[i, j]<min[j] then min[j]:=A[i, j]; end; |
Фрагменты операций с двумерными массивами
Рассмотрим фрагменты программ в таблице 5.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 |


