МАТЕРИАЛЫ К ЛАБОРАТОРНОЙ РАБОТЕ
Тема: Программирование алгоритмов с использованием двумерных массивов данных (матриц).
Цель:
- приобрести навыки разработки алгоритмов циклических вычисли- тельных процессов сложной структуры на примере матриц.
- уметь составлять программы с вложенными циклами на алгоритмическом языке Turbo-Pascal и проводить по ним расчет на компьютере.
Понятие вложенного цикла тесно связано с понятием внешнего и внутреннего цикла. Схема алгоритма с одним вложенным циклом приведена на рисунке 6.
Рисунок 6 – Схема алгоритма вложенного цикла
Цикл по J вложен в цикл по I и по отношению к нему является внутренним, а цикл по I – внешним. Из схемы алгоритма следует, что при I = 1 цикл по J повторяется m раз, т. е. на 1 внешний цикл по I приходится m внутренних по J, поэтому общее число циклов в данном алгоритме будет n x m. В алгоритмах может быть любое число вложений в цикл.
Циклы с одним вложением обычно используются при обработке таблиц, состоящих из строк и столбцов, и имеющих вид двумерных массивов. В таких массивах положение элемента и его значение определяется номером строки и номером столбца:
а1,1 а1,2 а1,3 … а1,m
a2,1 a2,2 a2,3 …a2,m
a3,1 a3,2 a3,3 … a3,m
……………….
an,1 an,2 an,3 … an,m
Элемент такого массива будет А [I, J]. Первый индекс I указывает на номер строки, а второй J – на номер столбца. Тогда при работе с элементами каждой строки массива, необходимо зафиксировать первый индекс I, а изменять второй индекс J, что сможет обеспечить схема алгоритма на рисунке 7. При работе с элементами каждого столбца необходимо зафиксировать второй индекс J, а изменять первый индекс I, что обеспечивает схема алгоритма на рисунке 8.
Рисунок 7 – Схема алгоритма работы с элементами строки | Рисунок 8 – Схема алгоритма работы с элементами столбца |
Пример 3 Группа из 8 студентов сдала 5экзаменов. Определить, сколько студентов сдали сессию со средним баллом более 7.
Экзаменационная ведомость студентов имеет вид матрицы:
х1,1 х1,2 х1,3 x1,4 x1,5
х2,1 х2,2 х2,3 …x2,5
………………..
x8,1 х8,2 х8,3 х8,4x8,5
Элемент матрицы X [I, J] – оценка за экзамен, где первый индекс I указывает номер строки (номер студента), а второй индекс J – номер столбца (номер экзамена). Схема алгоритма решения задачи приведена на рисунке 9.
Рисунок 9 – Схема алгоритма решения к примеру 3
PROGRAM PRIM3;
VAR
S,I,J,K:INTEGER;
SR:REAL;
X:ARRAY [1..8,1..5] OF INTEGER;
BEGIN
FOR J:= 1 TO 8 DO
FOR I:= 1 TO 5 DO READLN(X[I,J]);
K:=0;
FOR I:= 1 TO 8 DO BEGIN
S:=0;
FOR J:= 1 TO 5 DO S:=S+X[I,J];
SR:= S/5;
IF SR>7 THEN K:=K+1;
END;
WRITELN (‘количество студентов’,K:3);
END.
В данном алгоритме ввод элементов матрицы проведен по строкам, а затем обнуляется счетчик количества студентов (K= 0). Далее при I= 1 внутренний цикл по J= 1,5 осуществляет суммирование баллов по каждому из экзаменов (S = S + X [I, J]), предварительно принимая сумму баллов для каждого студента, равной нулю (S= 0). По выходе из внутреннего цикла вычисляется средний балл каждого студента SRи количество студентов увеличивается на единицу (K = K + 1) при SR >7, а при невыполнении этого условия K остается прежним. После этого осуществляется выход во внешний цикл, и процесс повторяется для следующего студента (I= 2) и т. д., пока I непревысит 8.
Дата добавления: 2022-02-05; просмотров: 257;