1 - часы

Лабораторная работа 1 для студентов курса “Основы программирования” 1 курса кафедры ИУ5 МГТУ им Н.Э. Баумана.

Содержание

Цель работы

Познакомиться с базовыми основами написания консольных приложений на C++. Освоить основы работы механизмов ввода и вывода, ветвления.

Начало работы

Зайдите в свою локальную директорию с репозиторием для выполнения лабораторных работ. Заберите ветку с соответствующей лабораторной работой из общего репозитория (в лабораторной работе 0 был отмечен меткой upstream):

git pull upstream

или

git pull upstream lab_1

Переключитесь на ветку с текущей лабораторной работой:

git checkout lab_1

Свяжите ветку локального репозитория с вашим удаленным репозиторием:

git push --set-upstream origin lab_1

Задание

Вывести на экран показания часов.

Исходные данные - часы и минуты в формате целых чисел. Результат должен быть представлен в смешанной текстово-числовой форме с учетом падежных окончаний, например:

Использовать следующие границы частей суток:

Предусмотреть механизм обработки ошибок и вывода соответствующего сообщения в случае ввода недопустимых показаний часов. Например:

Рекомендации при разработке приложения

Создание программы - процесс сложный. Поэтому практически с любого этапа возможен возврат на предыдущие этапы для исправления ошибок или принятия других проектных решений. Чаще всего такого рода возвраты являются следствием ошибок, допущенных при разработке алгоритма.

Для уменьшения ошибок в алгоритмах программ, при их разработке следует использовать метод пошаговой детализации.

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

Шаг 1

Определяем общую структуру программы.

Разбиение сложного алгоритма на подзадачи следует выполнять таким образом, чтобы каждая подзадача имела физический смысл и правильность ее выполнения можно было бы проверить, не выполняя последующие действия.

Шаг 2

Детализируем операцию ввода и контроля исходных данных. После завершения разработки детального алгоритма первой подзадачи алгоритм следует закодировать, заменяя, если необходимо, неразработанные подзадачи «заглушками», выполнить и отладить. Например, для ввода и контроля исходных данных остальные действия не требуются и для отладки этого блока функции-заглушки не требуются. Функция-заглушка не выполняет никаких действий, а только печатает свое имя. Это позволит обнаружить и устранить возможные ошибки на ранней стадии их возникновения и существенно сократить общее время разработки программы.

Не следует сразу кодировать всю программу, так как в этом случае значительно сложнее обнаруживать и исправлять ошибки.

Шаг 3

Детализируем подзадачу определения времени суток. Ее удобнее выполнить до обработки часов, так как при выводе результатов падежные окончания могут измениться. Например, вместо 15 часов нужно напечатать 3 часа дня.