Матрицы: нахождение минимума в каждом столбце и максимума в каждой строке - Pascal ABC
Формулировка задачи:
Добрый вечер. Помогите, пожалуйста, не могу объединить эти две программы нахождения минимального элемента в каждом столбце и максимального в каждой строке вместе.
Листинг программы
- var
- a:array [1..10,1..10] of integer;
- Max,M, N, i, j:Integer;
- begin
- Write('N: ');
- Readln(N);
- Write('M: ');
- Readln(M);
- for i:=1 to M do
- begin
- writeln(i,': ');
- for j:=1 to N do
- begin
- Write(j,' : ');
- Read(a[i,j]);
- end;
- end;
- for i:=1 to M do
- begin
- writeln(i,': ');
- Max:=a[i,1];
- for j:=2 to N do
- begin
- if a[i,j]>Max then Max:=a[i,j];
- end;
- writeln('Максимальный элемент:',Max);
- end;
- end.
Листинг программы
- var
- a:array [1..10,1..10] of integer;
- Min,M, N, i, j:Integer;
- begin
- Write('N: ');
- Readln(N);
- Write('M: ');
- Readln(M);
- for i:=1 to M do
- begin
- writeln(i,': ');
- for j:=1 to N do
- begin
- Write(j,' : ');
- Read(a[i,j]);
- end;
- end;
- for j:=1 to N do
- begin
- writeln(j,': ');
- Min:=a[1,j];
- for i:=2 to M do
- begin
- if a[i,j]<Min then Min:=a[i,j];
- end;
- writeln('Минимальный элемент:',Min);
- end;
- end.
Решение задачи: «Матрицы: нахождение минимума в каждом столбце и максимума в каждой строке»
textual
Листинг программы
- var
- a: Array[Byte, Byte] Of ShortInt;
- b: Array[0..1, Byte] Of Byte;
- i, j, n: Byte;
- begin
- Randomize;
- repeat
- Write('Input n='); ReadLn(n);
- until (n > 0);
- for j := 0 to n - 1 do
- begin
- b[0, j] := 0;
- b[1, j] := 0;
- end;
- for i := 0 to n - 1 do
- for j := 0 to n - 1 do
- begin
- a[i, j] := Random(199) - 99;
- if (a[i, j] > a[i, b[0, i]])
- then
- b[0, i] := j;
- if (a[i, j] < a[b[1, j], j])
- then
- b[1, j] := i;
- end;
- for i := 0 to n - 1 do
- begin
- for j := 0 to n - 1 do
- Write(a[i, j]:4);
- WriteLn(' | ', a[i, b[0, i]]:4);
- end;
- for j := 0 to n - 1 do
- Write('----');
- WriteLn;
- for j := 0 to n - 1 do
- Write(a[b[1, j], j]:4);
- end.
Объяснение кода листинга программы
- Создаются две матрицы: a и b.
- В цикле while считывается число n и пока оно больше 0, выполняется цикл for j := 0 до n-1.
- В цикле for j := 0 до n-1 заполняются нулями первые два элемента матрицы b.
- В цикле for i := 0 до n-1 выполняется второй цикл for j := 0 до n-1.
- Внутри второго цикла for j := 0 до n-1 генерируется случайное число от 0 до 198 и записывается в элемент a[i, j].
- Если a[i, j] больше a[i, b[0, i]], то b[0, i] присваивается значение j.
- Если a[i, j] меньше a[b[1, j], j], то b[1, j] присваивается значение i.
- После окончания второго цикла for j := 0 до n-1 выполняется третий цикл for i := 0 до n-1.
- В третьем цикле выводятся значения элементов матрицы a и b.
- Выводится строка
----
. - Выводится значение a[b[1, j], j].
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д