Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.02.2012, 16:37   #1
PHARAoN91
 
Регистрация: 15.10.2011
Сообщений: 6
По умолчанию Описать процедуру интервал (d,t2,t1)

Здравствуйте уважаемые эксперты! У меня возникли трудности со следующим вопросом:

Описать процедуру интервал (d,t2,t1) которая вычисляет время d, прошедшое от времени t1 до времени t2: d=t2-t1 (считать что t2>t1).

Ниже следует код программы:
Код:
uses crt;
type time=record
          h:0..23;
          m,s:0..59;
          end;
procedure Interval(var d:time;t1,t2:time);
var p:0..59;
begin
if t2.s>=t1.s then
 begin
  d.s:=t2.s-t1.s;
  p:=0;
 end
else
 begin
  d.s:=60+t2.s-t1.s;
  p:=1;
 end;
if t2.m-p>=t1.m then
 begin
  d.m:=t2.m-p-t1.m;
  p:=0;
 end
else
 begin
  d.m:=60+t2.m-p-t1.m;
  p:=1;
 end;
if t2.h-p>=t1.h then d.h:=t2.h-p-t1.h
else d.h:=24+t2.h-p-t1.h;
write('Прошло времени = ',d.h,'ч. ',d.m,'мин. ',d.s,'сек.');
end;
var n,k,r:time;
    f:boolean;
begin
clrscr;
repeat
f:=true;
writeln('Введите первое время, часы минуты секунды:');
readln(n.h,n.m,n.s);
if not(n.h in [0..23]) or not(n.m in [0..59]) or not(n.s in [0..59])then
 begin
  f:=false;
  writeln('Время введено неверно, повторите ввод');
 end;
until f;
repeat
f:=true;
writeln('Введите второе время, не меньше первого и не больше 23:59:59');
readln(k.h,k.m,k.s);
if not(k.h in [0..23]) or not(k.m in [0..59]) or not(k.s in [0..59])
or((k.h<n.h)or((k.h=n.h)and(k.m<n.m))or((k.h=n.h)and(k.m=n.m)and(k.s>n.s)))
then
 begin
  f:=false;
  writeln('Время введено неверно, повторите ввод');
 end;
until f;
Interval(r,n,k);
readln
end.
Составить программу на языке Borland Pascal. Необходимо организовать проверку вводимых данных и их корректный ввод. По окончании программы выдать сообщение с вопросом "вы хотите ввести новые данные?". Упростить программу, написать код в котором не менее 3-х процедур и функций (н-р процедуру для условия, процедуру для организации разного формата ввода времени и т. д.). В общем сделать так, чтобы было как можно меньше кода в теле программы и в тоже время чтобы процедура не была объемной.
PHARAoN91 вне форума Ответить с цитированием
Старый 23.02.2012, 19:33   #2
PHARAoN91
 
Регистрация: 15.10.2011
Сообщений: 6
По умолчанию

могу гарантировать материальное вознаграждение за помощь в решении задачи...
PHARAoN91 вне форума Ответить с цитированием
Старый 23.02.2012, 21:33   #3
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

мда...
и так у вас есть 1 процедура и она готова. я (допустим я) должен написать еще 2(как минимум 2) процедуры/функции (1) корректный ввод 2) "не хотите ли еще раз?"). Так или ошибаюсь?
Poma][a вне форума Ответить с цитированием
Старый 24.02.2012, 13:30   #4
PHARAoN91
 
Регистрация: 15.10.2011
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Poma][a Посмотреть сообщение
мда...
и так у вас есть 1 процедура и она готова. я (допустим я) должен написать еще 2(как минимум 2) процедуры/функции (1) корректный ввод 2) "не хотите ли еще раз?"). Так или ошибаюсь?
Да, только еще процедуру для ввода времени в определенном формате...
PHARAoN91 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Описать процедуру в С++ Devil21RUS Помощь студентам 1 17.10.2011 11:54
Описать процедуру sear Паскаль, Turbo Pascal, PascalABC.NET 1 11.05.2011 13:20
Описать процедуру, меняющую... !IRA! Помощь студентам 3 02.02.2011 23:42
Описать процедуру change (x, y, z) qwerty777 Паскаль, Turbo Pascal, PascalABC.NET 2 30.05.2010 22:50
Описать процедуру Remove (A,N,X) Catuney Помощь студентам 0 14.05.2010 22:02