Skip to content

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

Циклические алгоритмы в Python

Section titled “Циклические алгоритмы в Python”

Цель работы: научиться разрабатывать и реализовывать циклические алгоритмы на языке Python с использованием while, for, range(), счётчиков и накопителей.

Практическая работа рассчитана на 2 академических часа (90 минут).

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

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

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

В Python используются два основных вида циклов:

  • while — выполняется, пока условие истинно;
  • for — используется для перебора последовательности значений.
count = 1
while count <= 5:
print(count)
count += 1

Цикл while удобен, когда количество повторений заранее неизвестно.

value = int(input("Введите значение (-1 для завершения): "))
while value != -1:
print("Получено:", value)
value = int(input("Введите значение (-1 для завершения): "))
for number in range(1, 6):
print(number)

Функция range(start, stop, step) формирует последовательность целых чисел.

for number in range(10, 0, -2):
print(number)

Счётчик используется для подсчёта количества событий.

high_load_count = 0
for _ in range(5):
load = int(input("Загрузка CPU: "))
if load > 80:
high_load_count += 1

Накопитель используется для вычисления суммы значений.

total = 0
for _ in range(5):
value = int(input("Введите число: "))
total += value

Порядок выполнения работы

Section titled “Порядок выполнения работы”

Для каждого задания:

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

Задание 1. Диапазон адресов узлов

Section titled “Задание 1. Диапазон адресов узлов”

Пользователь вводит номер первого и последнего узла локальной сети 192.168.1.0/24.

Программа должна вывести адреса всех узлов от первого до последнего включительно и количество сформированных адресов.

Пример

Первый узел: 10
Последний узел: 15
192.168.1.10
192.168.1.11
192.168.1.12
192.168.1.13
192.168.1.14
192.168.1.15
Количество адресов: 6

Номера узлов должны находиться в диапазоне от 1 до 254.

Если начальное значение больше конечного, программа должна вывести сообщение об ошибке.


Задание 2. Анализ загрузки процессора

Section titled “Задание 2. Анализ загрузки процессора”

Администратор последовательно вводит значения загрузки процессора в процентах.

Ввод завершается значением -1.

Программа должна определить:

  • количество введённых измерений;
  • среднее значение загрузки;
  • максимальную загрузку;
  • количество измерений выше 80 %.

Пример

Загрузка CPU (-1 — завершить): 45
Загрузка CPU (-1 — завершить): 76
Загрузка CPU (-1 — завершить): 91
Загрузка CPU (-1 — завершить): 88
Загрузка CPU (-1 — завершить): -1
Количество измерений: 4
Средняя загрузка: 75.0 %
Максимальная загрузка: 91 %
Измерений выше 80 %: 2

Значения загрузки должны находиться в диапазоне от 0 до 100.

Программа должна корректно обработать ситуацию, когда пользователь сразу вводит -1.


Задание 3. Обработка цифр числа

Section titled “Задание 3. Обработка цифр числа”

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

Не преобразуя число в строку, определите:

  • количество цифр;
  • сумму цифр;
  • максимальную цифру.

Для выделения цифр используйте операции % и //.

Пример

Введите число: 58342
Количество цифр: 5
Сумма цифр: 22
Максимальная цифра: 8

Обязательно проверьте программу для:

  • однозначного числа;
  • числа, содержащего ноль;
  • числа с одинаковыми цифрами.

Задание 4. Анализ сетевого трафика

Section titled “Задание 4. Анализ сетевого трафика”

Пользователь вводит количество часов наблюдения N, затем объём трафика за каждый час в мегабайтах и пороговое значение.

Программа должна определить:

  • общий объём трафика;
  • средний объём за час;
  • максимальное значение;
  • количество часов, когда трафик превышал порог.

Для одного из выполненных заданий заполните таблицу:

№Входные данныеОжидаемый результатФактический результат
1Обычный случай……
2Граничный случай……
3Особый случай……
  1. Чем while отличается от for?
  2. Для чего используется range()?
  3. Что называется итерацией цикла?
  4. Для чего применяются счётчики?
  5. Для чего применяются накопители?
  6. Что произойдёт, если условие while всегда остаётся истинным?
  7. Как вычислить среднее значение, не сохраняя все введённые числа?
  8. В каком случае лучше использовать while, а в каком — for?