Mas : array [ IMin .. IMax , JMin .. JMax ] of 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.

Пример. a[1,1]; b[i,j].

Это означает элемент массива A в 1-й строке и 1-м столбце, элемент массива B в i-й строке и j-м столбце.

3.Матрица называется квадратной, если у неё количество строк равно количеству столбцов ( Mas : array [ IMin .. IMax , JMin .. JMax ] of T - student2.ru ).

Главная диагональ
Рассмотрим квадратную матрицу: Mas : array [ IMin .. IMax , JMin .. JMax ] of T - student2.ru . У ней

Mas : array [ IMin .. IMax , JMin .. JMax ] of T - student2.ru

4. Фрагменты вычисления характеристик строк и столбцов двумерного массива

Характеристика Для каждой строки Для каждого столбца
1. Сумма 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;
2. Произведение 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;
3. Максимальное значение 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;
4. Минимальное значение 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;

Фрагменты вычисления характеристик одномерного массива

Характеристика Для всех элементов ai Для части элементов Mas : array [ IMin .. IMax , JMin .. JMax ] of T - student2.ru
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];
2.Количество k k:=n; k:=0; for i:=1 to n do if A[i]>z then k:=k+1;
3.Произведение 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];
4.Максимальное значение 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];
5. Минимальное значение 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];
6. Среднее значение 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;

5) Фрагменты операций с двумерными массивами

1. Ввод элементов массива writeln('Введи массив A'); for i:=1 to m do for j:=1 to n do read(A[i,j]);
2. Вывод элементов массива writeln('Массив A'); for i:=1 to m do begin for j:=1 to n do write(A[i,j]:10:3); writeln; end;
3. Замена элементов массива на величину z for i:=1 to m do for j:=1 to n do A[i,j]:=z;
4. Увеличение элементов массива на величину z (аналогично уменьшение, умножение, деление) for i:=1 to m do for j:=1 to n do A[i,j]:=A[i,j]+z;
5. Вычисление элементов массива B прибавлением к элементам массива A величины z (аналогично отниманием, умножением, делением) for i:=1 to m do for j:=1 to n do B[i,j]:=A[i,j]+z;

Фрагменты операций с одномерными массивами

1.Ввод элементов массива writeln('Введи массив A'); for i:=1 to n do read(A[i]);
2.Вывод элементов массива writeln('Массив A'); for i:=1 to n do writeln(A[i]:10:3);
3.Замена элементов массива на величину z for i:=1 to n do A[i]:=z;
4.Увеличение элементов массива на величину z (аналогично уменьшение, умножение, деление) for i:=1 to n do A[i]:=A[i]+z;
5.Вычисление нового массива B прибавлением к элементам массива A величины z (аналогично вычитанием, умножением, делением) for i:=1 to n do B[i]:=A[i]+z;
6.Вычисление индекса максимального элемента imax (аналогично минимального) max:=A[1]; imax:=1; for i:=2 to n do if A[i]>max then begin max:=A[i]; imax:=i; end;
7. Перестановка 1-го и 2-го элементов массива c:=A[1]; A[1]:=A[2]; A[2]:=c;

6. К примеру, при вычислении суммы для строки, сначала задается цикл для строк, в котором при переходе на следующую строку значение переменной обнуляется, и далее следует цикл для столбцов, в котором значение каждого столбца складывается с переменной. А при вычислении суммы для столбцов все то же самое,но сначала задается цикл для столбцов, а потом для строк.

8. Что означает каждая строка в приведённой программе

9.

Program lab5; Программа по имени lab5
Var Раздел описания переменных
A: array [1..10,1..15] of real; А-массив,который может содержать от 1 до 10 строк и от 1 до 15 столбцов из элементов вещественного типа
i, j, m, n: integer; s, p, min, max: real; Элементы i, j, m, n-целые числа; s, p, min, max-переменные вещественного типа
Begin Начало раздела операторов(или начало составного оператора)
writeln('Введи m,n'); read(m,n); Ввод пояснительного текста 'Введи m,n'; Ввод переменных m,n
writeln('Введи массив A'); Вывод пояснительной надписи
for i:=1 to m do Задание цикла с параметром для строк
for j:=1 to n do Задание цикла с параметром для стодбцов
read(A[i,j]); Чтение данных с клавиатуры(о значениях элементов массива)
s:=0; p:=1; min:=A[1,1]; max:=A[1,1]; Присваивание значений переменным
for i:=1 to m do for j:=1 to n do Задание цикла с параметром для строк и столбцов
begin Начало раздела операторов(или начало составного оператора)
s:=s+A[i,j]; p:=p*A[i,j]; Переменной s присваивается значение s+A[i,j]; (вычисление суммы) Переменной р присваивается значение p*A[i,j] (вычисление произведения)
if A[i,j]<min then min:=A[i,j]; Оператор условного перехода, в случае выполнения присваивающий переменной значение элемента массива
if A[i,j]>max then max:=A[i,j]; Оператор условного перехода, в случае выполнения присваивающий переменной значение элемента массива
end; Конец раздела операторов
writeln('s=',s:10:3,' p=',p:10:3, ' min=',min:10:3,' max=',max:10:3); Вывод пояснительного текста 's,p,min,max=' и числового значения переменной s, p,min,max, занимающего 10 позиций, в т.ч. 3 цифры после запятой
End. Конец программы

Исправленные задачи

Mas : array [ IMin .. IMax , JMin .. JMax ] of T - student2.ru Program lab5a; Var A: array [1..10,1..15] of real; i, j, m, n: integer; s, p: real; Begin writeln('Введи m,n'); read(m,n); writeln('Введи массив A'); for i:=1 to m do for j:=1 to n do read(A[i,j]); s:=0; p:=1; for i:=1 to m do for j:=1 to n do if i<j then begin s:=s+A[i,j]; p:=p*A[i,j]; end; writeln('s=',s:10:3,' p=',p:10:3); End.
Mas : array [ IMin .. IMax , JMin .. JMax ] of T - student2.ru   Program lab5b; Var A: array [1..10,1..15] of real; i, j, m, n: integer; min, max: real; Begin writeln('Введи m,n'); read(m,n); writeln('Введи массив A'); for i:=1 to m do for j:=1 to n do read(A[i,j]); begin min:=1E10; for i:=1 to m do for j:=1 to n do if (a[i,j]<0) and (a[i,j]<min) then min:=A[i,j]; end; begin for i:=1 to m do for j:=1 to n do max:=-1E10; if (A[i,j]>max) and (a[i,j]<0) then max:=A[i,j]; end; writeln('min=',min:10:3,' max=',max:10:3); End.
Mas : array [ IMin .. IMax , JMin .. JMax ] of T - student2.ru Program lab5c; Var A: array [1..10,1..15] of real; i, j, m, n: integer; nul,s,sr,k: real; Begin writeln('Введи m,n'); read(m,n); writeln('Введи массив A'); for i:=1 to m do for j:=1 to n do read(A[i,j]); nul:=0; for i:=1 to m do for j:=1 to n do if a[i,j]=0 then nul:=nul+1; k:=0; s:=0; for i:=1 to m do for j:=1 to n do if a[i,j]>0 then begin s:=s+a[i,j]; k:=k+1; end; sr:=s/k; writeln('Среднее значение положительных=',sr:10:3,' Количество нулевых элементов=',nul:10:3); End.

Дополнительное задание

Mas : array [ IMin .. IMax , JMin .. JMax ] of T - student2.ru Program dz5_1; Var b: array [1..100,1..100] of real; i, j, m, n: integer; s,k: real; Begin writeln('Введите количество строк m'); read(m); writeln('Введите количество столбцов n'); read(n); for i:=1 to m do for j:=1 to n do begin write('Введи b[',i,',',j,']='); readln(b[i,j]); end; begin s:=0; for i:=1 to m do for j:=1 to n do if b[i,j]>0 then begin s:=s+b[i,j]; end; k:=0; for i:=1 to m do for j:=1 to n do if (b[i,j]>=10) and (b[i,j]<=20) then k:=k+1; writeln ('Сумма положительных= ', s:6:3); writeln ('Кол-во эл-ов в диапазоне от 10 до 20= ', k:6:3); end; End.
Mas : array [ IMin .. IMax , JMin .. JMax ] of T - student2.ru Program dz5_2; Var c: array [1..100,1..100] of real; i, j, m, n: integer; s,sr,p: real; Begin writeln('Введите количество строк m'); read(m); writeln('Введите количество столбцов n'); read(n); for i:=1 to m do for j:=1 to n do begin write('Введи C[',i,',',j,']='); readln(c[i,j]); end; begin s:=0; for i:=1 to m do for j:=1 to n do s:=s+c[i,j]; sr:=s/n; end; begin p:=1; for i:=1 to m do for j:=1 to n do if (c[i,j]>sr) then p:=p*c[i,j]; writeln ('Среднее значение=', sr); writeln ('Произведение эл-ов больше среднего значения=', p); end; End.

Mas : array [ IMin .. IMax , JMin .. JMax ] of T - student2.ru Program dz5_3; Var d: array [1..100,1..100] of real; i, j, m, n: integer; s,k,sr,min: real; Begin writeln('Введите количество строк m'); read(m); writeln('Введите количество столбцов n'); read(n); for i:=1 to m do for j:=1 to n do begin write('Введи D[',i,',',j,']='); readln(d[i,j]); end; begin min:=d[1,1]; for i:=2 to n do for j:=2 to n do if d[i,j]<min then min:=d[i,j]; end; s:=0; k:=0; for i:=1 to n do for j:=1 to n do if d[i,j]<>min then begin s:=s+d[i,j]; k:=k+1; end; sr:=s/k; writeln('min=', min:6:3); writeln('Ср.значение эл-ов, не совпадающих с min=', sr:6:3); End.

Mas : array [ IMin .. IMax , JMin .. JMax ] of T - student2.ru Program dz5_4; Var l: array [1..100,1..100] of real; i, j, m, n: integer; s,max: real; Begin writeln('Введите количество строк m'); read(m); writeln('Введите количество столбцов n'); read(n); for i:=1 to m do for j:=1 to n do begin write('Введи L[',i,',',j,']='); readln(l[i,j]); end; begin max:=-1E10; for i:=1 to n do for j:=1 to n do if (l[i,j]>max) and (l[i,j]<0) then max:=l[i,j]; writeln('Максимальный среди отрицательных', max:6:3); end; if m<>n then writeln ('У матрицы нет главной диагонали') else begin s:=0; for i:=1 to n do for j:=1 to n do begin if i=j then s:=s+l[i,j]; end; writeln('s=', s:6:3); end; End.

Mas : array [ IMin .. IMax , JMin .. JMax ] of T - student2.ru Program dz5_5; Var p: array [1..100,1..100] of real; i, j, n: integer; Begin writeln('Введите количество строк и столбцов n'); read(n); for i:=1 to n do for j:=1 to n do begin write('Введи P[',i,',',j,']='); readln(p[i,j]); end; begin for i:=1 to n do for j:=1 to n do begin if i<j then p[i,j]:=0 else p[i,j]:=round(p[i,j]); end; writeln('Массив A'); for i:=1 to n do begin for j:=1 to n do write(P[i,j]:10:3); writeln; end; end; End.

Наши рекомендации