Главная / Учебники / Информатика 8 класс / Параграф § 5.4 / ГДЗ § 5.4
| Глава: | Глава 5. Начала программирования на языке Python |
|---|---|
| Параграф: | § 5.4 - Программирование разветвляющихся алгоритмов |
| Учебник: | Информатика 8 класс - |
| Автор: | Босова Людмила Леонидовна |
| Год: | 2025 |
| Издание: | 7-е издание, стереотипное |
Ответ:
Полная форма ветвления в Python записывается с использованием операторов if и else: if <условие>: <операторы 1> else: <операторы 2>. Неполная форма включает только оператор if: if <условие>: <операторы>.
Ответ:
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 поддерживает двойные неравенства.Ответ:
Данная программа проверяет условие if (s >= 10) or (t > 10):. Вывод «Да» происходит, если s ≥ 10 ИЛИ t > 10. Вывод «Нет» — в противном случае.
Результаты выполнения:
1 ≥ 10 (Ложь), 2 > 10 (Ложь). Ложь ИЛИ Ложь = Ложь. Вывод: Нет.11 ≥ 10 (Истина), 2 > 10 (Ложь). Истина ИЛИ Ложь = Истина. Вывод: Да.1 ≥ 10 (Ложь), 12 > 10 (Истина). Ложь ИЛИ Истина = Истина. Вывод: Да.11 ≥ 10 (Истина), 12 > 10 (Истина). Истина ИЛИ Истина = Истина. Вывод: Да.-11 ≥ 10 (Ложь), -12 > 10 (Ложь). Ложь ИЛИ Ложь = Ложь. Вывод: Нет.-11 ≥ 10 (Ложь), 12 > 10 (Истина). Ложь ИЛИ Истина = Истина. Вывод: Да.-12 ≥ 10 (Ложь), 11 > 10 (Истина). Ложь ИЛИ Истина = Истина. Вывод: Да.10 ≥ 10 (Истина), 10 > 10 (Ложь). Истина ИЛИ Ложь = Истина. Вывод: Да.10 ≥ 10 (Истина), 5 > 10 (Ложь). Истина ИЛИ Ложь = Истина. Вывод: Да.Всего было 9 запусков. Вывод «Да» был получен в 7 запусках.
Ответ:
Значение 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.
Данная последовательность инструкций выполняет одни и те же действия в зависимости от одного и того же условия a > b или его отрицания a ≤ b. Оптимизированный фрагмент с использованием полной формы условного оператора:
if a > b:\n c = 1\n d = 2\nelse: # a <= b\n c = 3\n d = 4
Расстояние \( 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("Точки равноудалены")
Для обмена значениями двух переменных в 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}")
Для решения этой задачи целесообразно использовать каскадное ветвление (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("Ошибка: Введено не целое число.")
Программа должна проверить выполнение двух условий одновременно: рост 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("Ошибка: Введено некорректное значение роста.")
Для вывода на экран соответствующей информации можно использовать каскадное ветвление. Для построения графики в консольном приложении можно использовать текстовое представление фигур или библиотеку (например, 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 \) можно разложить на цифры: \( c_1 \) (сотни), \( c_2 \) (десятки), \( c_3 \) (единицы).
Число является «перевёртышем», если \( 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 = 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 = 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}")
Для генерации случайного числа используется модуль 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("Ошибка: Введено некорректное значение.")
Сравнение строк в 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"'яблоко' < 'яблоня': {'яблоко' < 'яблоня'}") # Истина ('к' < 'н')
Для трёхзначного числа \( 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}")
Цвет шахматного поля определяется чётностью суммы его координат. Если сумма координат \( 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 минут
Список готовых проектов к текущему параграфу.
ВНИМАНИЕ: Представленные фрагменты из учебных материалов используются исключительно в научно-образовательных целях в объеме, оправданном поставленной целью.
Данное использование осуществляется в рамках, установленных законодательством об авторском праве (в частности, нормами о свободном использовании произведения для образовательных целей).
В соответствии с законодательством, автор и источник заимствования указаны для каждого используемого фрагмента.