Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Расписание звонков

Автор: Артурио 10.03.2007 19:45

В учебном заведении задаётся начало учебного дня. Продолжительность пары , продолжительность обычного и большого перерывов (их места в расписании), количество пар или уроков. Получить расписание уроков на весь учебный день.

Автор: Mind 11.03.2007 3:27

Чего то не понятен смысл задачи....
Ну вводишь все свои данные предположим... И чё, тебе просто надо их вывести дальше на экран в виде таблицы и всё что ли?
В чём сложность то конкретно?

Автор: Артурио 11.03.2007 4:20

Цитата(Mind @ 10.03.2007 23:27) *

Чего то не понятен смысл задачи....
Ну вводишь все свои данные предположим... И чё, тебе просто надо их вывести дальше на экран в виде таблицы и всё что ли?
В чём сложность то конкретно?

Да, вводишь свои значения! Типа начало урока, продолжительность, перемены... и чтоб получилось расписание.

Автор: мисс_граффити 11.03.2007 4:30

/me вспомнила свое расписание
там еще и названия предметов фигурируют... и аудитории.... и иногда преподы.

можно пример входных и выходных данных?

Автор: Артурио 11.03.2007 11:59

В смысле?? Задаёшь свои параметры. Никаких аудиторий и преподов! Прсто расписание получить надо! типа
08.30-09.50
10.00 - 11.20
...

Автор: Perfez 11.03.2007 12:55

Цитата
Продолжительность пары

и
Цитата
количество пар

smile.gif объясни,что это такое?как понять?

Автор: volvo 11.03.2007 14:59

Так?

const
n = 5;
time_start = '08:00'; { <-- Начало занятий }
lesson = 45; { <-- Продолжительность урока, мин.}
pause_min: integer = 5; { <-- Продолжительность маленькой перемены, мин. }
pause_max: integer = 20; { <-- Продолжительность большой перемены (для теста - считаю, что она одна), мин. }
pause_max_place = 3; { <-- Большая перемена следует после ЭТОГО урока }

function T(start: string; DT: integer): string;

function inttostr(X: integer; len: integer): string;
var s: string;
begin
str(X, s);
while length(s) < len do s := '0' + s;
inttostr := s;
end;

var
hour, min, err: integer;
begin
val(copy(start, 1, pos(':', start) - 1), hour, err);
val(copy(start, pos(':', start) + 1, length(start)), min, err);
min := (min + DT) mod 60;
hour := (hour + DT div 60) mod 24;

T := inttostr(hour, 2) + ':' + inttostr(min, 2);
end;

var i: integer;
begin
dec(pause_max, pause_min);
for i := 1 to n do begin
writeln('#', i:2, ': ',
T(time_start, pred(i)*lesson + pred(i)*pause_min + byte(i > pause_max_place)*pause_max),
' - ',
T(time_start, i*lesson + pred(i)*pause_min + byte(i > pause_max_place)*pause_max))
end;
end.

Автор: Perfez 11.03.2007 15:13

Ааа...понял. smile.gif пара=урок в университете.(2х(пара) обычного урока)... yes2.gif