Вывести на экран номер первой строки матрицы, в которой содержаться только положительные элементы - Pascal ABC
Формулировка задачи:
Дана такая задача: Задана матрица 5х10. Вывести на экран номер ее первой строчки, в которой содержаться только положительные элементы. Если такой нет - вывести 0.
Прошу помощи в решении данной задачи.
Решение задачи: «Вывести на экран номер первой строки матрицы, в которой содержаться только положительные элементы»
textual
Листинг программы
- const m=5;
- n=10;
- var a:array[1..m,1..n] of integer;
- i,j,o1,pp:byte;
- x:integer;
- mn:set of byte;
- begin
- randomize;
- writeln('Исходная матрица:');
- for i:=1 to m do
- begin
- for j:=1 to n do
- begin
- a[i,j]:=-10+random(21);
- write(a[i,j]:4);
- end;
- writeln;
- end;
- mn:=[];
- for i:=1 to m do
- begin
- o1:=0;
- pp:=0;
- for j:=1 to n do
- begin
- if(a[i,j]<0)and(o1=0) then o1:=j;
- if a[i,j]>0 then pp:=j;
- end;
- if(o1=0)or(pp=0)then mn:=mn+[i]
- else
- begin
- x:=a[i,o1];
- a[i,o1]:=a[i,pp];
- a[i,pp]:=x;
- end;
- end;
- writeln('Обмен в строках первого отрицательного и последнего положительного');
- for i:=1 to m do
- begin
- for j:=1 to n do
- write(a[i,j]:4);
- writeln;
- end;
- if mn<>[] then
- begin
- write('В строках ');
- for i:=1 to m do
- if i in mn then write(i,' ');
- writeln('нет пар элементов для обмена');
- end;
- end.
Объяснение кода листинга программы
- Создается переменная
m
со значением 5. - Создается переменная
n
со значением 10. - Создается переменная
a
типаarray[1..m,1..n] of integer
. - Создаются три байтовые переменные
i
,j
,o1
. - Создается переменная
pp
типаset of byte
. - Выводится сообщение «Исходная матрица:».
- Запускается цикл
for i:=1 to m do
, внутри которого запускается циклfor j:=1 to n do
. - Внутри циклов выводятся значения элементов матрицы
a[i,j]
с помощью функцииwrite(a[i,j]:4)
. - После окончания внутреннего цикла выводится символ новой строки
writeln
. - Запускается цикл
for i:=1 to m do
, внутри которого запускается циклfor j:=1 to n do
. - Внутри циклов проверяется условие
if(a[i,j]<0)and(o1=0) then o1:=j
. Если это условие истинно, то переменнойo1
присваивается значениеj
. - Если условие
if a[i,j]>0 then pp:=j
истинно, то переменнойpp
присваивается значениеj
. - Если оба условия выполняются, то переменная
mn
обновляется, добавляя в себя значениеi
. - Если условие
if(o1=0)or(pp=0)then mn:=mn+[i]
истинно, то выводится сообщение «В строках » и для каждогоi
из диапазона [1..m] выполняется проверкаif i in mn then write(i,' ')
. Если условие истинно, то выводится пробел и значениеi
. - Если условие
if(o1=0)or(pp=0)then mn:=mn+[i]
не выполняется, то выводится сообщение «В строках нет пар элементов для обмена». - Выводится сообщение «Обмен в строках первого отрицательного и последнего положительного».
- Для каждой строки матрицы выводится значение элементов с помощью функции
write(a[i,j]:4)
. - Выводится символ новой строки
writeln
. - Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д