|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
15.12.2008, 21:48 | #1 (permalink) |
Member
Регистрация: 10.12.2008
Сообщений: 13
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
И еще задачка. Тяжелее прошлых)
текст программы: 1. Описать пользовательский тип данных с именем TRAIN типа запись (RECORD), содержащий следующие поля: - NAZN - название пункта назначения - (тип STRING); - NUMR - номер поезда (тип INTEGER); - TIME - время отправления (тип STRING). 2. Написать программу, выполняющую следующие действия: - ввод с клавиатуры данных в массив RASP, состоящий из 8-и эле- ментов типа TRAIN; записи должны быть упорядочены по номерам поездов. - вывод на экран информации о поезде, номер которого введен с клавиатуры; - если таких поездов нет - выдать на дисплей соответствующее со- общение Выбор режима работы программы и ввод исходных данных осуществля- ется через окно диалога. Формируемый массив RASP отображаетя в окне исходных данных. Результаты поиска отображаются в окне результатов. ВОт.. спасибо всем заранее))) |
15.12.2008, 21:48 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Эти топики очень похожи на ваш и помогут вам разобраться Задачка. Задачка по Паскалю |
16.12.2008, 12:11 | #2 (permalink) |
Специалист
Регистрация: 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 Причина: Пояснение |
19.12.2008, 11:21 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Черт, сейчас просмотрел программу и заметил одну ошибку - строка
Str(Min,S); должна быть, естественно, ПОСЛЕ строки Write('Время отправления. Введите минуты '); Readln(Min); Приношу извинения. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|