ПРОГРАММИРОВАНИЕ ПАСКАЛЬ Проверить, все ли строки матрицы C(n1×n2) содержат хотя бы один...

0 голосов
70 просмотров

ПРОГРАММИРОВАНИЕ ПАСКАЛЬ
Проверить, все ли строки матрицы C(n1×n2) содержат хотя бы один отрицательный элемент, если не все, сообщить номер первой, где нет отрицательных элементов.

ВНИМАНИЕ: ВСЕ ЭТО ВЫПОЛНИТЬ БЕЗ ЦИКЛА FOR, ТОЛЬКО WHILE ИЛИ REPEAT.


Информатика (72 баллов) | 70 просмотров
0

Рекурсия, пришло твоё время. Работаю.

0

Ах, думал вообще не использовать циклы. Ладно, так легче.

Дан 1 ответ
0 голосов
Правильный ответ

Var ar:array of array of integer;
n1,k,i,n2,j:integer;
b:boolean;
begin;
readln(n1);
readln(n2);
inc(n1);
inc(n2);
k:=1;
setlength(ar,n1+1);
while k<>n1 do
begin;
setlength(ar[k],n2+1);
inc(k);
end;
b:=false;
k:=0;
i:=1;
j:=1;
writeln('Matrix:');
while i<>n1 do
 begin;
  writeln;
   while j<>n2 do
    begin;
     ar[i,j]:=random(100)-50;
     write(ar[i,j]:4);
     inc(j);
    end;
   j:=1;
   inc(i);
  end;
i:=1;
j:=1;
while i<>n1 do
 begin;
  while j<>n2 do
   begin;
    if ar[i,j]<0 then b:=true;<br>    inc(j);
   end;
  if b=false then
   begin;
    writeln;
    writeln(i);
    exit;
   end;
  b:=false;
  inc(i);
  j:=1;
 end;
writeln;
writeln('Все');
end.

(38.6k баллов)
0

а можете мою исправить? 

0

const
  n1max = 10;
  n2max = 10;

type
  matrix = array [1..n1max, 1..n2max] of integer;

var
  n1, n2, i, j: integer;
  C: matrix;
  dat, res: textFile;
  k, nomer: integer;
  flag: boolean;

procedure proverka(C: matrix; n1,n2: integer; var flag: boolean);
var
  i, j: integer;
begin
i:=1;
j:=1;
  while (i<=n1) do begin<br>  
    while (j<=n2) do begin<br>    flag:=false;
      while (flag = false) do
      if ( C[i,j] > 0 ) then flag:=false
      else flag:=true;

end;
inc(j);
end;
inc (i);
end

0

procedure poiskstrok(C: matrix; n1,n2: integer; var nomer: integer );
var
flag: boolean;
i, j: integer;

begin
i:=1;
j:=1;
while (i<=n1) do begin<br>  while (j<=n2) do begin<br>      flag:=false;
      while (flag = false) do
      if ( C[i,j] > 0 ) then flag:= false; k:= i;
inc (j);
end;
inc(i);
end;
end;

begin
  
  AssignFile(dat, 'Vvod.txt');Reset(dat);
  AssignFile(res, 'Vivod.txt');Rewrite(res);
  
  readln(dat, n1, n2);
  writeln(res, 'Ishod matrica A (', n1, 'x', n2, '):');
  
  for i := 1

0

for i := 1 to n1 do
    for j := 1 to n2 do
      read(dat, C[i, j]);
  
  for i := 1 to n1 do
  begin
    for j := 1 to n2  do
    begin
      write(res, '', C[i, j]:5);  
      write(res, ' ');
    end;
    writeln(res, '');
  end;
  
  proverka(C, n1, n2, flag);
  poiskstrok(C, n1, n2, nomer);
  
  if (flag = true) then writeln(res,'Vse stroki sodersh otr element')
  else
  writeln(res,'Nomer pervoi stroki bez otric elem =', k);
  
  CloseFile(dat);CloseFile(res);
  readln;
end.

0

это все одна программа