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


Автор: supergiperlamer 26.11.2006, 23:09
Требуется написать программу в паскале для задачи:

   Заданы моменты начала и конца некоторого промежутка времени в часах, минутах и секундах (в пределах одних суток). Найти продолжительность этого промежутка времени в тех же единицах.

Автор: volvo877 27.11.2006, 01:34
Так?
Код

type
  Time = record
    hrs, mins, secs: byte;
  end;

procedure time_diff(var res: Time; const st, fn: Time);
var T: longint;
begin
  T :=
    (((fn.hrs)*60 + fn.mins)*60 + fn.secs) -
    (((st.hrs)*60 + st.mins)*60 + st.secs);

  with res do begin
    hrs  := T div 3600; T := T - 3600 * hrs;
    mins := T div   60; T := T - 60 * mins;
    secs := T;
  end;
end;

const
  start_time: Time = (
    hrs:10; mins:27; secs:15;
  );
  finish_time: Time = (
    hrs:14; mins:01; secs:11;
  );

var
  r: Time;
begin
  time_diff(r, start_time, finish_time);
  writeln('difftime: ', r.hrs:02, ' hrs ',
          r.mins:02, ' mins ', r.secs:02, ' secs');
end.

Автор: supergiperlamer 27.11.2006, 13:22
Вообще так... а попроще это нельзя сделать? дело в том, что я паскаль месяца 3 изучаю и штуки вроде: start_time, time_diff, procedure time_diff мы пока не проходили...и еще, если тебя не затруднит, нарисуй, пжлста, блок-схему к этой программе...

Автор: supergiperlamer 2.12.2006, 23:33
Поправки к задаче:
 Время начала и конца промежутка времени нужно вводить с клавиатуры, плюс начертить блок-схему.

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