Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Время пассажира до отправления поезда - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Время пассажира до отправления поезда (Макросы/Sub)
Время пассажира до отправления поезда
FelixZid Дата: Пятница, 15.06.2018, 00:03 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Товарищи, здравствуйте!

Задача следующая: Поезд прибывает на станцию в a часов b минут и отправляется в c часов d минут. Пассажир пришел на платформу в n часов m минут. Определить процедуру, выводящую на экран время, оставшееся у пассажира до отправления ближайшего поезда. Числа a,b,c,d,n,m – целые, 0 <= a <= 23, 0 <= b <=59, 0 <= c <= 23, 0 <= d <=59, 0 <= n <= 23, 0 <= m <=59.

Программа написана и работает исправно, но в задании указано использовать какую-либо подпрограмму. Подскажите пожалуйста, как можно модернизировать код программы?

[vba]
Код
Private Sub CommandButton1_Click()
    Dim A As Date, B As Date, C As Date
        A = InputBox("Введите время отправления поезда (через двоеточие)")
        B = InputBox("Введите время прибытия пассажира (через двоеточие)")
            C = IIf(A < B, (CDate("23:59") - B) + A + CDate("00:01"), A - B)
    MsgBox "Время ожидания до отправления ближайшего поезда " & Format(C, "hh:mm")
End Sub
[/vba]

И вот это ещё "Определить процедуру, выводящую на экран время, оставшееся у пассажира до отправления ближайшего поезда". Растолкуйте пожалуйста :)

Спасибо!


Сообщение отредактировал FelixZid - Пятница, 15.06.2018, 00:09
 
Ответить
СообщениеТоварищи, здравствуйте!

Задача следующая: Поезд прибывает на станцию в a часов b минут и отправляется в c часов d минут. Пассажир пришел на платформу в n часов m минут. Определить процедуру, выводящую на экран время, оставшееся у пассажира до отправления ближайшего поезда. Числа a,b,c,d,n,m – целые, 0 <= a <= 23, 0 <= b <=59, 0 <= c <= 23, 0 <= d <=59, 0 <= n <= 23, 0 <= m <=59.

Программа написана и работает исправно, но в задании указано использовать какую-либо подпрограмму. Подскажите пожалуйста, как можно модернизировать код программы?

[vba]
Код
Private Sub CommandButton1_Click()
    Dim A As Date, B As Date, C As Date
        A = InputBox("Введите время отправления поезда (через двоеточие)")
        B = InputBox("Введите время прибытия пассажира (через двоеточие)")
            C = IIf(A < B, (CDate("23:59") - B) + A + CDate("00:01"), A - B)
    MsgBox "Время ожидания до отправления ближайшего поезда " & Format(C, "hh:mm")
End Sub
[/vba]

И вот это ещё "Определить процедуру, выводящую на экран время, оставшееся у пассажира до отправления ближайшего поезда". Растолкуйте пожалуйста :)

Спасибо!

Автор - FelixZid
Дата добавления - 15.06.2018 в 00:03
StoTisteg Дата: Пятница, 15.06.2018, 10:37 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Подскажите пожалуйста, как можно модернизировать код программы?

Берём произвольный кусок кода, пихаем его в отдельный Sub и вызываем из нашего, очевидно же :)
Определить процедуру, выводящую на экран время, оставшееся у пассажира до отправления ближайшего поезда
Это не мы должны растолковывать, а тот хм... гений, который так задания формулирует.


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
Сообщение
Подскажите пожалуйста, как можно модернизировать код программы?

Берём произвольный кусок кода, пихаем его в отдельный Sub и вызываем из нашего, очевидно же :)
Определить процедуру, выводящую на экран время, оставшееся у пассажира до отправления ближайшего поезда
Это не мы должны растолковывать, а тот хм... гений, который так задания формулирует.

Автор - StoTisteg
Дата добавления - 15.06.2018 в 10:37
StoTisteg Дата: Пятница, 15.06.2018, 11:41 | Сообщение № 3
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Возможно, под "процедурой, выводящей на экран время" имеется в виду MsgBox, который вообще-то функция.


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеВозможно, под "процедурой, выводящей на экран время" имеется в виду MsgBox, который вообще-то функция.

Автор - StoTisteg
Дата добавления - 15.06.2018 в 11:41
_Boroda_ Дата: Пятница, 15.06.2018, 12:06 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16672
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Вот это [vba]
Код
(CDate("23:59") - B) + A + CDate("00:01")
[/vba] можно переписать так [vba]
Код
1 - B + A
[/vba] одни сутки в Excel - это единица, 12 часов - это 0,5, и т.д

Цитата
Процедура — это независимая именованная часть программы, которую после однократного описания можно многократно вызвать по имени из последующих частей программы для выполнения определенных действий.

Если мы, например, напишем вот так
[vba]
Код
Private Sub CommandButton1_Click()
    Dim A As Date, B As Date, C As Date
    A = InputBox("Введите время отправления поезда (через двоеточие)")
    B = InputBox("Введите время прибытия пассажира (через двоеточие)")
    C = IIf(A < B, 1 - B + A, A - B)
    MsgBox Soob(C, "hh:mm")
End Sub

Function Soob(C, f)
    Soob = "Время ожидания до отправления ближайшего поезда - " & Format(C, f)
End Function
[/vba]
то функция Soob как раз и будет процедурой. И она же в данном случае будет и подпрограммой
https://ru.wikipedia.org/wiki....C%D0%B0


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеВот это [vba]
Код
(CDate("23:59") - B) + A + CDate("00:01")
[/vba] можно переписать так [vba]
Код
1 - B + A
[/vba] одни сутки в Excel - это единица, 12 часов - это 0,5, и т.д

Цитата
Процедура — это независимая именованная часть программы, которую после однократного описания можно многократно вызвать по имени из последующих частей программы для выполнения определенных действий.

Если мы, например, напишем вот так
[vba]
Код
Private Sub CommandButton1_Click()
    Dim A As Date, B As Date, C As Date
    A = InputBox("Введите время отправления поезда (через двоеточие)")
    B = InputBox("Введите время прибытия пассажира (через двоеточие)")
    C = IIf(A < B, 1 - B + A, A - B)
    MsgBox Soob(C, "hh:mm")
End Sub

Function Soob(C, f)
    Soob = "Время ожидания до отправления ближайшего поезда - " & Format(C, f)
End Function
[/vba]
то функция Soob как раз и будет процедурой. И она же в данном случае будет и подпрограммой
https://ru.wikipedia.org/wiki....C%D0%B0

Автор - _Boroda_
Дата добавления - 15.06.2018 в 12:06
StoTisteg Дата: Пятница, 15.06.2018, 12:15 | Сообщение № 5
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, это Вы объясняете, как это понимают все нормальные люди, а что думает автор загадочного текста, процитированного ТС, не знает, полагаю, даже он сам :)


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
Сообщение_Boroda_, это Вы объясняете, как это понимают все нормальные люди, а что думает автор загадочного текста, процитированного ТС, не знает, полагаю, даже он сам :)

Автор - StoTisteg
Дата добавления - 15.06.2018 в 12:15
FelixZid Дата: Суббота, 16.06.2018, 18:44 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, StoTisteg, такие вот задания нынче дают.. пойди разберись что к чему.. ну Вам огромное спасибо, товарищи!!! hands
 
Ответить
Сообщение_Boroda_, StoTisteg, такие вот задания нынче дают.. пойди разберись что к чему.. ну Вам огромное спасибо, товарищи!!! hands

Автор - FelixZid
Дата добавления - 16.06.2018 в 18:44
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Время пассажира до отправления поезда (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!