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

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

Форум «Всё о Паскале» _ Задачи _ Чуть-чуть доделать программку!

Автор: Dmitriy_Rus 22.12.2010 23:53

Помогите пожалуйста чуть-чуть доделать программку.
по заданию нужно Написать программу, которая удаляет из линейного списка входной последовательности целых чисел- первый элемент.

начало вроде правильное:

 Program Dima;
Type el=^zap;
zap=record
D:real;
L:el
end;
Var F,W:el;


далее построение списка тоже получается:
 {postroit spisok}
Procedure GreateFIFO (Var F:el);
Var W:el;
begin
new (F);
read (F^.D);
W:=F;
while not eof do
begin
new (W^.L);
W:=W^.L;
read (W^.D)
end;
W^.L:=nil
end;


вывод того же списка тоже происходит:
 {vivod spiska}
Procedure OutList (F:el);
Var W:el;
begin
W:=F;
while W<>nil do
begin
write (W^.D);
W:=W^.L
end
end;


но вот первый элемент не удаляется, подскажите что тут исправить, чтобы удалялся:
 {udalenie 1 elementa}
Function Del1 (Var P:el):el;
begin
Del1:=P;
P:=P^.L
end;
begin
GreateFIFO (F);
OutList(F)
end.

Автор: Гость 23.12.2010 0:59

Ты между GreateFIFO и OutList Del1 пропустил.
Если ты имел в виду то, что неверно работает процедура удаления попрубуй так (если верно не пробуй):


Function Del1 (Var P:el):el;
begin
P:=P^.L;
Del1:=P;
end;

Автор: Dmitriy_Rus 23.12.2010 1:13

Сама программа запускается и работает, но
процедура удаления вообще не работает nea.gif
просто ввожу числа, и исходный список из них же и выдается, первое число не удаляется

Автор: volvo 23.12.2010 1:30

Цитата
просто ввожу числа, и исходный список из них же и выдается, первое число не удаляется
Ты где-то просил удалять первый элемент? Создать список - просил, вижу вызов GreateFIFO. Вывести - просил, вызов OutList тоже вижу. Где вызов Del1?

Автор: Dmitriy_Rus 23.12.2010 1:59

всё, я разобрался. спасибо.

Автор: Lapp 23.12.2010 12:57

Цитата(Dmitriy_Rus @ 22.12.2010 21:59) *
всё, я разобрался. спасибо.

ставлю volvo +1 от Dmitriy_Rus