Найти и напечатать минимальные по значению элементы в каждой строке заданной матрицы - 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.

Объяснение кода листинга программы

  1. Объединение всех исходных кодов в один файл.
  2. Установка компилятора на язык программирования Free Pascal.
  3. Установка среды разработки на язык программирования Free Pascal.
  4. Запуск среды разработки и открытие в ней файла с исходным кодом.
  5. В первой строке указать директиву uses crt;, которая подключает модуль для работы с консолью.
  6. В константе n указать размер матрицы (10 на 10 элементов).
  7. В типе mtr указать, что это массив из целых чисел размером 10 на 10.
  8. В процедуре matrix организовать два вложенных цикла, которые заполняют матрицу случайными числами от -5 до 5.
  9. В функции zero организовать цикл, который подсчитывает количество ненулевых элементов в столбце.
  10. В функции min организовать цикл, который находит минимальный элемент в строке.
  11. В основной части программы создать переменные a, i и j для работы с матрицей.
  12. В основной части программы вызвать функцию matrix, которая заполняет матрицу случайными числами.
  13. В основной части программы вывести на экран количество ненулевых элементов в каждом столбце с помощью функции zero.
  14. В основной части программы вывести на экран минимальные элементы в каждой строке с помощью функции min.
  15. В основной части программы добавить сообщение, призывающее пользователя нажать Enter, чтобы закрыть программу.
  16. В основной части программы добавить команду readln, которая ожидает нажатия клавиши Enter.
  17. В основной части программы добавить команду clrscr, которая очищает экран.
  18. В основной части программы добавить команду randomize, которая инициализирует генератор случайных чисел.
  19. В основной части программы добавить команду writeln, которая выводит текст на экран.
  20. Сохранить и запустить программу.

Оцени полезность:

7   голосов , оценка 4 из 5
Похожие ответы