Программа


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.

Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию