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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2007, 18:21   #1
maximon
Пользователь
 
Регистрация: 26.12.2007
Сообщений: 19
По умолчанию Помогите решить

Помогите решить в Delphi:
Текущее время (часы, минуты, секунды) задано тремя переменными: h, m s. Округлить его до целых значений минут и часов. Например, 14 ч 21 мин 45 с преобразуется в 14 ч 22 мин или 14 ч, а 9 ч 59 мин 23 с – соответственно в 9 ч 59 мин или 10 ч.
maximon вне форума Ответить с цитированием
Старый 26.12.2007, 18:36   #2
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Ну, и в чем затруднение?
Код:
if s >= 30 then m:=m+1;
if m >= 30 then h:=h+1;
if h = 24 then h:=0;
_Dmitry вне форума Ответить с цитированием
Старый 26.12.2007, 18:37   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Функции типа Hour (см хелп) отделят тебе минуты часы и секунды а далее округляй
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.12.2007, 18:40   #4
maximon
Пользователь
 
Регистрация: 26.12.2007
Сообщений: 19
По умолчанию

А как это записать именно в delphi? Я примерно представляю но вот не хвататет информации сижу щас уже часа 3 искал но не чего не могу найти как все это соеденить в одно и что бы программка заработала. И вот решил зайти на форум что бы люди помогли решить а после уже по коду смотреть что и как тут сделано. Ну как бы сказать на живом примере уже догонять
maximon вне форума Ответить с цитированием
Старый 26.12.2007, 18:44   #5
maximon
Пользователь
 
Регистрация: 26.12.2007
Сообщений: 19
По умолчанию

Цитата:
Сообщение от _Dmitry Посмотреть сообщение
Ну, и в чем затруднение?
Код:
if s >= 30 then m:=m+1;
if m >= 30 then h:=h+1;
if h = 24 then h:=0;
Я как понял этот код отвечает за округдение? Я как понял нужно применить Round(x) для округления до целого значения но как это написать не могу понять
maximon вне форума Ответить с цитированием
Старый 26.12.2007, 19:01   #6
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Round округляет дробное число до целого, например, round(4.8)=5. У вас же часы, минуты, секунды в разных переменных и здесь он не нужен.
_Dmitry вне форума Ответить с цитированием
Старый 26.12.2007, 19:05   #7
maximon
Пользователь
 
Регистрация: 26.12.2007
Сообщений: 19
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
s,m,h: integer;
begin
 h:=StrToInt(Edit1.Text);
 m:=StrToInt(Edit2.Text);
 s:=StrToInt(Edit3.Text);
 if s>=30 then m:=m+1;
 if m>=30 then h:=h+1;
 if h=24 then h:=0;

end;
Это так получаеться нужно написать или я что то не допонимаю
maximon вне форума Ответить с цитированием
Старый 26.12.2007, 19:10   #8
maximon
Пользователь
 
Регистрация: 26.12.2007
Сообщений: 19
По умолчанию

_Dmitry помочь можешь решить задачу? Если нужно я могу заплатить
maximon вне форума Ответить с цитированием
Старый 26.12.2007, 19:21   #9
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Цитата:
Сообщение от maximon Посмотреть сообщение
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
s,m,h: integer;
begin
 h:=StrToInt(Edit1.Text);
 m:=StrToInt(Edit2.Text);
 s:=StrToInt(Edit3.Text);
 if s>=30 then m:=m+1;
 if m>=30 then h:=h+1;
 if h=24 then h:=0;

end;
Это так получаеться нужно написать или я что то не допонимаю
похоже что так... Она работает? Тебе осталось только кудато ввывести уже круглённый результат.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 26.12.2007, 19:22   #10
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Так ты ведь уже все написал, нужно только печатать результат, например, в Edit4 и Edit5
Код:
procedure TForm1.Button1Click(Sender: TObject);   
var  
s,m,h: integer;   
begin  
 h:=StrToInt(Edit1.Text);   
 m:=StrToInt(Edit2.Text);   
 s:=StrToInt(Edit3.Text);   
 if s>=30 then m:=m+1;
 Edit4.Text:=IntToStr(h)+':'+IntToStr(m);   
 if m>=30 then h:=h+1;   
 if h=24 then h:=0;   
 Edit5.Text:=IntToStr(h);  
end;
_Dmitry вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить SPARTA Помощь студентам 3 03.07.2008 17:01
помогите решить OIOI Общие вопросы C/C++ 2 09.05.2008 02:30