Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 1
Регистрация: 28.12.2012
Сообщений: 40

Не получается написать процедуру для работы со списком

07.10.2013, 21:34. Показов 436. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Значит. Я создал программу для создания списка посетителей детской библиотеки. Мне необходимо написать еще процедуру поиска самого молодого среди прочитавших >500 книг, и процедуру сортировки списка по школам.
Если можете объясните как это можно сделать. Пока не получилось рабочей версии!!!

Вот код:
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
PROGRAM Lab_4;
  Uses Crt;
  
  Type TDate = record
                       D: 1..31;
                       M: 1..12;
                       Y: 1990..2006
                     end;
  TPlace = record
                   Str: String[20];
                   Home,Apart: Integer
                 end;
  PKids=^TKids;
  TKids = record
                  Fam,Name,Otch: String[20];
                  BirthDay: TDate;
                  Adds: TPlace;
                  Books: Integer;
                  School: String[20];
                  NextAd:PKids
                end;
                
  Var BKids,Kids,YKids,EKids:PKids;
      Ch:Char;
 
  Procedure AddInTop;
  Begin
    New(Kids); ClrScr;
    With Kids^ do begin
      Write('ВВЕДИТЕ ФАМИЛИЮ >'); ReadLn(Fam);
      Write('ВВЕДИТЕ ИМЯ >'); ReadLn(Name);
      Write('ВВЕДИТЕ ОТЧЕСТВО >'); ReadLn(Otch);
      Write('ДЕНЬ РОЖДЕНИЯ >'); ReadLn(BirthDay.D);
      Write('МЕСЯЦ РОЖДЕНИЯ >'); ReadLn(BirthDay.M);
      Write('ГОД РОЖДЕНИЯ >'); ReadLn(BirthDay.Y);
      Write('УЛИЦА >'); ReadLn(Adds.Str);
      Write('ДОМ >'); ReadLn(Adds.Home);
      Write('КВАРТИРА >'); ReadLn(Adds.Apart);
      Write('КОЛ-ВО ПРОЧИТАННЫХ КНИГ >'); ReadLn(Books);
      Write('ШКОЛА >'); ReadLn(School);
      NextAd:=BKids;
      BKids:=Kids;
    end;
    If EKids=Nil then EKids:=Kids;
    ClrScr
  End;
  
  Procedure AddInEnd;
  Begin
    New(Kids); ClrScr;
    With Kids^ do begin
      Write('ВВЕДИТЕ ФАМИЛИЮ >'); ReadLn(Fam);
      Write('ВВЕДИТЕ ИМЯ >'); ReadLn(Name);
      Write('ВВЕДИТЕ ОТЧЕСТВО >'); ReadLn(Otch);
      Write('ДЕНЬ РОЖДЕНИЯ >'); ReadLn(BirthDay.D);
      Write('МЕСЯЦ РОЖДЕНИЯ >'); ReadLn(BirthDay.M);
      Write('ГОД РОЖДЕНИЯ >'); ReadLn(BirthDay.Y);
      Write('УЛИЦА >'); ReadLn(Adds.Str);
      Write('ДОМ >'); ReadLn(Adds.Home);
      Write('КВАРТИРА >'); ReadLn(Adds.Apart);
      Write('КОЛ-ВО ПРОЧИТАННЫХ КНИГ >'); ReadLn(Books);
      Write('ШКОЛА >'); ReadLn(School);
      NextAd:=Nil
    end;
    If EKids=Nil then
      begin
        BKids:=Kids;
        EKids:=Kids
      end
    else
      begin
        EKids^.NextAd:=Kids;
        EKids:=Kids
      end;
    ClrScr;
  End;
    
  Procedure ViewList;
    Var i: LongInt;
  Begin
    ClrScr;
    i:=1; Kids:=BKids;
    With Kids^ do
      While Kids<>Nil do begin
        WriteLn(i:2,Fam:15,Name:15,Otch:15,'':3,BirthDay.D:2,'.',BirthDay.M:2,'.',BirthDay.Y:4,Adds.Str:15,'/',Adds.Home:2,'/',Adds.Apart:3,'':3,Books:5,'':3,School:15);
        Kids:=NextAd;
        Inc(i)
      end;
  End;
  
  Procedure TreatList;
  Begin
    Write('Samiy molod');
  End;
  
  Procedure TreatList2;
  Begin
    Write('Sort po shkolam');
  End;
  
  Procedure Menu(Var Ch:Char);
    Const M=['1','2','3','4','5','6'];
  Begin
    TextBackground(Black); TextColor(Green);
    CrtWindowSize(150,40); ClrScr;
    Window(1,1,150,40); ClrScr;
    Window(4,4,150,40); ClrScr;
    WriteLn('ВЫБЕРИТЕ ПУНКТ МЕНЮ:');
    WriteLn;
    WriteLn('1. ДОБАВИТЬ В НАЧАЛО СПИСКА');
    WriteLn('2. ДОБАВИТЬ В КОНЕЦ СПИСКА');
    WriteLn('3. ПРОСМОТРЕТЬ СПИСОК');
    WriteLn('4. САМЫЙ ЮНЫЙ, ПРОЧИТАВШИЙ >500 КНИГ');
    WriteLn('5. СОРТИРОВКА СПИСКА ПО ШКОЛАМ');
    WriteLn('6. ЗАВЕРШИТЬ РАБОТУ');
    Ch:='A';
    While Not(Ch in M) do
      begin
        Ch:=ReadKey
      end;
    ClrScr
  End;
  
  Procedure Done;
  Begin
    WriteLn('УНИЧТОЖАЮ СПИСОК');
    Kids:=BKids;
    While BKids<>Nil do begin
      Kids:=BKids^.NextAd;
      Dispose(BKids);
      BKids:=Kids
    end;
    WriteLn('УСПЕХОВ В РАБОТЕ');
    Repeat
    until KeyPressed;
    ClrScr
  End;
  
BEGIN
  ClrScr;
  BKids:=Nil; EKids:=Nil;
  Repeat
    Menu(Ch);
    Case Ch of
      '1': AddInTop;
      '2': AddInEnd;
      '3': begin
             ViewList;
             Repeat
             until KeyPressed;
             ClrScr
           end;
      '4': begin
             ViewList;
             TreatList
           end;
      '5': begin
             ViewList;
             TreatList2
           end;
    end
  until Ch='6';
  Done
END.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.10.2013, 21:34
Ответы с готовыми решениями:

Написать процедуру для работы со списком
Использовать (линейные) однонаправленные списки при следующем их описании: Type Spisok = ^Zveno; Zveno = record ...

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

Написать программу для работы с однонаправленым списком
Написать программу, которая состоит из следующих действий: 1. Создание заголовочного файла (с расширением .h). В файле описывается: *-...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.10.2013, 21:34
Помогаю со студенческими работами здесь

Написать reusable API для работы со связным списком структур
6. Имеем чистый С. Напишите reusable API для работы со связным списком структур. Структуры могу быть разного типа, но в одном списке...

Написать библиотеку функций для работы с однонаправленным линейным списком
помогите дописать программу задания 1. Написать библиотеку функций для работы с однонаправленным линейным списком, данные в котором...

List (Написать программу для работы со списком и реализовать следующие операции над списками)
Написать программу для работы со списком и реализовать следующие операции над списками: 1) перенести в начало списка его последний...

Пытаюсь написать код на C# для лабораторной работы , но пока не получается
Матрица B получается в результате транспонирования матрицы A . Если произведение отрицательных элементов последних столбцов матриц A и B...

Написать програму работы со списком структур
Здравствуйте:) Помогите пожалуйста найти или написать программу, которая будет соответствовать критериям: 1) Сформировать структуру...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru