Помощь - Поиск - Пользователи - Календарь
Полная версия: Расписание звонков
Форум «Всё о Паскале» > 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
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.