Нейросеть

ГДЗ: Параграф § 5.4 / Информатика 8 класс

Страницы: 234, 235, 236, 237, 238, 239, 240, 241, 242
Глава: Глава 5. Начала программирования на языке Python
Параграф: § 5.4 - Программирование разветвляющихся алгоритмов
Учебник: Информатика 8 класс -
Автор: Босова Людмила Леонидовна
Год: 2025
Издание: 7-е издание, стереотипное

Вопросы для самопроверки:

1. Каким образом в Python записываются полные и неполные формы ветвления?

Ответ:

Полная форма ветвления в Python записывается с использованием операторов if и else: if <условие>: <операторы 1> else: <операторы 2>. Неполная форма включает только оператор if: if <условие>: <операторы>.

2. Укажите, являются ли допустимыми фрагменты кода, использующие условный оператор, в которых встречаются следующие последовательности символов. а) if x lt; y: x = 0 else input(y) б) if x gt;= y: x = 0; y = 0 else: print(z) в) if x lt; y lt; z: a = a + 1

Ответ:

  • а) if x < y: x = 0 else input(y)Недопустимый фрагмент. После двоеточия : должен следовать блок операторов с обязательным отступом. Использование else сразу после if без отступов является синтаксической ошибкой.
  • б) if x >= y: x = 0; y = 0 else: print(z)Недопустимый фрагмент. В Python операторы в одной строке после двоеточия : должны быть отделены точкой с запятой, и все они должны быть с отступом в блоке if (или else). В данном случае, даже если бы отступы были верны, использование ; в Python не рекомендуется и может быть неверно интерпретировано, особенно при наличии else без отступа. Предполагая, что else начинается с новой строки без отступа, это ошибка.
  • в) if x < y < z: a = a + 1Допустимый фрагмент. Python поддерживает двойные неравенства.

3. Какой будет результат выполнения программы, если были введены пары чисел: (1, 2); (11, 2); (1, 12); (11, 12); (-11, -12); (-11, 12); (–12, 11); (10, 10); (10, 5)? Какое количество запусков программы дало вывод «Да»?

Ответ:

Данная программа проверяет условие if (s >= 10) or (t > 10):. Вывод «Да» происходит, если s ≥ 10 ИЛИ t > 10. Вывод «Нет» — в противном случае.

Результаты выполнения:

  • (1, 2): 1 ≥ 10 (Ложь), 2 > 10 (Ложь). Ложь ИЛИ Ложь = Ложь. Вывод: Нет.
  • (11, 2): 11 ≥ 10 (Истина), 2 > 10 (Ложь). Истина ИЛИ Ложь = Истина. Вывод: Да.
  • (1, 12): 1 ≥ 10 (Ложь), 12 > 10 (Истина). Ложь ИЛИ Истина = Истина. Вывод: Да.
  • (11, 12): 11 ≥ 10 (Истина), 12 > 10 (Истина). Истина ИЛИ Истина = Истина. Вывод: Да.
  • (-11, -12): -11 ≥ 10 (Ложь), -12 > 10 (Ложь). Ложь ИЛИ Ложь = Ложь. Вывод: Нет.
  • (-11, 12): -11 ≥ 10 (Ложь), 12 > 10 (Истина). Ложь ИЛИ Истина = Истина. Вывод: Да.
  • (-12, 11): -12 ≥ 10 (Ложь), 11 > 10 (Истина). Ложь ИЛИ Истина = Истина. Вывод: Да.
  • (10, 10): 10 ≥ 10 (Истина), 10 > 10 (Ложь). Истина ИЛИ Ложь = Истина. Вывод: Да.
  • (10, 5): 10 ≥ 10 (Истина), 5 > 10 (Ложь). Истина ИЛИ Ложь = Истина. Вывод: Да.

Всего было 9 запусков. Вывод «Да» был получен в 7 запусках.

4. Какое значение примет переменная a, если в результате выполнения условного оператора: if a lt; 5: c = 1 elif a gt; 5: c = 2 else: c = 3 переменной c было присвоено значение 3?

Ответ:

Значение c = 3 присваивается в блоке else. Блок else выполняется только в том случае, если все предыдущие условия (в if и elif) были ложными. Условия:

  • a < 5: Ложно. Это означает, что \( a \ge 5 \).
  • a > 5: Ложно. Это означает, что \( a \le 5 \).

Единственное значение a, которое удовлетворяет обоим условиям \( a \ge 5 \) и \( a \le 5 \), это \( a = 5 \). Следовательно, переменная a должна была иметь значение 5.

Практические задания:

Напишите фрагмент программы, используя условный оператор, чтобы заменить следующую последовательность инструкций: if a gt; b: c = 1 if a gt; b: d = 2 if a lt;= b: c = 3 if a lt;= b: d = 4

Данная последовательность инструкций выполняет одни и те же действия в зависимости от одного и того же условия a > b или его отрицания a ≤ b. Оптимизированный фрагмент с использованием полной формы условного оператора:

if a > b:\n    c = 1\n    d = 2\nelse:  # a <= b\n    c = 3\n    d = 4
Разработайте, напишите и протестируйте программу, которая находит ближайшую к началу координат точку из двух заданных своими координатами. Для проверки используйте следующие входные данные: Координаты 1-й точки gt;gt; 1 2, Координаты 2-й точки gt;gt; 3 4: 1-я точка ближе; Координаты 1-й точки gt;gt; 1 2, Координаты 2-й точки gt;gt; 1 2: Точки равноудалены; Координаты 1-й точки gt;gt; 2 4, Координаты 2-й точки gt;gt; 2 2: 2-я точка ближе

Расстояние \( D \) от точки с координатами \( (x, y) \) до начала координат \( (0, 0) \) вычисляется по формуле: \( D = \sqrt{x^2 + y^2} \). Поскольку сравнение расстояний \( D_1 \) и \( D_2 \) эквивалентно сравнению квадратов расстояний \( D_1^2 \) и \( D_2^2 \), можно сравнить только \( x_1^2 + y_1^2 \) и \( x_2^2 + y_2^2 \) без вычисления корня, что упрощает код и исключает использование функции sqrt.

# Ввод координат первой точки\nx1 = float(input("Введите координату x 1-й точки: "))\ny1 = float(input("Введите координату y 1-й точки: "))\n# Ввод координат второй точки\nx2 = float(input("Введите координату x 2-й точки: "))\ny2 = float(input("Введите координату y 2-й точки: "))\n\n# Вычисление квадратов расстояний до начала координат\nd1_sq = x12 + y12\nd2_sq = x22 + y22\n\nif d1_sq < d2_sq:\n    print("1-я точка ближе")\nelif d2_sq < d1_sq:\n    print("2-я точка ближе")\nelse:\n    print("Точки равноудалены")
Разработайте, напишите и протестируйте программу, выполняющую обмен значениями числовых переменных \( x \) и \( y \), только если \( x \) больше \( y \). Для проверки используйте следующие входные данные: \( x gt;gt; 5 \), \( y gt;gt; 6 \): \( x=5 \), \( y=6 \); \( x gt;gt; 6 \), \( y gt;gt; 5 \): \( x=5 \), \( y=6 \)

Для обмена значениями двух переменных в Python используется конструкция с кортежами (пакетное присваивание). Обмен происходит только при выполнении условия \( x > y \).

x = float(input("Введите значение x: "))\ny = float(input("Введите значение y: "))\n\nif x > y:\n    x, y = y, x  # Обмен значений\n\nprint(f"x={x}, y={y}")
Напишите программу для определения дня недели по его порядковому номеру (задача № 11 к § 3.5). Программа должна принимать целое число от 1 до 7 и выводить соответствующее название дня недели (1 – понедельник, 7 – воскресенье). Используйте условные конструкции.

Для решения этой задачи целесообразно использовать каскадное ветвление (if-elif-else).

try:\n    day_num = int(input("Введите порядковый номер дня недели (от 1 до 7): "))\n\n    if day_num == 1:\n        print("Понедельник")\n    elif day_num == 2:\n        print("Вторник")\n    elif day_num == 3:\n        print("Среда")\n    elif day_num == 4:\n        print("Четверг")\n    elif day_num == 5:\n        print("Пятница")\n    elif day_num == 6:\n        print("Суббота")\n    elif day_num == 7:\n        print("Воскресенье")\n    else:\n        print("Ошибка: Введено недопустимое число.")\nexcept ValueError:\n    print("Ошибка: Введено не целое число.")
Для посещения аттракциона «Американские горки» установлены ограничения по росту: не ниже 140 см и не выше 195 см. Разработайте и напишите программу, запрашивающую рост посетителя и выводящую, может ли он посетить аттракцион.

Программа должна проверить выполнение двух условий одновременно: рост h должен быть больше или равен 140 И меньше или равен 195. В Python можно использовать двойное неравенство.

try:\n    height = float(input("Введите ваш рост в сантиметрах: "))\n\n    if 140 <= height <= 195:\n        print("Вы можете посетить аттракцион 'Американские горки'.")\n    else:\n        print("Вы не соответствуете ограничениям по росту для аттракциона.")\nexcept ValueError:\n    print("Ошибка: Введено некорректное значение роста.")
Напишите программу, которая принимает на вход целое число от 1 до 3 и выводит информацию о соответствующей геометрической фигуре, а также строит её изображение на экране: 1 — треугольник, 2 — квадрат, 3 — окружность.

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

num = int(input("Введите число (1 - треугольник, 2 - квадрат, 3 - окружность): "))\n\nif num == 1:\n    print("Выбран треугольник.")\n    print("   /\ ")\n    print("  /  \ ")\n    print(" /____\ ")\nelif num == 2:\n    print("Выбран квадрат.")\n    print(" ---- ")\n    print("|    |")\n    print(" ---- ")\nelif num == 3:\n    print("Выбрана окружность.")\n    print("   ")\n    print(" * *")\n    print("   ")\nelse:\n    print("Введено недопустимое число.")
Разработайте, напишите и протестируйте программу, которая для натурального трёхзначного числа \( n \) определяет: а) является ли оно «перевёртышем» (читается одинаково слева направо и справа налево); б) есть ли среди его цифр одинаковые. Для проверки используйте следующие входные данные: а) 122 gt;gt; Нет, 121 gt;gt; Перевёртыш, 222 gt;gt; Перевёртыш; б) 123 gt;gt; Нет, 121 gt;gt; Да, 222 gt;gt; Да

Решение задачи а) «Перевёртыш»

Трёхзначное число \( n \) можно разложить на цифры: \( c_1 \) (сотни), \( c_2 \) (десятки), \( c_3 \) (единицы).

  • \( c_1 = n // 100 \)
  • \( c_3 = n \% 10 \)

Число является «перевёртышем», если \( c_1 = c_3 \).

n = int(input("Введите трёхзначное число: "))\nc1 = n // 100\nc3 = n % 10\n\nprint("а) Проверка на 'перевёртыш'")\nif c1 == c3:\n    print("Перевёртыш")\nelse:\n    print("Нет")

Решение задачи б) «Одинаковые цифры»

Для определения наличия одинаковых цифр нужно сравнить все пары цифр: \( c_1 \) и \( c_2 \), \( c_1 \) и \( c_3 \), \( c_2 \) и \( c_3 \).

  • \( c_1 = n // 100 \)
  • \( c_2 = (n // 10) \% 10 \)
  • \( c_3 = n \% 10 \)

Одинаковые цифры есть, если \( c_1 = c_2 \) ИЛИ \( c_1 = c_3 \) ИЛИ \( c_2 = c_3 \).

n = int(input("Введите трёхзначное число: "))\nc1 = n // 100\nc2 = (n // 10) % 10\nc3 = n % 10\n\nprint("б) Проверка на наличие одинаковых цифр")\nif c1 == c2 or c1 == c3 or c2 == c3:\n    print("Да")\nelse:\n    print("Нет")
Разработайте, напишите и протестируйте программу, которая по трём заданным натуральным числам (длины сторон) определяет, существует ли треугольник с такими сторонами, и если существует, то какой он: равносторонний, равнобедренный или разносторонний. Для проверки используйте следующие входные данные: \( a gt;gt; 1 \), \( b gt;gt; 2 \), \( c gt;gt; 1 \): Не существует; \( a gt;gt; 2 \), \( b gt;gt; 2 \), \( c gt;gt; 2 \): Равносторонний; \( a gt;gt; 20 \), \( b gt;gt; 30 \), \( c gt;gt; 20 \): Равнобедренный; \( a gt;gt; 3 \), \( b gt;gt; 4 \), \( c gt;gt; 5 \): Разносторонний

Условие существования треугольника

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

  • \( a + b > c \)
  • \( a + c > b \)
  • \( b + c > a \)

Все три условия должны быть истинны одновременно.

Определение типа треугольника (при условии его существования)

  • Равносторонний: \( a = b \) И \( b = c \)
  • Равнобедренный: \( a = b \) ИЛИ \( a = c \) ИЛИ \( b = c \) (исключая равносторонний, хотя по определению равносторонний является частным случаем равнобедренного, но в задачах обычно требуется выделить его отдельно)
  • Разносторонний: \( a \ne b \) И \( a \ne c \) И \( b \ne c \)
a = float(input("Введите длину стороны a: "))\nb = float(input("Введите длину стороны b: "))\nc = float(input("Введите длину стороны c: "))\n\n# Проверка условия существования треугольника\nif a + b > c and a + c > b and b + c > a:\n    print("Треугольник существует.")\n    # Определение типа треугольника\n    if a == b and b == c:\n        print("Равносторонний")\n    elif a == b or a == c or b == c:\n        print("Равнобедренный")\n    else:\n        print("Разносторонний")\nelse:\n    print("Треугольник не существует.")
Имеются данные о возрасте трёх призёров спартакиады (в полных годах). Разработайте, напишите и отладьте программу, которая выводит возраст самого младшего призёра.

Для определения минимального из трёх чисел можно использовать вложенные условные операторы или логические операторы and. Приведённое в учебнике решение (Пример 3) находит наибольшее, которое можно адаптировать.

Вариант 1: Использование функции min() (самый простой)

age1 = int(input("Возраст 1-го призёра: "))\nage2 = int(input("Возраст 2-го призёра: "))\nage3 = int(input("Возраст 3-го призёра: "))\n\nmin_age = min(age1, age2, age3)\nprint(f"Возраст самого младшего призёра: {min_age}")

Вариант 2: Использование условного оператора

a = int(input("Возраст 1-го призёра: "))\nb = int(input("Возраст 2-го призёра: "))\nc = int(input("Возраст 3-го призёра: "))\n\nmin_val = a\nif b < min_val:\n    min_val = b\nif c < min_val:\n    min_val = c\n\nprint(f"Возраст самого младшего призёра: {min_val}")
Напишите программу, в которой пользователь должен отгадать некоторое целое число \( a \) (которое генерируется случайным образом, меньше 100). Программа должна проверить ответ пользователя и дать комментарий (больше, меньше, угадал).

Для генерации случайного числа используется модуль random.

import random\n\n# Генерируем случайное целое число от 1 до 99\nsecret_number = random.randint(1, 99)\n\ntry:\n    guess = int(input("Отгадайте целое число (от 1 до 99): "))\n\n    if guess == secret_number:\n        print("Поздравляем! Вы угадали число!")\n    elif guess < secret_number:\n        print("Неправильно. Ваше число меньше загаданного.")\n    else: # guess > secret_number\n        print("Неправильно. Ваше число больше загаданного.")\nexcept ValueError:\n    print("Ошибка: Введено некорректное значение.")
Напишите программу, которая сравнивает три слова, введённые пользователем, и делает вывод о том, как происходит их сравнение (лексикографически). Например, Kawai сравнивается с kawai, Информатика с информатика, 50_кг с 200_кг, яблоко с яблоня.

Сравнение строк в Python происходит лексикографически, то есть посимвольно в соответствии с кодами символов (ASCII/Unicode). Буквы в верхнем регистре имеют меньшие коды, чем те же буквы в нижнем регистре. Числа сравниваются как строки: «50» больше «20».

word1 = input("Введите первое слово: ")\nword2 = input("Введите второе слово: ")\nword3 = input("Введите третье слово: ")\n\nprint("Результаты лексикографического сравнения:")\n\n# Сравнение 1 и 2\nif word1 == word2:\n    print(f"'{word1}' равно '{word2}'")\nelif word1 < word2:\n    print(f"'{word1}' меньше '{word2}'")\nelse:\n    print(f"'{word1}' больше '{word2}'")\n\n# Сравнение 2 и 3\nif word2 == word3:\n    print(f"'{word2}' равно '{word3}'")\nelif word2 < word3:\n    print(f"'{word2}' меньше '{word3}'")\nelse:\n    print(f"'{word2}' больше '{word3}'")\n\n# Сравнение 1 и 3\nif word1 == word3:\n    print(f"'{word1}' равно '{word3}'")\nelif word1 < word3:\n    print(f"'{word1}' меньше '{word3}'")\nelse:\n    print(f"'{word1}' больше '{word3}'")\n\n# Примеры сравнений из задания:\nprint("\nДополнительные примеры:")\nprint(f"'Kawai' < 'kawai': {'Kawai' < 'kawai'}") # Истина, так как 'K' < 'k'\nprint(f"'Информатика' < 'информатика': {'Информатика' < 'информатика'}") # Истина\nprint(f"'50_кг' < '200_кг': {'50_кг' < '200_кг'}") # Ложь ('5' > '2' как символы)\nprint(f"'яблоко' < 'яблоня': {'яблоко' < 'яблоня'}") # Истина ('к' < 'н')
Напишите программу, которая моделирует работу исполнителя «Автомат». Он получает на вход трёхзначное натуральное число и строит новое число следующим образом: 1) вычисляет суммы первой и второй, а также второй и третьей цифр; 2) выводит полученные суммы в порядке неубывания. Например, для числа 125 суммы: \( 1+2=3 \) и \( 2+5=7 \). Результат: 37.

Для трёхзначного числа \( N \), где \( N = c_1 c_2 c_3 \), нужно найти суммы \( S_1 = c_1 + c_2 \) и \( S_2 = c_2 + c_3 \), затем вывести их в порядке неубывания (от меньшей к большей) как новое число.

n = int(input("Введите трёхзначное число: "))\n\n# Разложение на цифры\nc1 = n // 100         # Первая цифра (сотни)\nc2 = (n // 10) % 10   # Вторая цифра (десятки)\nc3 = n % 10           # Третья цифра (единицы)\n\n# Вычисление сумм\ns1 = c1 + c2\ns2 = c2 + c3\n\n# Вывод сумм в порядке неубывания\nif s1 <= s2:\n    # Если s1 <= s2, выводим s1s2\n    result = str(s1) + str(s2)\nelse:\n    # Если s2 < s1, выводим s2s1\n    result = str(s2) + str(s1)\n\nprint(f"Полученные суммы в порядке неубывания: {result}")
В шахматной доске два поля определяются парой натуральных чисел, каждое из которых не превышает 8: \( (k_1, l_1) \) и \( (k_2, l_2) \). Напишите программу, которая определяет, имеют ли два поля одинаковый цвет. Координаты для проверки: 1-го поля gt;gt; 2 2, 2-го поля gt;gt; 3 3: Поля одного цвета; 1-го поля gt;gt; 2 2, 2-го поля gt;gt; 2 3: Поля разного цвета; 1-го поля gt;gt; 2 7, 2-го поля gt;gt; 5 4: Поля одного цвета

Цвет шахматного поля определяется чётностью суммы его координат. Если сумма координат \( k+l \) чётна, цвет один (например, чёрный); если нечётна, цвет другой (например, белый).

Два поля имеют одинаковый цвет, если чётность сумм их координат совпадает. Это эквивалентно тому, что разность сумм координат является чётным числом. Или, что проще, если сумма координат первого поля \( (k_1 + l_1) \) имеет ту же чётность, что и сумма координат второго поля \( (k_2 + l_2) \).

Проверка на одинаковую чётность: \( (k_1 + l_1) \% 2 = (k_2 + l_2) \% 2 \).

k1 = int(input("Введите координату строки 1-го поля (k1): "))\nl1 = int(input("Введите координату столбца 1-го поля (l1): "))\nk2 = int(input("Введите координату строки 2-го поля (k2): "))\nl2 = int(input("Введите координату столбца 2-го поля (l2): "))\n\n# Проверка на одинаковую четность суммы координат\n# (k1 + l1) % 2 дает 0 для четной суммы (один цвет) и 1 для нечетной (другой цвет)\ncolor1 = (k1 + l1) % 2\ncolor2 = (k2 + l2) % 2\n\nif color1 == color2:\n    print("Поля одного цвета")\nelse:\n    print("Поля разного цвета")

Задали создать проект?

Создай с помощью ИИ за 5 минут

До 90% уникальность
Готовый файл Word
15-30 страниц
Список источников по ГОСТ
Оформление по ГОСТ
Таблицы и схемы

Готовые проекты

Список готовых проектов к текущему параграфу.

Уведомление об авторском праве и цитировании

ВНИМАНИЕ: Представленные фрагменты из учебных материалов используются исключительно в научно-образовательных целях в объеме, оправданном поставленной целью.

Данное использование осуществляется в рамках, установленных законодательством об авторском праве (в частности, нормами о свободном использовании произведения для образовательных целей).

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