Программа
PROGRAM AirLinerReserver(input,output);
CONST QuantityPlace=5; { Количество мест в ряду }
QuantityLine=10; { Количество рядов в салоне }
TYPE Place=packed array[1..3] of char; { Тип - место }
Line=array[1..QuantityPlace] of Place; { Тип - ряд }
AirLinerFile=file of Line; { Тип - файл салона самолета }
VAR AirLiner:AirLinerFile; { Файловая переменная }
P:Place; { Переменная - место }
PROCEDURE ReservePlase(var F:AirLinerFile); { Процедура резервирования мест }
Var Buf:Line; { Буфер для определения места }
j:1..QuantityLine; { Счетчик рядов в салоне }
i:1..QuantityPlace; { Счетчик мест в ряду }
k:1..3; { Счетчик символов при вводе инициалов }
Begin
Randomize;
Assign(F,'DATA'); { Связывание файловой переменной с именем файла }
Rewrite(F); { Открытие файла }
for j:=1 to QuantityLine do { Цикл резервирования по самолету }
begin
for i:=1 to QuantityPlace do { Цикл резервирования по ряду }
begin
for k:=1 to 3 do Buf[i][k]:=Chr(Random(26)+Ord('A'));
{ Резервирование места: }
(*Write('Введите инициалы пассажира для места ',j,'/',i,' ');
{ Вывод подсказки }
for k:=1 to 3 do Read(Buf[i][k]); { Ввод "пассажира" }
ReadLn { Пропуск конца строки } *)
end;
Write(F,Buf) { Запись в файл }
end;
Close(F) { Закрытие файла }
End;
PROCEDURE ViewAirLiner(var F:AirLinerFile); { Процедура просмотра салона }
Var i:1..QuantityLine; { Счетчик рядов }
j:1..QuantityPlace; { Счетчик мест в ряду }
Buf:Line; { Ряд }
Begin
Assign(F,'DATA'); { Связывание файловой переменной с именем файла }
Reset(F); { Открытие файла }
for i:=1 to QuantityLine do { Цикл просмотра салона }
begin
Read(F,Buf); { Чтение ряда из файла }
Write(i:2,' '); { Вывод номера ряда }
for j:=1 to QuantityPlace do Write(' [',Buf[j],'] '); { Вывод места }
WriteLn; { Вывод конца строки }
end;
Close(F) { Закрытие файла }
End;
PROCEDURE GetPlace(var F:AirLinerFile;L,P:integer;var Answer:Place);
{ Процедура выборки значения места }
Var Buf:Line; { Ряд }
Begin
Assign(F,'DATA'); { Связывание файловой переменной с именем файла }
Reset(F); { Открытие файла }
Seek(F,L-1); { Установка указателя на запись L }
Read(F,Buf); { Чтение ряда из файла }
Answer:=Buf[P]; { Определение значения места }
Close(F) { Закрытие файла }
End;
BEGIN
WriteLn; { Пропуск строки }
ReservePlase(AirLiner); { Резервирование }
WriteLn; { Пропуск строки }
ViewAirLiner(AirLiner); { Просмотр }
WriteLn; { Пропуск строки }
GetPlace(AirLiner,7,QuantityPlace div 2 +1,P); { Получение значения места }
WriteLn('Место ',7,'/',QuantityPlace div 2 +1,': [',P,']'); { Вывод значения места }
GetPlace(AirLiner,8,QuantityPlace div 2 +1,P); { Получение значения места }
WriteLn('Место ',8,'/',QuantityPlace div 2 +1,': [',P,']') { Вывод значения места }
END.
Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию