АЛГОРИТМЫ НА МАТРИЦАХ
|
|
|
|
Столбец |
|
|
|
|
|
||
- k |
|
|
|||||||||
|
|
|
|
A11 |
A12 |
... |
A |
|
1k |
... A1n |
|
|
|
|
|
|
|||||||
|
|
|
|
A21 |
A22 |
... |
A2k |
... A2n |
|||
|
|
|
|
A31 |
A32 |
... |
A3k |
... A3n |
|||
... ... ... |
... |
... ... |
|
||||||||
Строка- |
|
i |
|
Ai1 |
Ai2 ... |
Aik |
... Ain |
|
|||
|
|
|
|||||||||
|
|
... ... ... |
... |
... ... |
|
||||||
|
|
||||||||||
|
|
|
|
Am1 |
Am2 ... |
Amk |
... Amn |
МАССИВЫ В ПРОГРАММЕ
ОПИСАНИЕ |
ОБРАЩЕНИЕ К |
|||
|
|
|
|
ЭЛЕМЕНТУ |
Паскаль |
|
|
|
МАССИВА |
|
|
|
Паскаль |
|
|
границы - только |
|
||
|
|
константы |
|
|
|
|
|
|
|
Имя: array[нг1..вг1]…[нгN.. вгN]of тип имя[индекс_1,…,индекс_N]
индекс_i - целое выражение, индекс_i = нг, нг+1…,вг
ДВУМЕРНЫЕ МАССИВЫ ПАСКАЛЬ-ПРОГРАММЕ
Пример.
B:array [1..3,1..5]of integer;
b[1][1] |
b[1][1] ... b[1][5] |
|
|||
b[2][1] |
b[2][2] ... b[2][5] |
Первый индекс - номер |
|||
|
|
|
|
||
b[3][1] |
b[3][2] ... b[3][5] |
||||
строки, второй - столбца |
В памяти компьютера элементы массива расположены по строкам (чаще меняется последний индекс)
Задача. По итоговой экзаменационной ведомости
вычислить средний балл каждого студента и число |
|
отличников. |
Предметы |
|
|
N 30, M 5 |
|
С
т
у
д
е
н
т
ы
|
Состав данных |
|
Имя |
Смысл |
Тип |
|
Исходные данные |
|
N |
число студентов |
целый |
M |
число предметов |
целый |
A |
матрица-ведомость |
вещественный |
|
Выходные данные |
|
B |
средний балл каждого студента |
вещественный |
К |
число отличников |
целый |
|
Промежуточные переменные |
|
i |
номер строки (студента) |
целый |
j |
номер строки (предмета) |
целый |
Структура
простая переменная
простая переменная двумерный массив 30*5
простая переменная простая переменная
простая переменная простая переменная
Форма ввода
Input N,M |
|
<N> <M> |
|
Input matrix <N>*<M> |
|
<A[1][1]> < A[1][2]>… |
<A[1][M]> |
… |
|
<A[N][1]> < A[N][2]>… |
<A[N][M]> |
Форма вывода
i |
B |
<i> |
<B>} N раз |
K=<K>
1начало
2ввод N,M,{A[i,j]}
3 K:=0
4i:=1
NM i 1 j 1
6
7
в теле цикла имеется циклполучаем цикл
кратности 2
5 |
i N+ |
|
|
|
|
|
|
|
вычисление B |
|
|
|
вывод i,B |
|
|
|
8 |
+ |
|
|
B=5 |
|
|
|
|
9 |
K:=K+1 |
10 |
i:=i+1 |
|
|
11вывод K начало
Блок 6. Вычисление среднего балла
5
B:=0
j:=1
j M
+
B:=B+A[i,j]
j:=j+1
B:=B/M
7
Program sr_ball; |
|
|
||
Var N,M,K,i, j:integer; |
real; B:real; |
|||
A: array[1..30,1..5] of |
||||
Begin |
|
|
|
|
writeln(´Input N, M´); |
|
|||
readln(N,M); |
|
|
||
writeln(´Input matrix ´,N,´*´,M); |
||||
for i:=1 to N do |
|
|
||
for j:=1 to M do |
|
|||
|
read(A[i,j]); |
|
||
readln;{закончен ввод} |
||||
K:=0; |
|
i |
B´); {вывод “шапки” таблицы} |
|
writeln(´ |
||||
for i:=1 to N do {перебор строк – студентов} |
||||
begin |
|
|
|
|
B:=0; |
|
|
|
|
for j:=1 to M do {движение по строке – перебор предметов} |
||||
|
B:=B+A[i,j]; |
|
||
B:=B/M; {вычислили средний балл} |
||||
writeln(´ |
´,i,´ |
´, B:4:2); |
||
if |
abs(B-5)<1.0e-7 then |
|||
end; |
K:=K+1; |
|
|
|
writeln(´ |
K=´,K); |
|
||
readln |
|
|
|
|
End. |
|
|
|
|
Задача. Для каждой строки матрицы найти минимальное значение элементов
Состав данных
Имя |
Смысл |
Тип |
Структура |
|
|
Исходные данные |
|
||
N |
число строк |
целый |
простая переменная |
|
M |
число столбцов |
целый |
||
простая переменная |
||||
A |
заданная матрица |
вещественный |
||
двумерный массив |
||||
|
Выходные данные |
10*10 |
||
|
|
|||
min |
минимальное значение |
вещественный |
одномерный массив |
|
|
элементов строки |
|
из 10 элементов |
|
|
Промежуточные переменные |
|||
|
|
|||
i |
номер строки |
целый |
простая переменная |
|
j |
номер строки |
целый |
простая переменная |
|
|
|
|
|
|
|
|
|
начало |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Program min_strok; |
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
ввод N,M,{A[i,j]} |
N M |
|
|
|
|
Var N,M, i,j:integer; |
|
||||||||||||||||||||||||
|
|
|
|
|
|
i 1 j 1 |
|
|
|
|
A:array[1..10,1..10] of real; |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
min:array[1..10] of real; |
||||
|
|
|
|
|
|
|
|
|
|
|
i:=1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
нет |
|
|
|
|
Begin |
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
writeln (´Input N, M´); |
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
i≤N |
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
readln (N, M); |
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
да |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
writeln(´Input matrix ´,N,´*´,M); |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
min[i]=A[i,1] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for i:=1 to N do |
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for j:=1 to M do |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
j:=2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
read(A[i,j]); |
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
нет |
|
|
|
|
readln; {закончен ввод} |
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
j≤M |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for i:=1 to N do |
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
begin |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
нет |
|
|
|
|
|
|
да |
|
|
|
|
min[i]=A[i,1]; |
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for j:=2 to M do |
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
a[i] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
[j]<min[i] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if |
A[i,j]<min[i] then |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
min[i]:=a[i,j] |
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
end; |
min[i]=a[i,j]; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
j:=j+1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
writeln(´ Results´); |
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Цикл в |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for i:=1 to N do |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
write(min[i]:8:2,´ ´); |
|
цикле - |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
i:=i+1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
writeln; |
|
|
кратный |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
readln |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
вывод K |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
End. |
|
|
цикл |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
конец