Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

помогите найти ошибку в задаче по pascal

Саша Пархимович Ученик (103), на голосовании 14 лет назад
вот условие: Дана матрица A порядка n. Расставьте строки матрицы в порядке возрастания количества нулевых элементов. чере модули....навписал рпограмму, без модуля идет, а с модулм ошибку кидает, помогите плиз....
Unit myunit;
interface
type
tdata=integer;
tvect=array[1..100] of tdata;
tmatr=array[1..100] of tvect;
var
a:tmatr;
t:tvect;
it,out:text;
y,m:integer;
j,i:integer;
function countzero(a:tmatr;y,m:integer):integer;
implementation
function countzero(a:tmatr;y,m:integer):integer;
var i,res:integer;
begin
m:=y;
res:=0;
for i:=1 to y do
if a[y,i]=0 then res:=res+1;
countzero:=res;
end;
begin
if countzero(a,j,m)
Дополнен 14 лет назад
(больше)countzero(a,j+1,m) then
begin
t:=a[j];
a[j]:=a[j+1];
a[j+1]:=t;
end;
end.
uses crt,myunit;
begin
assign(it,'d:\it.txt');
assign(out,'d:\out.txt');
reset(it);
rewrite(out);
read(it,y);
for i:=1 to y do
read (it,a[y,i]);
for i:=1 to y do
for j:=1 to y do
read(it,a[i,j]);
for i:=1 to y do
begin
for j:=1 to y do
write(out,a[i,j]);
writeln(out);
end;
close(it);
close(out);
end;
end.
сори... маил глючит наверное...
Голосование за лучший ответ
Александр Осипов Мыслитель (7178) 14 лет назад
Программа на PASCAL должна начинаться с ключевого слова PROGRAM или VAR.
Это приведен текст юнита.

if a[y,i]=0 then res:=res+1; - тут ты к ДВУМЕРНОМУ обращаешься, а объявил как одномерный массив одномерных.

То есть надо a[ y ] [ i ].

И в предпоследней строчке end; не нужен.
Похожие вопросы