Показать сообщение отдельно
Старый 16.12.2008, 12:11   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Пожалуйста:

PROGRAM Time_Table;

TYPE

TRAIN = Record
Nazn: STRING;
NUMBER:INTEGER;
TIME:STRING;
END;

VAR

RASP,RASP_bef: ARRAY[1..8] of TRAIN;
Hours, Minutes, S:String;
Hr, Min, i, j, i0, Max, Num, Train_Number:Integer;
Train_Exists:BOOLEAN;

BEGIN

{Ввод данных в расписание}
FOR i:=1 TO 8 DO
BEGIN
Write('Введите номер поезда '); ReadLn(RASP_bef[i].NUMBER);
Write('Введите пункт назначения '); ReadLn(RASP_bef[i].Nazn);
Write('Время отправления. Введите часы '); Readln(Hr);
Str(Hr,S);
IF Hr>=10 THEN Hours:=S ELSE Hours:='0'+S[1];
Str(Min,S);
Write('Время отправления. Введите минуты '); Readln(Min);
IF Min>=10 THEN Minutes:=S ELSE
Minutes:='0'+S[1];
RASP_bef[i].Time:=Hours+'.'+Minutes;
END;

{Упорядочение по номерам поездов}
Num:=8;
FOR j:=1 TO 8 DO
BEGIN
Max:=10000;
FOR i:=1 TO Num DO
IF RASP_bef[i].NUMBER<Max THEN
BEGIN
Max:= RASP_bef[i].NUMBER;
i0:=i;
END;
RASP[j]:=RASP_bef[i0];
IF i0=Num THEN Dec(Num) ELSE
BEGIN
FOR i:=i0+1 TO Num DO RASP_bef[i-1]:=RASP_bef[i];
Dec(Num);
END;
END;

{Показ расписания}
WriteLn;
WriteLn('Расписание:');
FOR i:=1 TO 8 DO
BEGIN
Write('Поезд N: ', RASP[i].NUMBER);
Write(' Пункт: ', RASP[i].Nazn);
Write(' Время: ', RASP[i].TIME);
Writeln;
END;
WriteLn('Для продолжения нажмите "ENTER"');
ReadLn;

{Выдача информации о поедах}
WriteLn;
Writeln('Для выхода из программы введите нулевой номер поезда');
REPEAT
Train_Exists:=FALSE;
Write('Введите номер поезда '); ReadLn(Train_Number);
IF Train_Number>0 THEN
BEGIN
i:=0;
REPEAT
Inc(i);
IF i<9 THEN
IF RASP[i].NUMBER=Train_Number THEN
BEGIN
Train_Exists:=TRUE;
Writeln('Поезд N: ', Train_Number);
Writeln('Пункт назначения: ', RASP[i].Nazn);
Writeln('Время отправления: ', RASP[i].TIME);
END;
UNTIL (Train_Exists) OR (i=9);
IF i=9 THEN WriteLn('Такого поезда нет!');
WriteLn;
END;
UNTIL Train_Number = 0;

END.


Да, на всякий случай - часы и минуты отправления поездов вводятся в ЧИСЛОВОМ формате, т.е. не 07, а просто 7. Дальше она сама.

Последний раз редактировалось Vladimir_S; 16.12.2008 в 12:22 Причина: Пояснение
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070