сообщить, что некоторые места уже проданы (заказ не принят).
Пока не будут заняты все места.
3. Вывести сообщение, что все билеты проданы.
Уточняем условие. В задаче будем использовать 2 множества:
1) Свободные места (Sm);
2) Заказ (Zak).
Запишем уточненный Алгоритм.
1. Задать множество Свободных мест: от 1 до n.
2. Повторять
2.1. Вывести свободные места
2.2. Запросить заказ на билеты:
2.2.1. Заказ = [ ] – пустое множество.
2.2.2. Ввести номер_места
2.2.3. Пока номер ≠0 выполнить:
а) объединить номер_места с заказом;
б) ввести номер места.
2.3. Если заказ входит в Свободные места, то
2.3.1. Выдать сообщение: "заказ принят"
2.3.2. Исключить проданные места
(Свободные_места := Свободные_места – заказ)
Иначе
Выдать сообщение "заказ не принят".
Пока не будут заняты все места.
3. Вывести сообщение, что все билеты проданы.
Программа, реализующая этот алгоритм, приведена ниже.
Program Teploxod;
Const
N=250; { На время отладки назначьте небольшое N! }
Type
Mesta = Set Of 1..N;
Var
Sm,Zak : Mesta;{Свободные места и заказ}
I,Nom : Integer;
Begin
Sm := [1..N];{п. 1, свободные места}
Repeat {п. 2}
WriteLn;
Writeln(’ Cвободные места: ’); {п. 2.1.}
For I:=1 To N Do
If I In Sm Then
Write (I:4);
WriteLn;
Zak := []; {п. 2.2.1.}
{Формирование Заказа}
Writeln(’Введите номера мест, которые Вы покупаете. ’,
’Конец заказа - ноль’);
ReadLn(Nom); {п. 2.2.2.}
While Nom <> 0 Do {п. 2.2.3.}
Begin
Zak := Zak + [Nom];
ReadLn(Nom);
End;
If Zak <= Sm Then {п. 2.3.}
Begin
Writeln(’Заказ принят’); {п. 2.3.1.}
Sm := Sm - Zak; {п. 2.3.2.}
End
Else
WriteLn(’Заказ не принят. ’,
’Некоторые из заказываемых мест уже проданы.’);
Until Sm=[];
Writeln (’Все билеты проданы, нажмите Enter’);
Readln;
End.
Записи
Записи — это совокупности элементов разных типов, имеющих общее имя и назначение. Примеры записей — адрес человека, анкетные данные, сводка об успеваемости и т.д. Массив – тоже совокупность данных, но одного типа. Компонентами (полями) записи могут быть переменные скалярного типа, строки, а также массивы и другие записи. Сами записи могут образовать массив.
В общем случае в разделе Typeзапись описывается так: