Проверка - Pascal (85091)

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

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

Требуется проверить программу, через раз выдаёт правильный результат. Дан двумерный массив a, раз¬мером (nm). Найти номер ми¬ни¬мального элемента в каждой строке матрицы. Затем каждый элемент каждой строки разде¬лить на номер минимального элемента строки.
uses crt;
const n=3; m=3;
var a:array[1..n,1..m] of real;
    minmas:array[1..100] of real;
    i,j,id:integer;
    min:real;
begin
     for i:=1 to n do
         for j:=1 to m do
             a[i,j]:=random(100)+1;
     writeln('Ishodnaya matrica:');
     for i :=1 to n do
     begin
           for j :=1 to m do
               write ( a[ i , j ]:10:2);
           writeln ;
     end ;
     min:=a[1,1];
     for i:=1 to n do
     begin
         for j:=1 to m do
             if a[i,j]<min then begin min:=a[i,j]; id:=j; end;
         minmas[i]:=id;
     end;
     for i:=1 to n do
         for j:=1 to m do
             a[i,j]:=a[i,j]/minmas[i];
     writeln('Preobrazovannaya matrica:');
     for i :=1 to n do
     begin
           for j :=1 to m do
               write ( a[ i , j ]:10:2);
           writeln ;
     end ;
end.

Решение задачи: «Проверка»

textual
Листинг программы
program mat;
 
const n = 3; m = 5;
 
var a: array [1..n, 1..m] of real;
    minmas: array[1..m] of integer;
    i, j: integer;
    min: real;
begin
  writeln('Ishodnaya matrica:');
  for j := 1 to m do
    begin
      for i := 1 to n do
        begin
          a[i, j] := random(198) - 99;
          write(a[i, j], ' ')
        end;
      writeln
    end;
  writeln('Indexes of minimum:');
  for j := 1 to m do
    begin
      min := a[1, j];
      minmas[j] := 1;
      for i := 1 to n do if a[i, j] < min then
        begin
          minmas[j] := i;
          min := a[i, j]
        end;
      writeln(minmas[j])
    end;
  writeln('Preobrazovannaya matrica:');
  for j := 1 to m do
    begin
      for i := 1 to n do
        begin
          a[i, j] := a[i, j] / minmas[j];
          write(a[i, j], ' ')
        end;
      writeln
    end;
  readln
end.

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

Список действий в коде:

  1. Объявление и инициализация констант n = 3 и m = 5.
  2. Создание двумерного массива a размером n на m и заполнение его случайными числами от -99 до 99.
  3. Вывод исходной матрицы на экран.
  4. Создание одномерного массива minmas размером m для хранения индексов минимальных значений в каждой строке матрицы a.
  5. Начальное присвоение мин. значения переменной min и индекса первой строки minmas[j].
  6. Цикл по всем строкам матрицы a.
  7. Внутри цикла поиск минимального значения в текущей строке и сохранение его индекса в minmas[j].
  8. Если найдено новое мин. значение, то обновление min и minmas[j].
  9. Вывод на экран индекса minmas[j].
  10. Цикл по всем строкам матрицы a.
  11. Внутри цикла деление каждого элемента текущей строки на соответствующий элемент minmas[j].
  12. Вывод на экран полученной матрицы.
  13. Чтение данных из стандартного ввода (нажатие любой клавиши).

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


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

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

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