Загрузка данных
ЛАБОРАТОРНАЯ РАБОТА № 4
Практикум по применению условных операторов для решения задач
Дисциплина: Основы алгоритмизации и программирования
Специальность: 09.02.07 «Информационные системы и программирование» Студент: ________________________ Группа: ______
напиши код готовый для вставки
ЦЕЛЬ РАБОТЫ
Закрепление практических навыков применения условных операторов (if-elif-else, match-case, тернарный оператор) для решения задач повышенной сложности, требующих комбинирования различных подходов и учета граничных условий.
ЗАДАЧИ РАБОТЫ
1. Научиться самостоятельно выбирать оптимальный тип условного оператора в зависимости от решаемой задачи.
2. Развить навыки работы со сложными логическими выражениями.
3. Освоить обработку множественных условий и вложенных ветвлений.
4. Научиться учитывать особые и граничные случаи при разработке алгоритмов.
5. Закрепить навыки тестирования программ на различных наборах входных данных.
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Примечание: Теоретический материал по условным операторам (if-elif-else, match-case, тернарный оператор), логическим операторам и обработке исключений был подробно рассмотрен в Лабораторной работе №3. В данной работе предполагается, что студент владеет этой теорией и применяет её на практике.
Напоминание: при решении задач данного практикума необходимо:
Использовать конструкцию try-except для защиты от некорректного ввода.
Тщательно тестировать программы на граничных значениях.
Самостоятельно определять, какой тип условного оператора (if, match-case или тернарный) лучше всего подходит для решения конкретной подзадачи.
ХОД РАБОТЫ
Внимание: Вам необходимо самостоятельно написать код для решения каждой из представленных ниже задач, вставить его листинг в отчет и приложить скриншоты результатов выполнения для различных тестовых данных (включая граничные случаи).
Задание 1. Возрастная категория
Условие: Напишите программу, которая запрашивает у пользователя его возраст и определяет, к какой категории он относится:
Ребенок: 0–2 года (включительно)
Подросток: 12–18 лет (включительно)
Взрослый: 19–59 лет (включительно)
Пенсионер: 60 лет и старше
Предусмотрите проверку на корректность введенного возраста (неотрицательное число, не превышающее разумный предел, например, 150 лет). Если возраст не попадает ни в одну из указанных категорий (например, 3–11 лет), выведите сообщение "Возраст не соответствует ни одной категории".
Программа:
# Вставьте сюда код вашей программы
Результат выполнения:
(Вставьте скриншот консоли с результатами для всех категорий и для некорректного ввода)
Задание 2. Спецсимвол клавиши
Условие: Напишите программу, которая запрашивает у пользователя цифру от 0 до 9 и выводит спецсимвол, который расположен на этой клавише в английской раскладке клавиатуры (верхний регистр):
1 → !
2 → @
3 → #
4 → $
5 → %
6 → ^
7 → &
8 → *
9 → (
0 → )
Если введено значение вне диапазона 0–9, выведите сообщение об ошибке. Для решения рекомендуется использовать оператор match-case.
Программа:
# Вставьте сюда код вашей программы
Результат выполнения:
(Вставьте скриншот консоли с результатами для разных цифр и для некорректного ввода)
Задание 3. Одинаковые цифры в трехзначном числе
Условие: Напишите программу, которая запрашивает у пользователя трехзначное число и проверяет, есть ли в нем одинаковые цифры. Программа должна вывести одно из сообщений:
"Все цифры разные"
"Есть две одинаковые цифры"
"Все три цифры одинаковые"
Предусмотрите проверку, что введенное число действительно является трехзначным (от 100 до 999 включительно).
Программа:
# Вставьте сюда код вашей программы
Результат выполнения:
(Вставьте скриншот консоли с результатами для чисел: 123, 112, 111, а также для некорректного ввода)
Задание 4. Високосный год
Условие: Напишите программу, которая запрашивает у пользователя год (целое положительное число) и определяет, является ли он високосным.
Правила определения високосного года:
Год является високосным, если он кратен 400.
Год также является високосным, если он кратен 4, но при этом не кратен 100.
Во всех остальных случаях год не високосный.
Программа:
# Вставьте сюда код вашей программы
Результат выполнения:
(Вставьте скриншот консоли с результатами для годов: 2000, 2024, 2100, 2023)
Задание 5. Палиндром (пятизначное число)
Условие: Напишите программу, которая запрашивает у пользователя пятизначное число и определяет, является ли оно палиндромом (читается одинаково слева направо и справа налево, например, 12321, 45654). Программа должна вывести "Да, это палиндром" или "Нет, это не палиндром". Предусмотрите проверку, что введенное число действительно является пятизначным (от 10000 до 99999 включительно).
Программа:
# Вставьте сюда код вашей программы
Результат выполнения:
(Вставьте скриншот консоли с результатами для чисел: 12321, 12345, и некорректного ввода)
Задание 6. Конвертер валют
Условие: Напишите программу-конвертер валют. Пользователь вводит количество долларов США (USD), а затем выбирает целеую валюту, введя ее код: EUR (евро), UAN (юань) или AZN (азербайджанский манат). Программа должна вывести конвертированную сумму. Курсы валют задайте самостоятельно (например, 1 USD = 0.92 EUR, 1 USD = 7.25 UAN, 1 USD = 1.70 AZN). Используйте match-case для выбора валюты.
Программа:
# Вставьте сюда код вашей программы
Результат выполнения:
(Вставьте скриншот консоли с результатами для всех трех валют и для некорректного кода валюты)
Задание 7. Скидка на покупку
Условие: Напишите программу, которая запрашивает у пользователя сумму покупки (вещественное число) и выводит итоговую сумму к оплате с учетом скидки:
от 200 до 300 рублей (включительно) – скидка 3%
от 300 до 500 рублей (включительно) – скидка 5%
от 500 рублей и выше – скидка 7%
Если сумма меньше 200 рублей – скидка не предоставляется.
Программа должна корректно обрабатывать границы диапазонов (например, для суммы ровно 300 рублей применяется скидка 5%, так как это попадает во второй диапазон).
Программа:
# Вставьте сюда код вашей программы
Результат выполнения:
(Вставьте скриншот консоли с результатами для сумм: 150, 200, 250, 300, 400, 500, 600)
Задание 8. Окружность в квадрате
Условие: Напишите программу, которая запрашивает у пользователя длину окружности (L) и периметр квадрата (P). Определите, может ли такая окружность полностью поместиться в указанный квадрат. Окружность помещается в квадрат, если ее диаметр меньше или равен стороне квадрата.
Диаметр окружности вычисляется по формуле: D = L / π (число π возьмите равным 3.14).
Сторона квадрата вычисляется по формуле: a = P / 4.
Программа должна вывести "Окружность помещается в квадрат" или "Окружность НЕ помещается в квадрат".
Программа:
# Вставьте сюда код вашей программы
Результат выполнения:
(Вставьте скриншот консоли с примерами, когда окружность помещается и когда нет)
Задание 9. Викторина
Условие: Напишите программу-викторину. Задайте пользователю 3 вопроса (на любую тему, например, по географии, истории или программированию). У каждого вопроса должно быть 3 варианта ответа (A, B, C). За каждый правильный ответ начисляется 2 балла. В конце программы выведите количество набранных баллов (от 0 до 6).
Требования:
Используйте input() для получения ответа пользователя.
При сравнении ответа пользователя с правильным учитывайте регистр (приведите ответ к верхнему или нижнему регистру).
Можно использовать как if-elif, так и match-case для проверки каждого вопроса.
Программа:
# Вставьте сюда код вашей программы
Результат выполнения:
(Вставьте скриншот консоли с примером прохождения викторины)
Задание 10. Следующая дата
Условие: Напишите программу, которая запрашивает у пользователя дату в формате: день, месяц, год (целые числа). Программа должна вывести дату следующего дня. Учтите все возможные переходы:
Переход на следующий месяц (например, 31.01 -> 01.02).
Переход на следующий год (например, 31.12 -> 01.01).
Високосный год в феврале (28 или 29 дней).
Количество дней в месяцах (апрель, июнь, сентябрь, ноябрь — по 30 дней, остальные по 31, кроме февраля).
Предусмотрите проверку корректности введенной даты.
Программа:
# Вставьте сюда код вашей программы
Результат выполнения:
(Вставьте скриншот консоли с результатами для дат: 31.01.2024, 28.02.2023, 28.02.2024, 31.12.2024, 30.04.2024)
КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Для каких из выполненных заданий вы использовали оператор match-case и почему? В чем преимущество его применения в этих задачах?
2. В каком задании вам потребовалось использовать вложенные условные операторы (один if внутри другого)? Опишите логику этого ветвления.
3. Какие граничные случаи вы учитывали при решении задачи №10 (Следующая дата)? Приведите примеры.
4. Почему в задаче №3 (Одинаковые цифры) может быть неудобно использовать match-case? Какую конструкцию вы выбрали и почему?
5. Объясните, как вы организовали проверку корректности ввода в задаче №5 (Палиндром). Какие именно ошибки может допустить пользователь?
6. В чем отличие проверки условия "от 200 до 300" (включительно) в задаче №7 от проверки "от 12 до 18" в задаче №1? Как это влияет на запись условия?
7. Какие логические операторы (and, or, not) вы использовали при решении задачи №4 (Високосный год)? Напишите получившееся сложное условие.
8. Можно ли было решить задачу №8 (Окружность в квадрате) с помощью тернарного оператора? Если да, напишите, как бы выглядела эта конструкция.
ТРЕБОВАНИЯ К ОФОРМЛЕНИЮ ОТЧЕТА
1. Отчет выполняется в текстовом редакторе (MS Word или аналог).
2. Титульный лист оформляется в соответствии с шаблоном, указанным в начале работы.
3. В отчете обязательно должны присутствовать: цель работы, задачи, ход работы (с решениями всех 10 задач), ответы на контрольные вопросы и вывод.
4. Для каждого задания (с 1 по 10) необходимо представить:
o Условие задачи.
o Листинг (текст) программы, оформленный моноширинным шрифтом.
o Скриншоты консоли с результатами выполнения программы для различных тестовых данных (минимум 3-4 разных набора, включая граничные случаи).
5. Скриншоты должны быть четкими, с видимым текстом программы и результатом ее работы.
ВЫВОДЫ
(Студент самостоятельно формулирует вывод по работе. В выводе необходимо отразить: какие навыки были закреплены, с какими сложностями столкнулись при решении задач, какие из заданий показались наиболее интересными/сложными, как навыки, полученные в ходе работы, могут пригодиться в дальнейшем.)
Отработано часов: 4
Подпись студента: _____________ Дата: ______
СПИСОК ЛИТЕРАТУРЫ
1. Лутц М. Изучаем Python. Том 1. — 5-е изд. — СПб.: Диалектика, 2019. — 832 с.
2. Доусон М. Программируем на Python. — СПб.: Питер, 2021. — 416 с.
3. Документация Python: https://docs.python.org/3/ (Дата обращения: 25.03.2026).