IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Нужно сделать расчёт времени, Помогите
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 54
Пол: Мужской

Репутация: -  0  +


Начали изучать Pascal и дали задачу вводим начальное время (ч,м,с) конечное время (ч,м,с) и надо сделать так чтобы он находил количество времени прошедшее от начала до конца и ответ чтобы выводил в формате (ч,м,с)
P.S Мы только начали проходить Pascal так что прошу как можно проще реализовать потомучто сказали с базовыми навыками реализовать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


Все просто, на самом деле:

Program Primer2;
Var
a,b,c:integer;
d,f,e:integer;
sec:longint;

Begin
writeln('введите начальное время:'); readln(a,b,c);
writeln('введите конечное время:'); readln(d,f,e);

{ Теперь переводим это время в секунды и из второго вычитаем первое }
sec := 0;
sec := sec + (e + 60 * f + 3600 * d) -
(c + 60 * b + 3600 * a);


{ Выводим разницу: чтоб получить часы надо разделить НАЦЕЛО секунды на 3600,
чтоб получить минуты - от общего числа секунд отнять 3600 * кол-во часов,
и результат поделить на 60 (тоже нацело). Ну, а с секундами - все просто: достаточно
взять остаток от деления sec на 60, это и будет число секунд }

writeln('Разница = ', sec div 3600, ':',
(sec - 3600 * (sec div 3600)) div 60, ':', sec mod 60);
readln;
End.

Зачем понадобилось присваивать sec нулю, а потом прибавлять к нему то, что я прибавил (вместо того, чтобы сразу, без "sec + " записать то же самое) - попробуй догадаться сам smile.gif (я бы попросил остальных участников пока не подсказывать, почему сделано именно так)

Сообщение отредактировано: IUnknown -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 10.09.2025 12:17
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name