Задачи
1. Объясните, чем отличаются следующие фрагменты про-
грамм:
if a > b: a = b
a = c
и
if a > b: a = b
else: a = c
Приведите примеры исходных данных, для которых резуль-
таты выполнения обеих программ (значение переменной a)
будут одинаковыми, и примеры данных, для которых они бу-
дут различными.
2. Объясните, чем отличаются следующие фрагменты про-
грамм:
if a > b: a = b
if a > c: a = c
и
if a > b: a = b
elif a > c: a = c
Приведите примеры исходных данных, для которых резуль-
таты выполнения обеих программ (значение переменной a)
будут одинаковыми, и примеры данных, для которых они бу-
дут различными.
3. Требовалось записать в переменную М максимальное из трёх
чисел, хранящихся в переменных a, b и c. Программист спе-
шил и написал программу так:
if a > b: M = a
else: M = b
if c > b: M = c
else: M = b
Приведите контрпример, то есть значения переменных, при
котором в переменной M будет получен неверный ответ. Как
нужно изменить программу, чтобы она всегда работала пра-
вильно?
4. Напишите программу, которая получает с клавиатуры два
целых числа и находит наибольшее и наименьшее из них.
Примеры данных, для которых результаты выполнения обеих программ (значение переменной a) будут одинаковыми:
- a = 3, b = 2, c = 1. В этом случае, значение переменной a будет равно 1 в обоих фрагментах программы.
Примеры данных, для которых результаты выполнения обеих программ (значение переменной a) будут различными:
- a = 5, b = 6, c = 7. В этом случае, значение переменной a будет равно 7 в первом фрагменте программы и 6 во втором фрагменте программы.
2. Первый фрагмент программы if a > b: a = b if a > c: a = c является условным выражением, которое сравнивает значения переменных a, b и c. Если значение переменной a больше значения переменной b, то значение переменной a присваивается значению переменной b. Затем, если значение переменной a больше значения переменной c, то значение переменной a присваивается значению переменной c. Второй фрагмент программы if a > b: a = b elif a > c: a = c также является условным выражением, но имеет блок elif, который выполняется, если условие if не выполняется, но условие elif выполняется. В этом случае, если значение переменной a больше значения переменной b, то значение переменной a присваивается значению переменной b. Если условие if не выполняется, но условие elif выполняется, то значение переменной a присваивается значению переменной c.
Примеры данных, для которых результаты выполнения обеих программ (значение переменной a) будут одинаковыми:
- a = 5, b = 4, c = 3. В этом случае, значение переменной a будет равно 3 в обоих фрагментах программы.
Примеры данных, для которых результаты выполнения обеих программ (значение переменной a) будут различными:
- a = 7, b = 8, c = 9. В этом случае, значение переменной a будет равно 8 в первом фрагменте программы и 9 во втором фрагменте программы.
3. В данной программе требуется найти максимальное из трех чисел, хранящихся в переменных a, b и c. Однако, при написании программы программист совершил ошибку.
if a > b: M = a
else: M = b
if c > b: M = c
else: M = b
Контрпримером, то есть значениями переменных, при которых в переменной M будет получен неверный ответ, будет:
- a = 5, b = 8, c = 6. В данном случае, значение переменной M будет равно 8, что является неверным, так как максимальное значение находится в переменной c.
Чтобы программа всегда работала правильно, нужно изменить ее следующим образом:
if a > b and a > c: M = a
elif b > a and b > c: M = b
else: M = c
4. Вот программа, которая получает с клавиатуры два целых числа и находит наибольшее и наименьшее из них:
a = int(input("Введите первое число: "))
b = int(input("Введите второе число: "))
if a > b:
max_number = a
min_number = b
else:
max_number = b
min_number = a
print("Наибольшее число:", max_number)
print("Наименьшее число:", min_number)