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
Цитата
где ошибка
В синтаксисе. Компилятор показывает, где именно. Одна ошибка - в неправильном имени переменной, вторая - лишняя точка с запятой. А потом можешь начинать отладку, ибо я подбирать примеры, на которых это ДОЛЖНО ошибаться, не буду. Тебе надо - ты и приводи те исходные данные, на которых программа работает неверно.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.