Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/43: Рейтинг темы: голосов - 43, средняя оценка - 4.67
11 / 11 / 4
Регистрация: 11.03.2011
Сообщений: 30
1

Динамический список/удаления элементов из списка

11.03.2011, 18:55. Показов 8714. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите найти ошибку. В задаче необходимо заполнить из файла список(там было меню ресторана) и удалить элементы по какому-либо признаку. Почему не удаляется 1-ый элемент? в чем ошибка?

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
Uses Crt;
Type TST=record
       ID_name: integer;
       name: string;
       kind: string;
       price: longint;
     end;
     TUK=^TSP;
     TSP=record
       inf: TST;
       adr: TUK;
     end;
Var
  f: text;
  head,temp,temp1: TUK;
begin
  clrscr;
  assign(f,'d:\spisok1.txt');
  reset(f);
  new(head);
  head^.adr:=nil;
  temp:=head;
  with temp^.inf do begin
     readln(f,ID_name);
     readln(f,name);
     readln(f,kind);
     readln(f,price);
  end;
  while not EOF(f) do
    begin
      new(temp^.adr);
      temp:=temp^.adr;
      temp^.adr:=nil;
      with temp^.inf do begin
        readln(f,ID_name);
        readln(f,name);
        readln(f,kind);
        readln(f,price);
      end;
    end;
  close(f);
  temp:=head;
{Вывод списка на экран}
  while temp<>nil do begin
    write(temp^.inf.ID_name,'  ',temp^.inf.name,'  ',temp^.inf.kind,'  ',temp^.inf.price);
    writeln;
    temp:=temp^.adr;
  end;
  readln;
  clrscr;
  temp:=head;
{Удаление элемента, в данном случае 1-ого}
         while temp<>nil do begin
           if temp^.adr^.inf.ID_name=1001 then begin
                temp1:=temp^.adr;
                temp^.adr:=temp1^.adr;
                dispose(temp1);
               end
           else temp:=temp^.adr;
         end;
{Вывод списка, после удаления элемента}
  temp:=head;
  while temp<>nil do begin
    write(temp^.inf.ID_name,'  ',temp^.inf.name,'  ',temp^.inf.kind,'  ',temp^.inf.price);
    writeln;
    temp:=temp^.adr;
  end;
  readln;
end.
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.03.2011, 18:55
Ответы с готовыми решениями:

Однонаправленный список. Вывод элементов, списка. Удаление списка.
Создать однонаправленный список натуральных чисел. Найти и вывести элементы списка, кратные 3....

Написать программу удаления из списка элементов с четными номерами
Сама программа практически готова, не хватает только добавить процедуру для удаления элементов со...

Формирование списка с благоустройством его элементов. Изъятие и добавления элементов в список
Разработать программу, которая вводит с клавиатуры данные о каждом студенте, заносит эти данные в...

Напишите для двусвязного списка процедуры вставки и удаления перед заданным элементом списка
Напишите для двусвязного списка процедуры вставки и удаления перед заданным элементом списка...

3
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
12.03.2011, 10:40 2
Посмотрите здесь, как правильно удалять элементы.
Динамические структуры данных (списки, очереди, стеки, деревья)
1
11 / 11 / 4
Регистрация: 11.03.2011
Сообщений: 30
12.03.2011, 21:07  [ТС] 3
Уже нашла ошибку
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
12.03.2011, 21:09 4
Вот и ладненько, молодец...
0
12.03.2011, 21:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.03.2011, 21:09
Помогаю со студенческими работами здесь

Занесите в список В порядковые номера максимальных элементов списка А
Здравствуйте! Помогите пожалуйста с решением данной задачи: Пусть задан список А целых чисел....

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

Отсортировать динамический список, используя основной (заполненный) и второй пустой список
Вроде бы сделал, но почему-то пропадает первый элемент... Иногда последний, не могу отследить... Не...

Динамический тип: процедура удаления предпоследнего элемента очереди
Народ помогите переделать эту процедуру, так что бы она удаляла предпоследний элемент очереди. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru