Сначала немного теории. Тут у нас импликация(если..то...), комбинированная с конъюнкцией(и). Таблица истинности импликации(стрелочки): 0 0 1 0 1 1 1 0 0 1 1 1 Общее правило: если a<=b, тогда правда Таблица истинности конъюнкции(/\): 0 0 0 0 1 0 1 0 0 1 1 1 Общее правило: если есть одна ложь-всё ложь Теперь о примере: Просто подставляем вместо x варианты. Так как между двумя скобочками с Если... То... стоит И, нам нужен вариант, где оба Если... То... являются правдой. Рассмотрим подробно 1 вариант: 21<25 - это правда 21<23 - это правда Таким образом, в первых скобочках правда, это доказывает таблица истинности, приведённая выше. 21<22 - это правда 21>21 - это ложь В этих скобочках-ложь. А так как ложь и правда в И являются ложью, нам не подходит данный вариант 2 вариант-верный ответ, т.к.: 22<25 - это правда 22<23 - это правда В первых скобочках правда 22<22 - это ложь 22>21 - это правда И в этих скобках правда. Как можно убедится, снова взглянув в таблицу истинности для конъюнкции, всё выражение является правдой. 3 и 4 посмотрите сами и убедитесь что это ложь.
print('Скорость не может быть меньше 1 и больше 300')
continue
else:
summ += speed
if speed >= 60 and not speed60: speed60 = True
print(round(summ/N, 1))
print('YES' if speed60 else 'NO')
Объяснение:
В начале вводится целое число N с клавиатуры, а также регистрируется переменняа summ, которой присваивается значение 0, переменная speed60 со значением False. Повторяем тело цикла N раз (с цикла for): вводится скорость с клавиатуры. По условию скорось не может быть меньше 1 и больше 300 - делаем проверку. Если скорость действительно за рамками допустимых значений, выводим предупреждение и не учитываем это значение в сумму скоростей. Если скорость от 1 до 300, то к значению переменной summ прибавляем значение скорости. Делаем проверку, скорость больше либо равно 60 км/ч или нет. Если да, и переменная speed60 на данный момент False, то присваиваем ей значение True. Цикл окончен. В конце выводим среднее значение, округлённое до десятых, в следующей строке выводим "YES" если была скорость, которая больше либо равно 60, иначе выводим "NO".
Тут у нас импликация(если..то...), комбинированная с конъюнкцией(и).
Таблица истинности импликации(стрелочки):
0 0 1
0 1 1
1 0 0
1 1 1
Общее правило: если a<=b, тогда правда
Таблица истинности конъюнкции(/\):
0 0 0
0 1 0
1 0 0
1 1 1
Общее правило: если есть одна ложь-всё ложь
Теперь о примере:
Просто подставляем вместо x варианты. Так как между двумя скобочками с Если... То... стоит И, нам нужен вариант, где оба Если... То... являются правдой.
Рассмотрим подробно 1 вариант:
21<25 - это правда
21<23 - это правда
Таким образом, в первых скобочках правда, это доказывает таблица истинности, приведённая выше.
21<22 - это правда
21>21 - это ложь
В этих скобочках-ложь.
А так как ложь и правда в И являются ложью, нам не подходит данный вариант
2 вариант-верный ответ, т.к.:
22<25 - это правда
22<23 - это правда
В первых скобочках правда
22<22 - это ложь
22>21 - это правда
И в этих скобках правда.
Как можно убедится, снова взглянув в таблицу истинности для конъюнкции, всё выражение является правдой.
3 и 4 посмотрите сами и убедитесь что это ложь.
Программа:
Python:
N, summ, speed60 = int(input()), 0, False
for i in range(N):
speed = int(input())
if speed < 1 or speed > 300:
print('Скорость не может быть меньше 1 и больше 300')
continue
else:
summ += speed
if speed >= 60 and not speed60: speed60 = True
print(round(summ/N, 1))
print('YES' if speed60 else 'NO')
Объяснение:
В начале вводится целое число N с клавиатуры, а также регистрируется переменняа summ, которой присваивается значение 0, переменная speed60 со значением False. Повторяем тело цикла N раз (с цикла for): вводится скорость с клавиатуры. По условию скорось не может быть меньше 1 и больше 300 - делаем проверку. Если скорость действительно за рамками допустимых значений, выводим предупреждение и не учитываем это значение в сумму скоростей. Если скорость от 1 до 300, то к значению переменной summ прибавляем значение скорости. Делаем проверку, скорость больше либо равно 60 км/ч или нет. Если да, и переменная speed60 на данный момент False, то присваиваем ей значение True. Цикл окончен. В конце выводим среднее значение, округлённое до десятых, в следующей строке выводим "YES" если была скорость, которая больше либо равно 60, иначе выводим "NO".
Результат:
10
102
106
102
062
58
276
27
3
5
6
74.7
YES