Найти минимальный элемент среди элементов главной диагонали - Pascal
Формулировка задачи:
Задан двумерный массив D(6x6).Найти минимальный элемент среди элементов главной диагонали и посчитать сумму и колличество отрицательных элементов столба,в котором находится этот минимальный элемент.Сумму и колличество столбцов вычислить в процедуре.
-Решить задачу с использованием файлов;
-организовать файлы и занести его исходные данные;
-Взять данные из файла.
Решение задачи: «Найти минимальный элемент среди элементов главной диагонали»
textual
Листинг программы
uses crt;
Type arr=array[1..50,1..50] of integer;
procedure InputMatrix(var ar:arr; var n:byte);
var i,j:byte;
begin
Randomize;
repeat
Write('n=');
Readln(n);
until n in [1..50];
for i:=1 to n do
for j:=1 to n do
ar[i,j]:=random(20)-10;
end;
procedure DiagSumMinMatrix(a:arr; n:byte);
var i,j,tmpj:byte;
k,sum,min:integer;
begin
min:=1;
for i:=1 to n do
for j:=1 to n do
if (i=j) and (a[i,j]<min) then
begin
min:=a[i,j];
tmpj:=j;
end;
Writeln('Min ',min,' [',tmpj,']');
sum:=0;
for i:=1 to n do
sum:=sum+a[i,tmpj];
k:=0;
for i:=1 to n do
if a[i,tmpj]<0 then
inc(k);
Writeln('Sum ',sum);
Writeln('Kol(otr) ',k);
end;
procedure OutputMatrix(var ar:arr; n:byte);
var i,j:byte;
begin
Writeln('Matrix A');
for i:=1 to n do
begin
for j:=1 to n do
begin
Write(ar[i,j]:4);
end;
Writeln;
end;
end;
var a:arr;
i,j,x:byte;
begin
ClrScr;
InputMatrix(a,x);
OutputMatrix(a,x);
Writeln;
DiagSumMinMatrix(a,x);
Readln;
end.
Объяснение кода листинга программы
- Объявлены переменные:
- a: массив размером [1..50,1..50] для хранения чисел;
- n: целочисленная переменная для хранения размера массива a;
- i, j, tmpj: целочисленные переменные для хранения индексов массива a;
- k, sum, min: целочисленные переменные для хранения суммы и минимального значения элементов главной диагонали.
- Выполняется процедура InputMatrix, которая запрашивает у пользователя размер массива a и заполняет его случайными числами от -10 до 10.
- Выполняется процедура DiagSumMinMatrix, которая находит минимальное значение на главной диагонали массива a и выводит его, а также сумму элементов и количество отрицательных элементов главной диагонали.
- Выполняется процедура OutputMatrix, которая выводит все элементы массива a на экран.
- В основной части программы объявляются дополнительные переменные i, j, x.
- Выполняется функция ClrScr, которая очищает экран.
- Выполняется функция InputMatrix, после которой выводится на экран массив a.
- Выполняется функция OutputMatrix, которая выводит на экран массив a.
- Выполняется функция DiagSumMinMatrix, которая находит минимальное значение на главной диагонали массива a и выводит его, а также сумму элементов и количество отрицательных элементов главной диагонали.
- Программа ожидает ввода с клавиатуры, чтобы пользователь мог увидеть результаты работы программы.