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

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

Форум «Всё о Паскале» _ Задачи _ Гляньте где ошибка, как её исправить?

Автор: klik1602 17.01.2011 23:25

 
program L14_23;
{Дан неупорядоченный линейный односвязный список и массив, содержащий номера
соответствующих элементов в упорядоченном списке. Перестройте данный список в
соответствии с номерами, заданным массивом}
type
mass = array [1..10] of integer;
stroka=string[30];

procedure vvodmatr (var mass1:mass;namefile:stroka;
var n:integer);
var
i:integer;
fin:text;
begin
assign(fin,namefile);
reset(fin);
for i:=1 to n do
begin
read(fin,mass1[i]);
readln(fin);
end;
close(fin);
end;

procedure vivodmatr (namefile:stroka; mass1,mass2:mass; n:integer;
var flag,flg1:boolean);
var
i:integer;
fout:text;
begin
assign(fout,namefile);
if flag then
rewrite(fout)
else
append(fout);
if flag1 then
begin
writeln('Исходный список');
for i:=1 to n do
begin
write(fout,mass1[i]);
writeln(fout);
end;
end;
else
begin
writeln('массив перестановки');
for i:=1 to n do
begin
write(fout,mass2[i]);
writeln;
end;
writeln('Переставленный массив');
for i:=1 to n do
begin
write(fout,mass1[i]);
writeln(fout);
end;
end;
close(fout);
end;

procedure perestr(var mass1:mass; mass2:mass; n:integer);
var
mass3:mass;
i:integer;
begin
for i:=1 to n do
mass3[mass2[i]]:=mass1[i];
mass1:=mass3;
end;

var
mass1, mass2:mass;
i,n:integer;
flag,flag1:boolean;

begin
writeln('введите количество элементов');
readln(n);
vvodmatr (mass1,'L14_in.txt',n);
flag:=true;
flag1:=true;
vivodmatr ('L14_out.txt',mass1,mass2,n,flag,flag1);
writeln('Введите массив номеров');
for i:=1 to n do
read(mass2[i]);
perestr(mass1,mass2,n);
flag:=false;
flag1:=false;
vivodmatr ('L14_out.txt',mass1,mass2,n,flag,flag1);
end.



Автор: volvo 17.01.2011 23:30

Цитата
где ошибка
В синтаксисе. Компилятор показывает, где именно. Одна ошибка - в неправильном имени переменной, вторая - лишняя точка с запятой. А потом можешь начинать отладку, ибо я подбирать примеры, на которых это ДОЛЖНО ошибаться, не буду. Тебе надо - ты и приводи те исходные данные, на которых программа работает неверно.