IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Гляньте где ошибка, как её исправить?, Списки
klik1602
сообщение 17.01.2011 19:25
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 49
Пол: Женский
Реальное имя: Натали

Репутация: -  1  +


 
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.




Сообщение отредактировано: klik1602 - 17.01.2011 19:25
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 14:16
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"