![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Artem7 |
![]() ![]()
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 54 Пол: Мужской Репутация: ![]() ![]() ![]() |
Начали изучать Pascal и дали задачу вводим начальное время (ч,м,с) конечное время (ч,м,с) и надо сделать так чтобы он находил количество времени прошедшее от начала до конца и ответ чтобы выводил в формате (ч,м,с)
P.S Мы только начали проходить Pascal так что прошу как можно проще реализовать потомучто сказали с базовыми навыками реализовать. |
Гость |
![]()
Сообщение
#2
|
Гость ![]() |
Переводиш все в секунды вычитаеш,а потом делаеш обратное преобразование,в чем конкретно проблема?Если проблема написать,то вы начните сначала,а если будут вопросы,вам помогут.Не попробовав вы и не научитесь писать.
|
Artem7 |
![]() ![]()
Сообщение
#3
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 54 Пол: Мужской Репутация: ![]() ![]() ![]() |
Program Primer2; Ну вот есть наработки как можно обратно всё перевести в часы, минуты, секунды по отдельности??? |
IUnknown |
![]()
Сообщение
#4
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Все просто, на самом деле:
Program Primer2; Зачем понадобилось присваивать sec нулю, а потом прибавлять к нему то, что я прибавил (вместо того, чтобы сразу, без "sec + " записать то же самое) - попробуй догадаться сам ![]() Сообщение отредактировано: IUnknown - 8.02.2012 19:59 |
Artem7 |
![]() ![]()
Сообщение
#5
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 54 Пол: Мужской Репутация: ![]() ![]() ![]() |
Зачем понадобилось присваивать sec нулю, а потом прибавлять к нему то, что я прибавил (вместо того, чтобы сразу, без "sec + " записать то же самое) - попробуй догадаться сам ![]() Хм что то тут поразмыслил ничего не приходит на ум, может потому что только начал работать с паскалем((( Не могли бы вы сказать для чего? |
Artem7 |
![]() ![]()
Сообщение
#6
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 54 Пол: Мужской Репутация: ![]() ![]() ![]() |
вот что происходит когда в конечном времени минут больше чем в начальном(((как исправить это?
Эскизы прикрепленных изображений ![]() |
Гость |
![]()
Сообщение
#7
|
Гость ![]() |
Сделать проверку,чтобы начальное число было больше конечного)))
....... if (a<d) and (b<f) and (c<e) then ........ |
Krjuger |
![]()
Сообщение
#8
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Тьфу,залогиниться забыл, и описался
Цитата начальное число было больше конечного Меньше конешно же))) |
IUnknown |
![]()
Сообщение
#9
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата вот что происходит когда в конечном времени минут больше чем в начальном((( Та программа, которую привел я такой вывод отображать не может. По крайней мере сразу после вывода приглашения "Введите начальное/конечное время" у меня идет перевод строки, у тебя же - ввод продолжается на той же строке. Значит, программу правил. Обычно в таких случаях показывают, что запускалось. Но я тебе и так скажу, в чем проблема. В Турбо-Паскале тот фокус, который я задумал, не прошел. Переполнение типа Integer приводит к тому, что получаются отрицательные результаты. Итого, делаем как положено:sec := (e + 60 * f + 3600 * longint(d)) - , и на показанных исходных данных получаем правильный результат "2:19:35" Цитата Сделать проверку,чтобы начальное число было больше конечного))) Это неправильный путь. Твое условие тут же даст сбой, если введенное конечное время - в пределах одного и того же часа, что и начальное ![]() |
Artem7 |
![]() ![]()
Сообщение
#10
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 54 Пол: Мужской Репутация: ![]() ![]() ![]() |
Сделать проверку,чтобы начальное число было больше конечного))) ....... if (a<d) and (b<f) and (c<e) then ........ Хм, ввел ваше условие проверил всё работает, потом поробовал убрать ваше условие и проверить работоспособность и без условия сработало.... ![]() Добавлено через 4 мин. Та программа, которую привел я такой вывод отображать не может. По крайней мере сразу после вывода приглашения "Введите начальное/конечное время" у меня идет перевод строки, у тебя же - ввод продолжается на той же строке. Значит, программу правил. Обычно в таких случаях показывают, что запускалось. Но я тебе и так скажу, в чем проблема. В Турбо-Паскале тот фокус, который я задумал, не прошел. Переполнение типа Integer приводит к тому, что получаются отрицательные результаты. Итого, делаем как положено: sec := (e + 60 * f + 3600 * longint(d)) - , и на показанных исходных данных получаем правильный результат "2:19:35" Это неправильный путь. Твое условие тут же даст сбой, если введенное конечное время - в пределах одного и того же часа, что и начальное ![]() Спасибо большое всё работает)))) |
![]() ![]() |
![]() |
Текстовая версия | 19.07.2025 19:14 |