Помощь - Поиск - Пользователи - Календарь
Полная версия: Расписание звонков
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Артурио
В учебном заведении задаётся начало учебного дня. Продолжительность пары , продолжительность обычного и большого перерывов (их места в расписании), количество пар или уроков. Получить расписание уроков на весь учебный день.
Mind
Чего то не понятен смысл задачи....
Ну вводишь все свои данные предположим... И чё, тебе просто надо их вывести дальше на экран в виде таблицы и всё что ли?
В чём сложность то конкретно?
Артурио
Цитата(Mind @ 10.03.2007 23:27) *

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

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

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

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

smile.gif объясни,что это такое?как понять?
volvo
Так?
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
Ааа...понял. smile.gif пара=урок в университете.(2х(пара) обычного урока)... yes2.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.