Найти в каждой строке матрицы первый отрицательный элемент - Turbo Pascal

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

Заданы две матрицы А(6,6) и В(6,6). Для матрицы, которая отвечает заданному условию (1) выполните преобразования (2) в соответствии с вариантом задания 1 -больше количество нулевых элементов в четных столбцах и нечетных строках 2 - найти в каждой строке первый отрицательный элемент. Условие (1) проверить в подпрограмме Function, преобразование выполнить в подпрограмме Procedure.

Код к задаче: «Найти в каждой строке матрицы первый отрицательный элемент - Turbo Pascal»

textual
uses crt;
const n=6;
type mtr=array[1..n,1..n] of integer;
procedure matrix(var a:mtr;c:char);
var i,j:byte;
begin
writeln('Матрица ',c);
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=-3+random(7);
    write(a[i,j]:4);
   end;
  writeln
 end;
end;
function kol_zero(a:mtr):byte;
var i,j,k:byte;
begin
k:=0;
for i:=1 to n do
for j:=1 to n do
if(a[i,j]=0)and(odd(i)or not odd(j)) then inc(k);
kol_zero:=k
end;
procedure per_otr(a:mtr);
var i,j,k:byte;
begin
writeln('Первые отрицательные элементы строк');
for i:=1 to n do
 begin
  j:=1;
  k:=0;
  write(i,' ');
  while(j<=n)and(k=0) do
  if a[i,j]<0 then
   begin
    writeln(a[i,j]);
    k:=1
   end
  else inc(j);
  if k=0 then writeln('нет');
 end;
end;
var a,b:mtr;
    ka,kb:byte;
begin
clrscr;
randomize;
matrix(a,'A');
ka:=kol_zero(a);
writeln('Количество 0 в четных столбцах и нечетных строках=',ka);
matrix(b,'B');
kb:=kol_zero(b);
writeln('Количество 0 в четных столбцах и нечетных строках=',kb);
if ka>kb then
 begin
  writeln('В матрице A больше');
  per_otr(a)
 end
else if ka<kb then
 begin
  writeln('В матрице B больше');
  per_otr(b)
 end
else write('В обеих матрицах одинаково');
readln
end.

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


СОХРАНИТЬ ССЫЛКУ