В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
milisochka1
milisochka1
13.06.2022 01:32 •  Информатика

(turbo pascal) информация о движении междугороднего автобуса содержит следующие данные: название остановки, время прибытия (часы, минуты), время стоянки (минуты), стоимость проезда из начального пункта. написать программу, в которой: - обеспечить ввод данных с клавиатуры и сохранение их в типизированном файле; организовать выборку из типизированного файла информации об остановках, стоянка на которых выше средней по маршруту, вывод данных о них на экран и сохранение в текстовом файле

Показать ответ
Ответ:
dirysasha
dirysasha
08.07.2020 09:55
Type
  Route = record
    station: string[30];
    arrival: string[5];
    stop: string[5];
    cost: real
  end;

{ Программа для заполнения данными файла }
{
var
  F: file of Route;
  r: Route;

begin
  writeln('Вводите данные');
  writeln('');
  Assign(F, 'Route.dat');
  Rewrite(F);
  with r do
    repeat
      write('Населенный пункт (*-завершить): ');
      readln(station);
      if (station <> '*') then
      begin
        write('Время прибытия чч:мм ');
        readln(arrival);
        write('Стоянка чч:мм: ');
        readln(stop);
        write('Стоимость проезда, руб.коп: ');
        readln(cost);
        write(F, r);
      end
    until station = '*';
  Close(F)
end.
}

{ Программа для работы с заполненным файлом }

function hhmm2Int(s: string): integer;
{переводит время чч:мм в челое число минут}
var
  i, j, ierr: integer;

begin
  Val(Copy(s, 1, 2), j, ierr);
  if ierr = 0 then i := 60 * j else i := 0;
  Val(Copy(s, 4, 2), j, ierr);
  if ierr = 0 then i := i + j;
  Result := i
end;

var
  F: file of Route;
  F2:Text;
  r: Route;
  i, ierr, istop, n: integer;
  s: string;
  cstop: real;

begin
  Assign(F, 'Route.dat');
  Reset(F);
  n := 0;
  cstop:=0;
  while not Eof(F) do
  begin
    read(F, r);
    istop := hhmm2Int(r.stop);
    if istop > 0 then
      begin
      cstop:=cstop+istop;
      n := n + 1
      end
  end;
  cstop := cstop / n;
  Reset(F);
  Assign(F2,'screen.dat');
  Rewrite(F2);
  writeln('Населенные пункты, в которых стоянка дольше средней');
  writeln(F2,'Населенные пункты, в которых стоянка дольше средней');
  writeln('Населенный пункт  Прибытие  Стоянка,мин   Стоимость');
  writeln(F2,'Населенный пункт  Прибытие  Стоянка,мин   Стоимость');
  with r do
    while not Eof(F) do
    begin
      read(F, r);
      istop := hhmm2Int(stop);
      if istop > cstop then
      begin
        writeln(station:18, '  ', arrival, '      ', stop, '       ', cost:7:2);
        writeln(F2,station:18, '  ', arrival, '      ', stop, '       ', cost:7:2);
      end;
    end;
  Close(F);
  Close(F2)
end.

ВНИМАНИЕ: Прикрепленный файл на самом деле RAR-архив с двумя, используемыми в программе файлами. Нужно его скачать к себе и поменять расширение TXT на RAR, а затем распаковать.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота