СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до 20.05.2025

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Условный оператор

Категория: Информатика

Нажмите, чтобы узнать подробности

Здесь собраны теория и задачи с решениями и пояснениями

Просмотр содержимого документа
«Условный оператор»

Данная методическая разработка используется как обучающий пример для работы по теме «Условный оператор»

Ветвление – это алгоритм, в котором в зависимости от условия выполняется одна из последовательности действий.


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

Например:

name = input() #введем имя

if name == ‘Артем’: #если имя в name будет «Артем», то

print (‘Добро пожаловать, Артем!’) # напечатаем строку

else: #если же там будет любые другие имена

print (‘Доступ запрещен’) #выведем такую строку.

Команда else позволяет выполнить другие действия, если условия выше были ложными.

Для выделения блока инструкций, относящихся к инструкции if или else, в языке Python используются отступы. Все инструкции, которые относятся к одному блоку, должны иметь равную величину отступа, то есть одинаковое число пробелов в начале строки. Рекомендуется использовать отступ в 4 пробела или 1 символ табуляции.


Полное и неполное ветвление


Задача 1. Четное или нет?

На вход подается число. Необходимо проверить данное число на четность. Если число четное – вывести его, добавив тире, и фразу число четное, если же число нечетное - вывести его, добавив тире, и фразу число нечетное.

Входные данные: 21

Выходные данные: число нечетное

Входные данные: 72

Выходные данные: число четное

Напишем программу:

a = int(input())

if a % 2 == 0:

print ('число четное')

else:

prin t('число нечетное')


Задача 2. Рассмотрим запись ветвления на примере нахождения максимального значения из 2-х чисел.

Напишем программу:


Вариант 1:

a,b=int(input()),int(input())

if ab:

m=a

else:

m=b

print(m)

#здесь используется дополнительная переменная.

Вариант 1 использует полную форму ветвления, а можно обойтись неполной формой.

Вариант 2:

a,b=int(input()),int(input())

m = a

if b a:

m = b

print(m)

#здесь используется дополнительная переменная.

Часто при выполнении какого-то условия нужно выполнить сразу несколько действий.

Задача 3. Определение максимума и минимума

a,b=int(input("введите число 1 - ")),int(input("введите число 2 - "))

ma=b

mi=a

if a b:

ma=a

mi=b

if ma!=mi:

print('максимальное число = ', ma, 'минимальное число = ',mi)

else:

print('числа равны')



Вложенные условные операторы

Условный оператор находящийся внутри блока «иначе» (else) называется вложенным условным оператором. Использование вложенных условных операторов позволяет выбрать один из нескольких (а не только из двух) вариантов.

Задача 4. A возраст Александра, B возраст Владимира. Нужно определить,

кто из них старше или оба одного возраста.

a,b=int(input('Возраст Александра - ')),int(input('Возраст Владимира - '))

if ab:

print('Александр старше')

else:

if a==b:

print('Одного возраста')

else:

print('Владимир старше')


Обратите внимание на отступы: слова if, elif и else находятся на одном уровне.

Задача 5. N - возраст Антона, B - возраст Бориса, X – возраст Виктора . Нужно определить, кто старше.


n=int(input('Введите возраст Антона '))

b=int(input('Введите возраст Бориса '))

x=int(input('Введите возраст Виктора '))

if xb:

print('Антон старше всех')

if n==x==b:

print ('Все одного возраста')

if nx:

print('Борис старше всех')

if nb:

print('Виктор старше всех')

if n==b and nx:

print('Антон и Борис старше Виктора')

if b==x and bn:

print('Виктор и Борис старше Антона')

if n==x and xb:

print('Виктор и Антон старше Бориса')


#решать задачу будем, используя логические операции и используя инструкцию if, elif.


Задача 6. Сумма первой и последней цифр равна разности второй и третьей цифр.

Напишите программу, которая проверяет, что для заданного четырехзначного числа выполняется следующее соотношение: сумма первой и последней цифр равна разности второй и третьей цифр.

Формат входных данных - на вход программе подаётся одно целое положительное четырёхзначное число.

Формат выходных данных - программа должна вывести «ДА», если соотношение выполняется, и «НЕТ» — если не выполняется.

Решение:


1 вариант

s =int(input())

if s1000 and s

s=str(s)

if int(s[0])+int(s[3])==int(s[1])-int(s[2]):

print('ДА')

else:

print('НЕТ')

#решать задачу будем посредством строкового типа данных

2 вариант

n = int(input())

if n % 10 + n // 1000 == n // 100 % 10 - n // 10 % 10:

print('ДА')

else:

print('НЕТ')

#решать задачу будем с помощью целочисленной арифметики

3 вариант

x = int(input())

a = (x % 10000) // 1000

b = (x % 1000) // 100

c = (x % 100) // 10

d = x % 10

if (a+d) == (b-c):

print('ДА')

else:

print('НЕТ')

4 вариант

n=int(input())

a=n//1000

b=(n%1000)//100

c=((n%1000)%100)//10

d=(((n%1000)%100)%10)

if a+d==b-c:

print('ДА')

else:

print('НЕТ')

5 вариант

a,b,c,d = input()

print('ДА' if int(a) + int(d) == int(b) - int(c) else 'НЕТ')

#также можно написать все в одну строчку.




Задача 7. Коровы

Для данного числа n

Входные данные - вводится натуральное число.

Выходные данные - программа должна вывести введенное число n и одно из слов: korov, korova или korovy. Между числом и словом должен стоять ровно один пробел.

Примеры

входные данные

1

выходные данные

1 korova

входные данные

2

выходные данные

2 korovy

входные данные

5

выходные данные

5 korov

Решение:

n=int(input ())

f=(n)%10

k=(n)%100

if f==1 and k!=11:

print ( n, 'korova')

elif f= 2 and f

print (n, 'korovy')

elif f =5 and f=11 and k

print (n, 'korov')

#вначале сделаем небольшой расчет: нам нужно правильно просклонять слово «корова» с каждым числительным.

1, 21, 31, 41

корова

2-4, 22-24, 32-34

коровы

5-20, 25-30, 35-40

коров

И т.д. Получили некоторую закономерность. Если число оканчивается на 1, то окончание «а», если число оканчивается на 2-4, то окончание «ы», если число оканчивается на 5-0, то окончание «нулевое».

Но также здесь есть исключения: 11 коров, 12 коров, 13 коров, 14 коров.

Задачу решаем с помощью логических операций –дизъюнкция (или) и конъюнкция (и).

С помощью инструкции if-elif реализуется множественное ветвление. Как только тело if или какого-нибудь elif выполняется, программа сразу же возвращается в основную ветку, а все нижеследующие elif пропускаются.



Задача 8. Задача про шоколадку

Требуется определить, можно ли от шоколадки размером n × m долек отломить k долек, если разрешается сделать один разлом по прямой между дольками (то есть разломить шоколадку на два прямоугольника).

Входные данные

Вводятся 3 числа: n, m и k; k не равно n × m. Гарантируется, что количество долек в шоколадке не превосходит 30000.

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

Примеры

входные данные

3

2

4

выходные данные

YES

входные данные

3

2

1

выходные данные

NO

Решение:

n=int(input('Введите количество долек шоколада: '))

m=int(input('Введите количество долек шоколада: '))

k=int(input('Введите количество долек шоколада: '))

if k0 and n0 and m0:

if (k%n==0 or k%m==0) and k

print("YES")

else:

print("NO")

#в данной задаче можно нарисовать шоколадку размером m*n, чтобы понять можно ли отломить от шоколадки k-долек, сделав 1 разлом.

В этой задаче применяем логические операции –дизъюнкция (или) и конъюнкция (и).





Задача 9.

Четные и нечетные числа

Ввод и вывод данных производятся через стандартные потоки ввода-вывода.

Даны три целых числа A, B, C. Определить, есть ли среди них хотя бы одно четное и хотя бы одно нечетное.

Входные данные

Числа A, B, C, не превышающие по модулю 10000.

Выходные данные

Одна строка – "YES" или "NO".


Решение:

a,b,c=int(input()),int(input()),int(input())

if (a%2==0 or b%2==0 or c%2==0) and (a%2!=0 or b%2!=0 or c%2!=0) and (abs(a)

print('YES')

else:

print('NO')

#применяем функцию abs – модуль. В этой задаче применяем логические операции –дизъюнкция (или) и конъюнкция (и).

Используется полное ветвление.



Задача 10.Фишки

В каждую крайнюю клетку квадратной доски поставили по фишке. Могло ли оказаться, что выставлено ровно k фишек? (Например, если доска 2×2, то выставлено 4 фишки, а если 6×6 - то 20).

Входные данные

Вводится одно натуральное число k, не превосходящее 30000

Выходные данные

Программа должна вывести слово YES, если существует такой размер доски, на который будет выставлено ровно (не больше, и не меньше) k фишек, в противном случае - вывести слово NO.

Решение:

k=int(input())

if k0 and k

print('YES')

else:

print('NO')

#задача решается используя целочисленную арифметику и логические операции. Используется полное ветвление.


Скачать

© 2023 1910 5

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!