Найти и напечатать минимальные по значению элементы в каждой строке заданной матрицы - Free Pascal
Формулировка задачи:
Определить и напечатать количество ненулевых элементов в каждом столбце заданной матрицы. Найти и напечатать минимальные по значению элементы в каждой строке заданной матрицы.(как видите я это сделал).
Только вот, программу надо распределить на функции и процедуры.
Буду очень благодарен)
Var A:array[1..10,1..10] of integer; B:array[1..10] of integer; i,j:byte; k:byte; S:real; Begin For i:=1 to 10 do For j:=1 to 10 do A[i,j]:=Random (10)-5; For i:=1 to 10 do Begin For j:=1 to 10 do Write (A[i,j]:6); Writeln; end; For j:=1 to 10 do Begin k:=0; For i:=1 to 10 do If A[i,j]<>0 then k:=k+1; Writeln ('столбец',j,'=',k); end; For i:= 1 to 10 do Begin B[i]:=A[i,1]; For j:=2 to 10 do If A[i,j]<B[i] Then B[i]:=A[i,j]; write(B[i]:6); End; End.
Решение задачи: «Найти и напечатать минимальные по значению элементы в каждой строке заданной матрицы»
textual
Листинг программы
uses crt; const n=10; type mtr=array[1..n,1..n] of integer; procedure matrix(var a:mtr); var i,j:byte; begin for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=-5+random(10); write(a[i,j]:6) end; writeln end; end; function zero(a:mtr;k:byte):byte; var i,s:byte; begin s:=0; for i:=1 to n do if a[i,k]<>0 then s:=s+1; zero:=s end; function min(a:mtr;k:byte):integer; var j:byte; mn:integer; begin mn:=a[k,1]; for j:=2 to n do if a[k,j]<mn then mn:=a[k,j]; min:=mn end; var a:mtr; i,j:byte; begin clrscr; randomize; matrix(a); write('Нажмите Enter'); readln; writeln('Количество ненулевых элементов в столбцах'); for j:=1 to n do writeln ('столбец ',j,'=',zero(a,j)); writeln('Минимальные элементы в строках'); for i:=1 to n do writeln('строка ',i,'=',min(a,i)); readln end.
Объяснение кода листинга программы
- Объединение всех исходных кодов в один файл.
- Установка компилятора на язык программирования Free Pascal.
- Установка среды разработки на язык программирования Free Pascal.
- Запуск среды разработки и открытие в ней файла с исходным кодом.
- В первой строке указать директиву
uses crt;
, которая подключает модуль для работы с консолью. - В константе
n
указать размер матрицы (10 на 10 элементов). - В типе
mtr
указать, что это массив из целых чисел размером 10 на 10. - В процедуре
matrix
организовать два вложенных цикла, которые заполняют матрицу случайными числами от -5 до 5. - В функции
zero
организовать цикл, который подсчитывает количество ненулевых элементов в столбце. - В функции
min
организовать цикл, который находит минимальный элемент в строке. - В основной части программы создать переменные
a
,i
иj
для работы с матрицей. - В основной части программы вызвать функцию
matrix
, которая заполняет матрицу случайными числами. - В основной части программы вывести на экран количество ненулевых элементов в каждом столбце с помощью функции
zero
. - В основной части программы вывести на экран минимальные элементы в каждой строке с помощью функции
min
. - В основной части программы добавить сообщение, призывающее пользователя нажать
Enter
, чтобы закрыть программу. - В основной части программы добавить команду
readln
, которая ожидает нажатия клавишиEnter
. - В основной части программы добавить команду
clrscr
, которая очищает экран. - В основной части программы добавить команду
randomize
, которая инициализирует генератор случайных чисел. - В основной части программы добавить команду
writeln
, которая выводит текст на экран. - Сохранить и запустить программу.