
На языке С++! Помогите, пожалуйста. Студент начал решать задачи данного урока программирования,
когда электронные часы показывали h1 часов и min1 минут, а закончил, когда было h2 часов и min2 минут. Составьте программу, позволяющую определить, сколько времени студент решал эти задачи. (Будем считать, что задачи решались не дольше суток).

Ответы на вопрос

Ответ:
Если не заморачиваться с проверками:
1)
#include <iostream>
using namespace std;
int main()
{
unsigned short int h1,h2,m1,m2;
cout << "Enter start time: ";
cin >> h1 >> m1;
cout << "Enter end time: ";
cin >> h2 >> m2;
unsigned short int SpendedTime = (h2 * 60 + m2) - (h1 * 60 + m1);
unsigned short int SpendedHours = SpendedTime / 60;
unsigned short int SpendedMinutes = SpendedTime - SpendedHours * 60;
cout << "Spended time: ";
if(SpendedHours != 0){
cout << SpendedHours;
if(SpendedHours != 1){
cout << " hours";
}else{
cout << " hour";
}
cout << " and ";
}
cout << SpendedMinutes;
if(SpendedMinutes != 1){
cout << " minutes";
}else{
cout << " minute";
}
return 0;
}
Если заморачиваться:
2)
#include <iostream>
using namespace std;
int main()
{
unsigned short int h1,h2,m1,m2;
bool Passed = false;
while(Passed != true){
cout << "Enter start time: ";
cin >> h1 >> m1;
cout << "Enter end time: ";
cin >> h2 >> m2;
if(h2 >= h1){
if(h2 > h1){
Passed = true;
break;
}else{
if(m2 >= m1){
Passed = true;
break;
}
}
}
cout << "Error: entered wrong time interval \n";
}
unsigned short int SpendedTime = (h2 * 60 + m2) - (h1 * 60 + m1);
unsigned short int SpendedHours = SpendedTime / 60;
unsigned short int SpendedMinutes = SpendedTime - SpendedHours * 60;
cout << "Spended time: ";
if(SpendedHours != 0){
cout << SpendedHours;
if(SpendedHours != 1){
cout << " hours";
}else{
cout << " hour";
}
cout << " and ";
}
cout << SpendedMinutes;
if(SpendedMinutes != 1){
cout << " minutes";
}else{
cout << " minute";
}
return 0;
}
Объяснение:



Конечно, я могу помочь вам написать программу на языке C++, которая решит данную задачу. Вот пример:
```cpp
#include
int main() { // Ввод времени начала и окончания решения задач int h1, min1, h2, min2; std::cout << "Введите время начала решения задач (часы минуты): "; std::cin >> h1 >> min1;
std::cout << "Введите время окончания решения задач (часы минуты): "; std::cin >> h2 >> min2;
// Проверка ввода на корректность if (h1 < 0 || h1 > 23 || min1 < 0 || min1 > 59 || h2 < 0 || h2 > 23 || min2 < 0 || min2 > 59) { std::cerr << "Ошибка ввода времени. Пожалуйста, введите корректные значения.\n"; return 1; // Возврат кода ошибки }
// Вычисление времени решения задач int totalMinutes1 = h1 * 60 + min1; // время начала в минутах int totalMinutes2 = h2 * 60 + min2; // время окончания в минутах
int totalTimeInMinutes = (totalMinutes2 - totalMinutes1 + 24 * 60) % (24 * 60); // общее время в минутах
// Перевод общего времени обратно в часы и минуты int totalTimeHours = totalTimeInMinutes / 60; int totalTimeMinutes = totalTimeInMinutes % 60;
// Вывод результата std::cout << "Студент решал задачи " << totalTimeHours << " часов и " << totalTimeMinutes << " минут.\n";
return 0; } ```
Эта программа сначала запрашивает у пользователя время начала и окончания решения задач. Затем она проверяет ввод на корректность (чтобы часы были в пределах 0-23, а минуты в пределах 0-59). После этого она вычисляет общее время в минутах, затем переводит его обратно в часы и минуты, и выводит результат.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili