АЛГОРИТМЫ НА МАТРИЦАХ
МАССИВЫ В ПРОГРАММЕ ОПИСАНИЕ Паскаль ОБРАЩЕНИЕ К ЭЛЕМЕНТУ МАССИВА границы - только константы Паскаль Имя: array[нг 1. . вг 1]…[нг. N. . вг. N]of тип имя[индекс_1, …, индекс_N] индекс_i - целое выражение, индекс_i = нг, нг+1…, вг
ДВУМЕРНЫЕ МАССИВЫ ПАСКАЛЬ-ПРОГРАММЕ Пример. B: array [1. . 3, 1. . 5]of integer; 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 С т у д е н т ы
1 2 начало ввод N, M, {A[i, j]} K: =0 3 4 i: =1 5 i N + 6 вычисление B 7 вывод i, B в теле цикла имеется цикл получаем цикл кратности 2 8 B=5 + 9 10 11 i: =i+1 вывод K начало K: =K+1
Блок 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; A: array[1. . 30, 1. . 5] of real; B: real; 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; writeln(´ i B´); {вывод “шапки” таблицы} 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. 0 e-7 then K: =K+1; end; writeln(´ K=´, K); readln End.
Задача. Для каждой строки матрицы найти минимальное значение элементов Состав данных
начало ввод N, M, {A[i, j]} i: =1 нет i≤N да min[i]=A[i, 1] j: =2 нет j≤M нет да a[i][j]
КЛАССИФИКАЦИЯ ЦИКЛОВ ЦИКЛЫ ИТЕРАЦИОННЫЕ ПОКА ДЕТЕРМИНИРОВАННЫЕ ПАРАМЕТРИЧЕСКИЕ ЦИКЛЫ ДО ЦИКЛЫ РАЗЛИЧНОЙ КРАТНОСТИ Однократные Двукратные. . .