Отчёт (Готовые ЛР и ДЗ (ИУ5))
Описание файла
Файл "Отчёт" внутри архива находится в следующих папках: Готовые ЛР и ДЗ (ИУ5), отчёты, работа 2. Документ из архива "Готовые ЛР и ДЗ (ИУ5)", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "информатика" в общих файлах.
Онлайн просмотр документа "Отчёт"
Текст из документа "Отчёт"
Московский государственный технический
университет им. Н.Э. Баумана.
Факультет «Информатика и управление»
Кафедра ИУ5. Курс «Основы информатики»
Отчет по лабораторной работе №2
«Программирование разветвляющихся алгоритмов»
Выполнил: | Проверил: | |
студент группы ИУ5-14 | преподаватель каф. ИУ5 | |
Шевченко Роман | Пашнев И.С. | |
Подпись и дата: | Подпись и дата: |
г. Москва, 2008 г.
Постановка задачи
Вывести на экран показания часов с анализом исходных данных.
Исходные данные – часы и минуты в формате целых чисел.
Результат должен быть представлен в смешанной текстово-числовой форме:
2 48 – 2 часа 48 минут ночи,
5 00 – 5 часов утра ровно,
12 00 – полдень,
12 23 – 12 часов 23 минуты дня,
13 12 – 1 час 13 минут дня,
21 33 – 9 часов 33 минуты вечера,
00 00 – полночь,
03 01 – 3 часа 1 минута ночи.
Использовать следующие границы частей суток:
5 час. <= утро < 12 час.,
12 < день < 18 час.,
18 <= вечер < 24 час.,
0 час. < ночь < 5 час.
В случае ввода невозможных показаний часов выдать соответствующее сообщение, например:
24 03 – введены недопустимые данные.
Разработка алгоритма
При разработки программы надо учесть:
-
Вывод слов “полночь” или “полдень” и переход после вывода этих слов к концу программы.
-
Вариант, в котором пользователь может ввести ch= 24 часа и mi= x при 0<x<59.
-
Перевод времени в 12 часовую систему (отнять 12 если введенное время дольше 12 часов).
-
Вывод слов “час”, “часа”, “часов” в зависимости от введённых данных.
-
Вывод слов “дня”, “утра”, “вечера”, “ночи” в зависимости от времени суток.
-
Вывод слов “минута”, “минуты”, “минут” в зависимости от введённых данных. Для этого находим остаток от деления введенного числа на 10 и таким образом по последней цифре определяем, какое слово нужно писать. Так же перед этим надо предусмотреть то, что при 11, 12, 13, 14 минутах надо писать слово “минут”.
-
В конце надо предусмотреть 2 варианта вывода результата: обычный вариант и со словом “ровно” в случае, когда введено 00 минут.
Описание входных, выходных и вспомогательных данных:
-
int exitpr – переменная отвечает за завершение програмы или нет;
-
int ch – переменная хранит введённые часы;
-
int mi – переменная хранит введённые минуты;
-
char *chs – переменная хранит слова: час, часа, часов;
-
char *mis – переменная хранит слова: минута, минуты, минут;
-
char *s – переменная хранит время суток;
Текст программы.
#include <iostream>
using namespace std;
int main()
{locale::global(locale("rus"));
int ex; //завершение програмы или нет
int ch, mi; //ch - часы, mi – минуты
char *chs, *mis, *s; // хранение слов: chs - часы, mis – минуты, s - время суток
do{
cout << "Введите часы и минуты\n";
cin >> ch >> mi;
if(((ch == 0) && (mi == 0)) || ((ch == 24) && (mi == 0))) cout <<" полночь";
else if((ch == 12) && (mi == 0)) cout <<" полдень";
else{
for (;(ch > 23) || (ch < 0);){
cout <<"Введи часы правильно ";
cin >> ch;
}
for(;(mi > 59) || (mi < 0);){
cout <<"Введи минуты правильно ";
cin >> mi;
}
if(((ch >= 0) && (ch <= 4)) || ((ch >= 23) && (ch <= 24))) s= " ночи";
else if((ch >= 5) && (ch <= 12)) s= " утра";
else if((ch >= 11) && (ch <= 16)) s= " дня";
else s= " вечера";
if(ch > 12) ch= ch-12;
if((ch == 1) || (ch == 21)) chs= " час";
else if(((ch>=2) && (ch<=4)) || ((ch>=22) && (ch<=24))) chs= "часа";
else chs= " часов";
if((mi >= 5) && (mi <= 20)) mis= " минут";
else {
switch(mi%10){
case 1: mis= " минута"; break;
case 2: mis= " минуты"; break;
case 3: mis= " минуты"; break;
case 4: mis= " минуты"; break;
default: mis= " минут";
}
}
if(!mi) cout << ch << chs << s << " ровно" << "\n";
else cout << ch << chs << " " <<mi <<mis << s << "\n";
}
cout << "Введите 0 чтобы закончить выполнение программы\n";
cin >> ex;
}while(ex);
return 0; }
Анализ результатов
Введённые данные | Результат |
00 00 | полночь |
00 01 | 0 часов 1 минута ночи |
02 00 | 2 часа ночи ровно |
12 00 | полдень |
13 43 | 13 часов 43 минуты дня |
16 25 | 16 часов 25 минут дня |
23 00 | 23 часа ночи ровно |
25 36 | Сообщение о том кто часы введены неправильно |
13 67 | Сообщение о том кто минуты введены неправильно |
-2 84 | Сообщение о том кто часы и минуты введены неправильно |
24 00 | полночь |
24 11 | введены недопустимые данные |