Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 12.01.2018, 19:55   #1 (permalink)
bubuski
Новичок
 
Регистрация: 12.01.2018
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Unhappy Помогите написать код на Делфи

Помогите пожалуйста нужно сделать что то похожее на калькулятор только чтобы часы минуты и секунды правильно считал допустим из 14:00:00-13:30:00. Написать код на делфи(
bubuski вне форума   Ответить с цитированием

Старый 12.01.2018, 19:55
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

В этих топиках могут быть нужные вам материалы

Помогите написать задачу на Делфи
Делфи. Помогите написать программный код
Помогите написать программу на языке Делфи
Помогите написать программу в делфи

Старый 13.01.2018, 10:07   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Всё, чем могу помочь — написать решение на Паскале. Эту программу можно взять за основу, а дальше резвиться с Делфи-формами.
Код:
Var
 S1,S2,h,m,s,h_s,m_s,s_s:String;
 Act:Char;
 T,Time1,Time2,Time3,Day:LongInt;
 Code:Word;
 h_b,m_b,s_b:Byte;
 b1,b2,b3,b4,b5,b6,b7:Boolean;

Begin
 Day:=24*3600;
 Repeat
  b1:=True; b2:=True; b3:=True; b4:=True; b5:=True; b6:=True; b7:=True;
  Write('Enter the first time (hh:mm:ss) ');
  Readln(S1);
  Write('Enter the action ("+","-") ');
  Readln(Act);
  if (Act<>'+') and (Act<>'-') then b7:=False;
  Write('Enter the second time (hh:mm:ss) ');
  Readln(S2);
  h_s:=S1[1]+S1[2];
  m_s:=S1[4]+S1[5];
  s_s:=S1[7]+S1[8];
  Val(h_s,T,Code);
  if T>23 then b1:=False;
  Time1:=T*3600;
  Val(m_s,T,Code);
  if T>59 then b2:=False;
  Time1:=Time1+T*60;
  Val(s_s,T,Code);
  Time1:=Time1+T;
  if T>59 then b3:=False;
  h_s:=S2[1]+S2[2];
  m_s:=S2[4]+S2[5];
  s_s:=S2[7]+S2[8];
  Val(h_s,T,Code);
  if T>23 then b4:=False;
  Time2:=T*3600;
  Val(m_s,T,Code);
  if T>59 then b5:=False;
  Time2:=Time2+T*60;
  Val(s_s,T,Code);
  if T>59 then b6:=False;
  Time2:=Time2+T;
  if Not(b1) or Not(b2) or Not(b3) or Not(b4) or Not(b5) or Not(b6) or Not(b7)
   then
     Writeln('Incorrect!!!');
 Until b1 and b2 and b3 and b4 and b5 and b6 and b7;
 if Act='+' then Time3:=Time1+Time2 else Time3:=Time1-Time2;
 if Time3>Day then Time3:=Time3-Day;
 if Time3<0 then Time3:=Day+Time3;
 Write('Result: ');
 h_b:=Time3 div 3600;
 Time3:=Time3 mod 3600;
 if h_b<10 then write('0',h_b) else write(h_b);
 write(':');
 m_b:=Time3 div 60;
 s_b:=Time3 mod 60;
 if m_b<10 then write('0',m_b) else write(m_b);
 write(':');
 if s_b<10 then write('0',s_b) else write(s_b);
 Readln
End.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 21:37.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.