Матрицы: нахождение минимума в каждом столбце и максимума в каждой строке - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Добрый вечер. Помогите, пожалуйста, не могу объединить эти две программы нахождения минимального элемента в каждом столбце и максимального в каждой строке вместе.
Листинг программы
  1. var
  2. a:array [1..10,1..10] of integer;
  3. Max,M, N, i, j:Integer;
  4. begin
  5. Write('N: ');
  6. Readln(N);
  7. Write('M: ');
  8. Readln(M);
  9. for i:=1 to M do
  10. begin
  11. writeln(i,': ');
  12. for j:=1 to N do
  13. begin
  14. Write(j,' : ');
  15. Read(a[i,j]);
  16. end;
  17. end;
  18. for i:=1 to M do
  19. begin
  20. writeln(i,': ');
  21. Max:=a[i,1];
  22. for j:=2 to N do
  23. begin
  24. if a[i,j]>Max then Max:=a[i,j];
  25. end;
  26. writeln('Максимальный элемент:',Max);
  27. end;
  28. end.
Листинг программы
  1. var
  2. a:array [1..10,1..10] of integer;
  3. Min,M, N, i, j:Integer;
  4. begin
  5. Write('N: ');
  6. Readln(N);
  7. Write('M: ');
  8. Readln(M);
  9.  
  10. for i:=1 to M do
  11. begin
  12. writeln(i,': ');
  13. for j:=1 to N do
  14. begin
  15. Write(j,' : ');
  16. Read(a[i,j]);
  17. end;
  18. end;
  19. for j:=1 to N do
  20. begin
  21. writeln(j,': ');
  22. Min:=a[1,j];
  23. for i:=2 to M do
  24. begin
  25. if a[i,j]<Min then Min:=a[i,j];
  26. end;
  27. writeln('Минимальный элемент:',Min);
  28. end;
  29. end.

Решение задачи: «Матрицы: нахождение минимума в каждом столбце и максимума в каждой строке»

textual
Листинг программы
  1. var
  2.     a: Array[Byte, Byte] Of ShortInt;
  3.     b: Array[0..1, Byte] Of Byte;
  4.     i, j, n: Byte;
  5. begin
  6.     Randomize;
  7.     repeat
  8.         Write('Input n='); ReadLn(n);
  9.     until (n > 0);
  10.     for j := 0 to n - 1 do
  11.     begin
  12.         b[0, j] := 0;
  13.         b[1, j] := 0;
  14.     end;
  15.     for i := 0 to n - 1 do
  16.         for j := 0 to n - 1 do
  17.         begin
  18.             a[i, j] := Random(199) - 99;
  19.             if (a[i, j] > a[i, b[0, i]])
  20.             then
  21.                 b[0, i] := j;
  22.             if (a[i, j] < a[b[1, j], j])
  23.             then
  24.                 b[1, j] := i;
  25.         end;
  26.     for i := 0 to n - 1 do
  27.     begin
  28.         for j := 0 to n - 1 do
  29.             Write(a[i, j]:4);
  30.         WriteLn(' | ', a[i, b[0, i]]:4);
  31.     end;
  32.     for j := 0 to n - 1 do
  33.         Write('----');
  34.     WriteLn;
  35.     for j := 0 to n - 1 do
  36.         Write(a[b[1, j], j]:4);
  37. end.

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

  1. Создаются две матрицы: a и b.
  2. В цикле while считывается число n и пока оно больше 0, выполняется цикл for j := 0 до n-1.
  3. В цикле for j := 0 до n-1 заполняются нулями первые два элемента матрицы b.
  4. В цикле for i := 0 до n-1 выполняется второй цикл for j := 0 до n-1.
  5. Внутри второго цикла for j := 0 до n-1 генерируется случайное число от 0 до 198 и записывается в элемент a[i, j].
  6. Если a[i, j] больше a[i, b[0, i]], то b[0, i] присваивается значение j.
  7. Если a[i, j] меньше a[b[1, j], j], то b[1, j] присваивается значение i.
  8. После окончания второго цикла for j := 0 до n-1 выполняется третий цикл for i := 0 до n-1.
  9. В третьем цикле выводятся значения элементов матрицы a и b.
  10. Выводится строка ----.
  11. Выводится значение a[b[1, j], j].

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

11   голосов , оценка 4.545 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы