Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Двуверный массив

Автор: Neon6868 17.03.2007 17:12

Надо составить программу, в которой надо найти номер первой из строк, не содержащих ни одного положительного элемента.
Я составил, но она неправильно работает!!!

Вот прога:


Program ABC;
const
n=10;
type
mas=array[1..n,1..n] of integer;
var
i,j,y,k:integer;
a:mas;
function search(a:mas):integer;
var
i,j,k:integer;
key:array[1..n] of boolean;
Begin
for i:=1 to n do key[i]:=false;
for i:=n downto 1 do begin
for j:=1 to n do
if key[j] then search:=i
else search:=0;
for j:=n downto 1 do
if a[i,j]<0 then key[j]:=true;
end;
end;
begin
randomize;
for i:=1 to n do begin
writeln;
for j:=1 to n do begin
a[i,j]:=random(15)-10;
write(a[i,j]:3);
end;
end;
y:=search(a);
if y<>0 then writeln('Nomer stroki: ',y)
else writeln('Net takogo');
End.



Автор: мисс_граффити 17.03.2007 17:41

компилировала в Делфи, но проблем и в TP возникнуть не должно. если что - пиши.
если такой строки нет, пишет 0:

const n=5;
type ar=array[1..n,1..n] of integer;

function check(const mass: ar; const i: integer):boolean;
var j: integer;
begin
check:=true;
for j:=1 to n do
if mass[i,j]>0 then
check:=false;
end;

procedure zapoln(var mass: ar);
var i,j: integer;
begin
Randomize;
for i:=1 to n do
for j:=1 to n do
mass[i,j]:=random(10)-6;
end;

procedure vyvod(const mass: ar);
var i,j: integer;
begin
for i:=1 to n do
begin
for j:=1 to n do
write(mass[i,j],' ');
writeln;
end;
end;

var mass: ar;
i: integer;
begin
i:=1;
zapoln(mass);
while not(check(mass,i)) and (i<n) do
inc(i);
writeln(i);
vyvod(mass);
readln;
end.


если хочешь, делай вывод сразу при заполнении. Я разделила исключительно для наглядности.