Вывести на экран номер первой строки матрицы, в которой содержаться только положительные элементы - Pascal ABC

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

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

Дана такая задача: Задана матрица 5х10. Вывести на экран номер ее первой строчки, в которой содержаться только положительные элементы. Если такой нет - вывести 0. Прошу помощи в решении данной задачи.

Решение задачи: «Вывести на экран номер первой строки матрицы, в которой содержаться только положительные элементы»

textual
Листинг программы
  1. const m=5;
  2.       n=10;
  3. var a:array[1..m,1..n] of integer;
  4.     i,j,o1,pp:byte;
  5.     x:integer;
  6.     mn:set of byte;
  7. begin
  8. randomize;
  9. writeln('Исходная матрица:');
  10. for i:=1 to m do
  11.  begin
  12.   for j:=1 to n do
  13.    begin
  14.     a[i,j]:=-10+random(21);
  15.     write(a[i,j]:4);
  16.    end;
  17.   writeln;
  18.  end;
  19. mn:=[];
  20. for i:=1 to m do
  21.  begin
  22.   o1:=0;
  23.   pp:=0;
  24.   for j:=1 to n do
  25.    begin
  26.     if(a[i,j]<0)and(o1=0) then o1:=j;
  27.     if a[i,j]>0 then pp:=j;
  28.    end;
  29.   if(o1=0)or(pp=0)then mn:=mn+[i]
  30.   else
  31.    begin
  32.     x:=a[i,o1];
  33.     a[i,o1]:=a[i,pp];
  34.     a[i,pp]:=x;
  35.    end;
  36.  end;
  37. writeln('Обмен в строках первого отрицательного и последнего положительного');
  38. for i:=1 to m do
  39.  begin
  40.   for j:=1 to  n do
  41.   write(a[i,j]:4);
  42.   writeln;
  43.  end;
  44. if mn<>[] then
  45.  begin
  46.   write('В строках ');
  47.   for i:=1 to m do
  48.   if i in mn then write(i,' ');
  49.   writeln('нет пар элементов для обмена');
  50.  end;
  51. end.

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

  1. Создается переменная m со значением 5.
  2. Создается переменная n со значением 10.
  3. Создается переменная a типа array[1..m,1..n] of integer.
  4. Создаются три байтовые переменные i, j, o1.
  5. Создается переменная pp типа set of byte.
  6. Выводится сообщение «Исходная матрица:».
  7. Запускается цикл for i:=1 to m do, внутри которого запускается цикл for j:=1 to n do.
  8. Внутри циклов выводятся значения элементов матрицы a[i,j] с помощью функции write(a[i,j]:4).
  9. После окончания внутреннего цикла выводится символ новой строки writeln.
  10. Запускается цикл for i:=1 to m do, внутри которого запускается цикл for j:=1 to n do.
  11. Внутри циклов проверяется условие if(a[i,j]<0)and(o1=0) then o1:=j. Если это условие истинно, то переменной o1 присваивается значение j.
  12. Если условие if a[i,j]>0 then pp:=j истинно, то переменной pp присваивается значение j.
  13. Если оба условия выполняются, то переменная mn обновляется, добавляя в себя значение i.
  14. Если условие if(o1=0)or(pp=0)then mn:=mn+[i] истинно, то выводится сообщение «В строках » и для каждого i из диапазона [1..m] выполняется проверка if i in mn then write(i,' '). Если условие истинно, то выводится пробел и значение i.
  15. Если условие if(o1=0)or(pp=0)then mn:=mn+[i] не выполняется, то выводится сообщение «В строках нет пар элементов для обмена».
  16. Выводится сообщение «Обмен в строках первого отрицательного и последнего положительного».
  17. Для каждой строки матрицы выводится значение элементов с помощью функции write(a[i,j]:4).
  18. Выводится символ новой строки writeln.
  19. Конец программы.

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


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

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

9   голосов , оценка 4 из 5

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

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

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