Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Pascal] Задача на составления расписания


Автор: lamerOK 3.5.2007, 12:31
Помогите составить прогу на паскале. Там надо расписание составить. Вот что я смог накропать smile 


Код

program raspisanie;
uses crt;
var  kol,i:integer;
nach,kons,n,p,oper,bper,bvrem,rasp,kon:real;
begin
write('Введите время начала занятий в часах ');
readln(n);
write('Введите продолжительности занятий в минутах ');
readln(p);
write('Введите время продолжительности обычного перерыва ');
readln(oper);
write('Введите время продолжительности большого перерыва ');
readln(bper);
write('Введите после какого урока(пары) большой перерыв ');
readln(bvrem);
write('Введите количество уроков(пар) ');
readln(kol);
nach:=n;
kon:=nach;
for i:=1 to kol do
begin
nach:=kon;
kons:=nach+(p/100);
kon:=kons+(oper/100);
write(i,'. ',nach:5:2,' - ',kons:5:2);
writeln;
end;
end.

Автор: comtat 3.5.2007, 14:42
У точни плиз, тебе нужно программу, которая в свой работе будет использовать теорию расписания 
или что-то другое ??

Автор: lamerOK 13.5.2007, 22:22
Вот пример, того что должно выйти на экран:

1. 8.00 - 8.40   {после урока обычный перерыв 10 мин}
2. 8.50 - 9.30   {после урока обычный перерыв 10 мин}
3. 9.40 - 10.20  {после урока большой перерыв 20 мин}
4. 10.40-11.20 {после урока обычный перерыв 10 мин}
5. 11.30 - 12.10 {после урока обычный перерыв 10 мин}
и т.д.

Автор: lamerOK 14.5.2007, 14:57
Ну помогите, плз smile

Автор: Klin 14.5.2007, 16:20
уже готово smile ща протестирую и выложу

Добавлено через 5 минут и 37 секунд
Код

uses CRT;
var less_count, smallCH_time, bigCH_time, bigCH_num, change_time, i: integer;
    start_time, less_time: string;
{--------------------------------------------------------------}

{ перевод времени в минуты }
function TimeToInt (time: string): integer;
var min, hour, err_1, err_2: integer;
begin
 Val(Copy(time,1,Pos(':',time)-1),hour,err_1);
 Val(Copy(time,Pos(':',time)+1,Length(time)-Pos(':',time)),min,err_2);
 if (err_1 = 0) and (err_2 = 0) then begin TimeToInt:=hour*60+min;; end
 else TimeToInt:=0;
end;
{--------------------------------------------------------------}
{ перевод минут во время }
function IntToTime (time: integer): string;
var min,hour: string;
begin
 Str(trunc(time/60),hour);
 Str(time mod 60,min);
 if (Length(min)=1) then min:='0'+min;
 IntToTime:=hour+':'+min;
end;
{--------------------------------------------------------------}
begin

 clrscr;
 write('Введите время начала занятий (чч:мм): ');
  readln(start_time);
 write('Введите продолжительность одного занятия (чч:мм): ');
  readln(less_time);
 write('Введите количество занятий: ');
  readln(less_count);
 write('Введите продолжительность обычной перемены (мин): ');
  readln(smallCH_time);
 write('Введите продолжительность большой перемены (мин): ');
  readln(bigCH_time);
 write('Введите номер занятия, после которого идет большая перемена: ');
  readln(bigCH_num);
 clrscr;

 for i:=1 to less_count do begin
 if (i <> bigCH_num+1) then begin change_time:=smallCH_time end
 else change_time:=bigCH_time;
 writeln(IntToTime(TimeToInt(start_time)+TimeToInt(less_time)*(i-1)+change_time+smallCH_time*(i-2)),'-',
     IntToTime(TimeToInt(start_time)+TimeToInt(less_time)*(i)+change_time+smallCH_time*(i-2)));
 end;
end.


Добавлено через 9 минут и 53 секунды
переменные

числовые
  •  less_count - количество занятий
  •  smallCH_time - время обычной перемены
  •  bigCH_time - время большой перемены
  •  bigCH_num - после какого занятия следует большая перемена
  •  change_time - текущее время перемены

текстовые
  •  start_time - время начала занятий
  •  less_time - длительность занятия

Добавлено через 10 минут и 55 секунд
библиотеку CRT используем для очистки экрана.

Автор: lamerOK 15.5.2007, 01:15
Воще красавец, Спасиб  smile  

Автор: aqually 13.10.2022, 12:30
Модератор: Сообщение скрыто.

Автор: Ciminance 24.10.2022, 06:24
Модератор: Сообщение скрыто.

Автор: Queuego 5.11.2022, 00:44
Модератор: Сообщение скрыто.

Автор: Saceaddep 7.12.2022, 05:32
Модератор: Сообщение скрыто.

Автор: Adjusly 24.1.2023, 00:35
Модератор: Сообщение скрыто.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)