Приклади задач з розгалуженням

1. Напишіть програму, яка знаходить абсолютне значення числа (модуль числа).

x = int(input('Введіть число: '))   #  вводимо число за допомогою команди input
if x > 0:                           #  команда розгалуження! перевіряємо, чи число додатне
  print(x)                          #  виводимо число без зміни
else:                               #  інакше — виводимо число з протилежним знаком
  print(-x)

Примітка. Якщо не використовувати розгалуження, для відшукання модуля числа достатньо скористатися вбудованою функцією abs(x).

2. Визначити, чи вказане ціле число є:

1) додатнім чи від’ємним;

2) однозначним, двозначним чи багатозначним;

3) парним чи непарним.

n = int(input('Введіть число n: '))     #  вводимо ціле число за допомогою команди input
print('Введене число:')
if n > 0:                               #  команда розгалуження! перевіряємо, чи число додатне
  print('додатнє,')
elif n < 0:
  print('від\'ємне,')                   #  перевіряємо, чи число від'ємне
else: 
  print('є нулем,')
if abs(n) < 10:                         #  перевіряємо кількість цифр у числі
  print('однозначне,')                  # 
elif abs(n) >= 10 and abs(n) < 100:     # 
  print('двозначне,')                   # 
else:                                   # 
  print('багатозначне,')                
if n % 2 == 0:                          # перевіряємо, чи число ділиться на 2
  print('парне')
else:
  ('непарне')

3. Створіть програму, яка визначає чи введений рік є високосним. Згідно з григоріанським календарем, рік є високосним, якщо він кратний 4, але не кратний 100, а також якщо він кратний 400.

year = int(input('Введіть рік: '))          # вводимо рік за допомогою команди input
if year % 4 == 0:                           # перевіряємо вказані умови 
  if year % 100 == 0 and year % 400 != 0:
    print('Не високосний')
  else:
    print('Високосний')
else:
  print('Не високосний')

4. Створити програму, яка переводить одні одиниці вимірювання інформації у інші (використати такі одиниці вимірювання: байти, кілобайти, мегабайти, гігабайти, терабайти).

units = str(input('Оберіть одиницю вимірювання: \nB - байти, \nKB - кілобайти,\nMB - мегабайти, \nGB - гігабайти, \nTB - терабайти\n\n'))
amount = float(input('Введіть величину: '))
print('')
if units == 'B':
  print('Кілобайти: %s' % (amount / 2 ** 10))
  print('Мегабайти: %s' % (amount / 2 ** 20))
  print('Гігабайти: %s' % (amount / 2 ** 30))
  print('Терабайти: %s' % (amount / 2 ** 40))
elif units == 'KB':
  print('Байти: %s' % (amount * 2 ** 10))
  print('Мегабайти: %s' % (amount / 2 ** 10))
  print('Гігабайти: %s' % (amount / 2 ** 20))
  print('Терабайти: %s' % (amount / 2 ** 30))
elif units == 'MB':
  print('Байти: %s' % (amount * 2 ** 20))
  print('Кілобайти: %s' % (amount * 2 ** 10))
  print('Гігабайти: %s' % (amount / 2 ** 10))
  print('Терабайти: %s' % (amount / 2 ** 20))
elif units == 'GB':
  print('Байти: %s' % (amount * 2 ** 30))
  print('Кілобайти: %s' % (amount * 2 ** 20))
  print('Мегабайти: %s' % (amount * 2 ** 10))
  print('Терабайти: %s' % (amount / 2 ** 10))
elif units == 'TB':
  print('Байти: %s' % (amount * 2 ** 40))
  print('Кілобайти: %s' % (amount * 2 ** 30))
  print('Мегабайти: %s' % (amount * 2 ** 20))
  print('Гігабайти: %s' % (amount * 2 ** 10))

5. Написати програму, яка шукає корені квадратного рівняння ax^2 + bx + c = 0.

import math                                                             # імпортуємо бібліотеку з математичними функціями

print("Введіть коефіцієнти квадратного рівняння ax^2 + bx + c = 0: ")   # вводимо коефіцієнти квадратного рівняння
a = float(input("a = "))
b = float(input("b = "))
c = float(input("c = "))
 
D = b ** 2 - 4 * a * c                                 # обчислюємо дискримінант
if D > 0:                                              # перевіряємо, чи дискримінант додатній
    x1 = (-b + math.sqrt(D)) / (2 * a)                 # шукаємо корені при додатному дискримінанті
    x2 = (-b - math.sqrt(D)) / (2 * a)
    print('x1 = %s \nx2 = %s' % (x1, x2))              # виводимо результат
elif D == 0:                                           # перевіряємо, чи дискримінант дорівнює нулю
    x = -b / (2 * a)                                   # шукаємо корінь
    print('x = %s' % x)                                # виводимо результат
else:
    print("Рівняння із заданими коефіцієнтами коренів не має")   # якщо дискримінант від'ємний, то коренів немає

6. За введеними координатами з'ясувати, до якої координатної чверті належить точка.

print('Введіть координати точки:')    #  вводимо координати точки
x = float(input("x = "))
y = float(input("y = "))

if x > 0 and y > 0:                   #  здійснюємо перевірку попадання у першу чверть, у якій обидві координати додатні
  print('Точка в I четверті')
elif x < 0 and y > 0:                 #  команда elif здійснює перевірку альтернативної умови (друга чверть)
  print('Точка в II четверті')
elif x < 0 and y < 0:
  print('Точка в III четверті')
elif x > 0 and y < 0:
  print('Точка в IV четверті')
elif x == 0 and y == 0:
  print('Точка в початку координат')
elif x == 0:
  print('Точка на осі Y')
elif y == 0:
  print('Точка на осі X')

7. Написати програму для обчислення площі круга, прямокутника і трикутника. Якщо користувач обирає круг, то потрібно ввести радіус, а якщо прямокутник чи трикутник – довжини сторін.

import math
 
figure = str(input('Оберіть фігуру (введіть слово \"круг", \"прямокутник" чи \"трикутник"): '))
 
if figure == 'круг':
  print('Введіть радіус круга:')
  r = float(input('r = '))
  print('Площа круга = %s' % (math.pi * r ** 2))
elif figure == 'прямокутник':
  print('Введіть довжини сторін:')
  a = float(input('a = '))
  b = float(input('b = '))
  print('Площа прямокутника = %s' % (a*b))
elif figure == 'трикутник':
  print('Введіть довжини сторін:')
  a = float(input('a = '))
  b = float(input('b = '))
  c = float(input('c = '))
  p = (a + b + c) / 2
  s = math.sqrt(p * (p - a) * (p - b) * (p - c))
  print('Площа трикутника = %s' % (s))

8. Написати програму для відшукання значення функції при заданому значенні аргументу.

x = float(input('Введіть значення аргументу функції x: '))
if x < 0:                                                     
  y = -2 * x + 8                                            # обчислення значення функції при x < 0 
elif x == 0:
  y = 0                                                     # обчислення значення функції при x = 0 
else:
  y = abs(x)                                                # обчислення значення функції при x > 0 
print('x =', x, '\ny =', y)

9. Написати програму для перевірки усної лічби, яка міститиме 5 запитань. Вкінці користувач отримує оцінку в залежності від кількості правильних відповідей. Програма повинна мати такий вигляд:

Програма для перевірки усної лічби.

1. Скільки буде _+_? (після того, як користувач вводить відповідь, програма відповідає «Правильно» чи «Неправильно»).

2. Скільки буде _-_?

3. Скільки буде, якщо _ поділити націло на _?

4. Чому дорівнює добуток чисел _ та _?

5. Чому дорівнює остача від ділення числа _ на число _?

Після опитування програма видає результуючу оцінку. Числа генеруються випадковим чином. У кожному запитанні перше число – ціле від 0 до 99, друге – ціле від 0 до 9.

import random                                   # підключення модуля генерації випадкових чисел
print('Програма для перевірки усної лічби.')
x1 = random.randint(0, 99)                      # генерація випадкового цілого числа з проміжку [0, 99]
x2 = random.randint(0, 9)
y1 = random.randint(0, 99)
y2 = random.randint(0, 9)
z1 = random.randint(0, 99)
z2 = random.randint(1, 9)                       # оскільки ділення на 0 неприпустиме, дільник обираємо з проміжку [1, 9]
k1 = random.randint(0, 99)
k2 = random.randint(0, 9)
l1 = random.randint(0, 99)
l2 = random.randint(1, 9)
mark = 0                                        # задаємо початкове значення для оцінки
 
quest1 = int(input('1. Скільки буде %s+%s? ' % (x1, x2)))
if quest1 == x1 + x2:                                            # здійснюємо перевірку
  print('Правильно!')
  mark = mark + 1                                                # зараховуємо 1 бал за правильну відповідь
else: print('Неправильно :(')
 
quest2 = int(input('2. Скільки буде %s-%s? ' % (y1, y2)))
if quest2 == y1 - y2:
  print('Правильно!')
  mark = mark + 1
else: print('Неправильно :(')
 
quest3 = int(input('3. Скільки буде, якщо %s поділити націло на %s? ' % (z1, z2)))
if quest3 == z1 // z2:
  print('Правильно!')
  mark = mark + 1
else: print('Неправильно :(')
 
quest4 = int(input('4. Чому дорівнює добуток чисел %s та %s? ' % (k1, k2)))
if quest4 == k1 * k2:
  print('Правильно!')
  mark = mark + 1
else: print('Неправильно :(')
 
quest5 = int(input('5. Чому дорівнює остача від ділення числа %s на число %s? ' % (l1, l2)))
if quest5 == l1 % l2:
  print('Правильно!')
  mark = mark + 1
else: print('Неправильно :(')
 
print('Ваша оцінка: %s' % mark)                                                        # виводимо результуючу оцінку

10. Написати програму, яка перевіряє, чи попадає точка у заштриховану область.

print('Введіть координати точки: ')
x = float(input('x = '))                                     # введення першої координати точки з клавіатури 
y = float(input('y = '))                                     # введення другої координати точки з клавіатури 
if pow(x, 2) + pow(y, 2) < 4 and y < -x + 2 and y > x - 2:   # перевірка умови попадання у задану область
  print('так')                                               # вивід повідомлення із позитивною відповіддю
else:                                                        # перевірка альтернативних варіантів
  if pow(x, 2) + pow(y, 2) > 4 and y > -x + 2 and y < x - 2:
    print('ні')
  else:
    print('точка на межі')

11. Шоколадка має вигляд прямокутника, розділеного на n × m частинок. Шоколадку можна один раз розламати по прямій на дві частини. Визначте, чи можна таким чином відламати від шоколадки рівно k частинок.

n = int(input('n = '))
m = int(input('m = '))
k = int(input('k = '))
if (k % n == 0 or k % m == 0) and (k < n * m):
  print('Це можливо')
else:
  print('Це неможливо')