Skip to content

Практическая работа №2

Закрепить навыки построения разветвляющихся алгоритмов и их реализации на языке Python с использованием операторов if, elif, else, операций сравнения и логических операторов.

Основные теоретические положения

Section titled “Основные теоретические положения”

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

Общая схема:

Условие?
/ \
да нет
↓ ↓
действие действие
\ /
↓
результат

Пример:

temperature = int(input("Введите температуру: "))
if temperature < 0:
print("Ниже нуля")
else:
print("Ноль или выше")

Для нескольких вариантов используется elif:

score = int(input("Введите балл: "))
if score < 50:
print("Неудовлетворительно")
elif score < 70:
print("Удовлетворительно")
elif score < 90:
print("Хорошо")
else:
print("Отлично")

Логические операторы:

and # И
or # ИЛИ
not # НЕ

Пример:

ram = 16
disk_free = 120
if ram >= 8 and disk_free >= 50:
print("Система соответствует требованиям")
else:
print("Требования не выполнены")

Общие требования к выполнению практической работы

Section titled “Общие требования к выполнению практической работы”

Для каждой основной задачи необходимо:

  1. Определить входные и выходные данные.
  2. Определить условия, влияющие на результат.
  3. Составить словесный алгоритм.
  4. Представить алгоритм в виде блок-схемы.
  5. Реализовать его на Python.
  6. Проверить программу на граничных и обычных значениях.
  7. Обратить внимание на то, чтобы все возможные варианты входных данных были обработаны.

Особенно важно проверять граничные значения: 0, минимальное и максимальное допустимые значения, а также значения непосредственно около границы условия.

Задачи 1–4 являются обязательными. Дополнительный блок рекомендуется выполнять полностью. При нехватке времени преподаватель может выбрать 3–4 задачи из него.


Задание для выполнения

Section titled “Задание для выполнения”

Часть 1. Основные задачи

Section titled “Часть 1. Основные задачи”

Задача 1. Состояние диска

Section titled “Задача 1. Состояние диска”

Пользователь вводит:

  • общий объём диска;
  • объём занятого пространства.

Определить состояние накопителя:

  • если свободно менее 10 % — вывести Критически мало свободного места;
  • если свободно от 10 % до 25 % — вывести Свободного места мало;
  • если свободно более 25 % — вывести Свободного места достаточно.

Также вывести рассчитанный процент свободного пространства.

Проверьте работу программы на граничных значениях.


Задача 2. Оценка объёма оперативной памяти

Section titled “Задача 2. Оценка объёма оперативной памяти”

Пользователь вводит объём оперативной памяти компьютера в ГБ.

Вывести сообщение:

  • менее 4 ГБ — Недостаточный объём;
  • от 4 до 8 ГБ — Минимально допустимый;
  • от 8 до 16 ГБ — Достаточный;
  • 16 ГБ и более — Большой объём памяти.

Задача 3. Проверка загрузки процессора

Section titled “Задача 3. Проверка загрузки процессора”

Пользователь вводит процент загрузки процессора.

Вывести:

  • менее 30 % — Низкая загрузка;
  • от 30 % до 70 % — Нормальная загрузка;
  • от 70 % до 90 % — Высокая загрузка;
  • более 90 % — Критическая загрузка.

Задача 4. Проверка параметров компьютера

Section titled “Задача 4. Проверка параметров компьютера”

Пользователь вводит:

  • объём оперативной памяти;
  • количество ядер процессора;
  • свободное место на диске.

Система считается подходящей для работы, если одновременно выполняются условия:

  • оперативная память не менее 8 ГБ;
  • процессор имеет не менее 4 ядер;
  • свободное место на диске не менее 50 ГБ.

Вывести результат проверки и пояснить, какое условие не выполнено.


Часть 2. Дополнительный алгоритмический блок

Section titled “Часть 2. Дополнительный алгоритмический блок”

Задача 5. Максимальное из трёх чисел

Section titled “Задача 5. Максимальное из трёх чисел”

Пользователь вводит три целых числа.

Определить максимальное значение, не используя встроенную функцию max().

Дополнительное условие: отдельно обработать ситуацию, когда два или три числа равны.


Задача 6. Упорядочивание трёх чисел

Section titled “Задача 6. Упорядочивание трёх чисел”

Пользователь вводит три числа.

Вывести их:

  • по возрастанию;
  • по убыванию.

Использовать только условные конструкции.

Встроенные средства сортировки (sort(), sorted()) использовать нельзя.


Задача 7. Високосный год

Section titled “Задача 7. Високосный год”

Пользователь вводит год.

Определить, является ли он високосным.

Использовать правило:

  • год делится на 400 — високосный;
  • иначе год делится на 100 — невисокосный;
  • иначе год делится на 4 — високосный;
  • остальные годы — невисокосные.

Необходимо составить алгоритм до написания программы.

Проверить работу на:

2024
1900
2000
2025

Задача 8. Существование треугольника

Section titled “Задача 8. Существование треугольника”

Пользователь вводит длины трёх сторон.

Определить, может ли существовать треугольник с такими сторонами.

Треугольник существует, если сумма любых двух сторон больше третьей.

Если треугольник существует, дополнительно определить его тип:

  • равносторонний;
  • равнобедренный;
  • разносторонний.

Задача 9. Стоимость оборудования со скидкой

Section titled “Задача 9. Стоимость оборудования со скидкой”

Пользователь вводит стоимость оборудования.

Правила скидки:

  • до 10 000 рублей включительно — скидка 0 %;
  • от 10 001 до 50 000 рублей — 5 %;
  • от 50 001 до 100 000 рублей — 10 %;
  • более 100 000 рублей — 15 %.

Определить:

  • размер скидки;
  • величину скидки в рублях;
  • итоговую стоимость.

Проверьте программу на значениях около каждой границы.


Задача 10. Проверка состояния компьютера

Section titled “Задача 10. Проверка состояния компьютера”

Пользователь вводит:

  • температуру процессора;
  • загрузку процессора;
  • объём свободной оперативной памяти.

Определить состояние компьютера по следующим правилам:

  • температура выше 90 °C — перегрев;
  • загрузка процессора выше 90 % — высокая загрузка;
  • свободной оперативной памяти менее 1 ГБ — недостаток памяти.

Если одновременно отсутствуют все проблемы, вывести:

Состояние системы нормальное

Если обнаружена одна или несколько проблем, вывести каждую проблему отдельной строкой.

Важно: для этой задачи необходимо использовать логические операторы and и/или or.


Часть 3. Самостоятельная алгоритмическая задача

Section titled “Часть 3. Самостоятельная алгоритмическая задача”

Разработайте собственную задачу на разветвляющийся алгоритм.

Условие должно содержать не менее:

  • двух входных данных;
  • трёх возможных результатов;
  • хотя бы одного сложного условия с and или or.

Необходимо предоставить:

  1. условие задачи;
  2. входные и выходные данные;
  3. словесное описание алгоритма;
  4. блок-схему;
  5. программу на Python;
  6. минимум четыре теста, включая граничные значения.

  1. Что такое разветвляющийся алгоритм?
  2. Для чего используется оператор if?
  3. Чем elif отличается от нескольких отдельных if?
  4. Для чего используется else?
  5. Что такое составное логическое условие?
  6. Чем отличаются операторы and и or?
  7. Для чего используются операции сравнения?
  8. Что такое граничное значение?
  9. Почему тестирование только одного набора данных недостаточно?
  10. Как проверить, что алгоритм учитывает все возможные варианты?