• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

И еще задачка. Тяжелее прошлых)

  • Автор темы Автор темы sweeney
  • Дата начала Дата начала

sweeney

Новые
Регистрация
10 Дек 2008
Сообщения
13
Реакции
0
Баллы
0
И еще задачка. Тяжелее прошлых)

Вот опять нужна помощь.. Пожалуйста, помогите))

текст программы:

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.NUMBER);
Write('Введите пункт назначения '); ReadLn(RASP_bef.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.Time:=Hours+'.'+Minutes;
END;

{Упорядочение по номерам поездов}
Num:=8;
FOR j:=1 TO 8 DO
BEGIN
Max:=10000;
FOR i:=1 TO Num DO
IF RASP_bef.NUMBER<Max THEN
BEGIN
Max:= RASP_bef.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;
Dec(Num);
END;
END;

{Показ расписания}
WriteLn;
WriteLn('Расписание:');
FOR i:=1 TO 8 DO
BEGIN
Write('Поезд N: ', RASP.NUMBER);
Write(' Пункт: ', RASP.Nazn);
Write(' Время: ', RASP.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.NUMBER=Train_Number THEN
BEGIN
Train_Exists:=TRUE;
Writeln('Поезд N: ', Train_Number);
Writeln('Пункт назначения: ', RASP.Nazn);
Writeln('Время отправления: ', RASP.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);
Приношу извинения.
 
Назад
Сверху