Работа с процендурами/функциями - Pascal ABC
Формулировка задачи:
Оформить операцию обработки двумерного массива, приведенную ниже, в виде подпрограммы (процедуры или функции). Написать главную программу, которая вызывает данную подпрограмму.
Решение задачи: «Работа с процендурами/функциями»
textual
Листинг программы
program ann; uses crt; const nmax=5; type massiv = array [1..nmax, 1..nmax] of integer; var a : massiv; m,n : byte; Procedure In_Mas(var mas:massiv; size_n, size_m:byte); var i, j : byte; Begin Randomize; for i:=1 to size_n do begin for j:=1 to size_m do begin a[i,j]:=random(20)+1; write(a[i,j]:4); end; WriteLn; end; End; Procedure Summa(const mas:massiv; size_n, size_m:byte); var i, j, imx : byte; sm,mx:longint; Begin mx:=0;imx:=1; //пусть первая строка максимальна for i:= 1 to size_n do for j:=1 to size_m do if i=1 then mx:=mx+mas[i,j];//её сумма WriteLn; for i:=1 to size_n do //остальные строки begin sm:=0; for j:=1 to size_m do sm:=sm+mas[i,j]; writeln('Сумма в строке ',i,'=',sm); if sm>mx then begin mx:=sm; imx:=i;//номер строки с максимальной суммой end; end; writeln; write('Максимальная сумма в строке ',imx,'=',mx); End; begin clrscr; repeat write('Количество строк до ',nmax,' n='); readln(n); until n in [1..nmax]; repeat write('Количество столбцов до ',nmax,' m='); readln(m); until m in [1..nmax]; writeln('Исходная матрица:'); In_Mas(a, n, m); Summa(a, n, m); ReadLn; end.
Объяснение кода листинга программы
- В программе объявлены переменные nmax, m и a типа byte и integer соответственно.
- В процедуре In_Mas используется переменная i типа byte и переменная j типа byte.
- В процедуре In_Mas используется цикл for, который выполняется nmax раз.
- Внутри цикла for выполняется еще один цикл for, который выполняется size_n раз.
- Внутри второго цикла for переменная a[i,j] инициализируется случайным числом от 1 до 20.
- Значение переменной a[i,j] записывается в переменную m.
- Выводится значение переменной m с помощью функции write.
- После окончания второго цикла for выполняется функция write с аргументом 4, чтобы вывести значение переменной m.
- Выводится символ новой строки с помощью функции write.
- В процедуре Summa используется переменная mx типа longint и переменная sm типа longint.
- В процедуре Summa используется цикл for, который выполняется size_n раз.
- Внутри цикла for переменная sm инициализируется нулем.
- Внутри второго цикла for переменная mx инициализируется нулем.
- Если i равно 1, то значение переменной mx увеличивается на значение переменной a[i,j].
- Если значение переменной sm больше значения переменной mx, то значение переменной mx обновляется.
- Выводится максимальная сумма в строке с помощью функции write.
- Выводится номер строки с максимальной суммой с помощью функции write.
- Выводится символ новой строки с помощью функции write.
- Программа повторяется до тех пор, пока n и m не станут равными 0.
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д