И еще задачка. Тяжелее прошлых)
Вот опять нужна помощь.. Пожалуйста, помогите))
текст программы: 1. Описать пользовательский тип данных с именем TRAIN типа запись (RECORD), содержащий следующие поля: - NAZN - название пункта назначения - (тип STRING); - NUMR - номер поезда (тип INTEGER); - TIME - время отправления (тип STRING). 2. Написать программу, выполняющую следующие действия: - ввод с клавиатуры данных в массив RASP, состоящий из 8-и эле- ментов типа TRAIN; записи должны быть упорядочены по номерам поездов. - вывод на экран информации о поезде, номер которого введен с клавиатуры; - если таких поездов нет - выдать на дисплей соответствующее со- общение Выбор режима работы программы и ввод исходных данных осуществля- ется через окно диалога. Формируемый массив RASP отображаетя в окне исходных данных. Результаты поиска отображаются в окне результатов. ВОт.. спасибо всем заранее))) |
Пожалуйста:
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. Дальше она сама. |
ооо)))) вы мой спаситель)))) спасибо))) огромное)
|
Черт, сейчас просмотрел программу и заметил одну ошибку - строка
Str(Min,S); должна быть, естественно, ПОСЛЕ строки Write('Время отправления. Введите минуты '); Readln(Min); Приношу извинения. |
Часовой пояс GMT +4, время: 12:18. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.