Процедура - це підпрограма, яка виконує деякі дії після виклику її з основної програми або іншої процедури. Процедура. Глобальні змінні - це змінні, визначені в основній програмі. Вони доступні всередині процедури тільки для читання, а для зміни потрібно оголосити їх в процедурі після службового слова global. Локальні змінні - це змінні, визначені в процедурі, вони доступні тільки всередині процедури. Опис процедуриdef <ім'я> (<параметри>): <Оператори>Виклик процедури<Ім'я> (<аргументи>)
Створення функціїІснують деякі правила для створення функцій в Python.• Блок функції починається з ключового слова def, після якого йдуть назву функції і круглі дужки (()).• Будь-які аргументи, які приймає функція повинні знаходитися всередині цих дужок.• Після дужок йде двокрапка (:) і з нового рядка з відступом починається тіло функції.
Приклад 2. Обчислити суму цифр числа.def sum. D(n): # визначення функції з параметром sum. D = 0 while n!= 0: sum. D += n % 10 n = n // 10 return sum. D # повернення значення функції# основна програмаprint (sum. D(int(input()))) # виклик функції з параметром{5 C22544 A-7 EE6-4342-B048-85 BDC9 FD1 C3 A}№Вхідні дані: Вихідні дані:11234515234653425638
Припустимо, необхідно обчислити число комбінацій з n елементів по k, що дорівнює С𝒏𝒌=𝒏!𝒌!𝒏−𝒌! , Для чого необхідно обчислення факторіалів трьох величин: n, k і n-k. Для цього можна зробити три цикли, що призводить до збільшення розміру програми за рахунок триразового повторення схожого коду. Замість цього краще зробити одну функцію, яка обчислює факторіал будь-якого даного числа n і тричі скористатися цією функцією в своїй програмі. Відповідна функція може виглядати так: Приклад 3. Факторіал. def factorial(n): result = 1 for i in range(2, n + 1): result *= i return result
Цей код повинен йти до того місця, де ми захочемо скористатися функцією factorial. Тепер ми можемо використовувати нашу функцію кілька разів. У цьому прикладі ми тричі викликаємо функцію factorial для обчислення трьох факторіалів: factorial (n), factorial (k), factorial (n-k).n = int(input())k = int(input())C = (factorial(n) // (factorial(k) * factorial(n - k)))print(C)Приклад 3. Факторіал.
Ми також можемо, наприклад, оголосити функцію binomial, яка приймає два цілочисельних параметра n і k і обчислює число поєднань з n по k:def binomial(n, k): return factorial(n) // (factorial(k)*factorial(n - k))Тоді в нашій основній програмі ми можемо викликати функцію binomial для знаходження числа комбінацій:print(binomial(n, k))Приклад 2. Факторіал.
Приклад 4. Знайти більше з п'яти заданих чисел, використовуючи допоміжний алгоритм знаходження більшого з двох чисел. Блок-схема алгоритму розв'язання задачіBID (x, y, z)x>yz = xz = yвихід a b z c z d z e zпочатоккінець. BID (a, b, z)BID (z, c, z)введеня a,b,c,d,eвивід z. BID (z, d, z)BID (z, e, z)
Знайти більше з п'яти заданих чисел, використовуючи допоміжний алгоритм знаходження більшого з двох чисел. Приклад_4def bid(x, y): # Процедура більше з двох global z # глобальна змінна if x>y: z=x else: z=y# Основная программаprint("Введіть 5 чисел через пробіл")a,b,c,d,e = input().split()a,b,c,d,e = int(a), int(b), int(c), int(d), int(e)bid(a, b)bid(z, c)bid(z, d)bid(z, e)print("Максимальне число: ", z)Введіть 5 чисел через пробіл2 3 5 4 1 Максимальне число: 5
Знайти більше з п'яти заданих чисел, використовуючи допоміжний алгоритм знаходження більшого з двох чисел. Приклад_5def bid(x, y): # функція більше з двох if x>y: z=x else: z=y return z# Основная программаprint("Введіть 5 чисел через пробіл")a,b,c,d,e = input().split()a,b,c,d,e = int(a), int(b), int(c), int(d), int(e)m = bid(bid(bid(bid(a, b), c), d), e)print("Максимальне число: ", m)Введіть 5 чисел через пробіл2 3 5 4 1 Максимальне число: 5m = (BID (BID (BID (a, b), c), d), e)
Знайти найбільший спільний дільник чисел 16, 32, 40, 64, 80 і 128, використовуючи в якості процедури алгоритм Евкліда. Приклад_6def nod(a, b): global x while a != b: if a > b: a = a - b else: b = b - a x = a# Основная программаm = [16, 32, 40, 64, 80, 128]print(m)x = m[0]for i in range(1, 6): y = m[i] nod(x, y)print(“nod=“, x)[16, 32, 40, 64, 80, 128] nod = 8
def zam(x): x[0],x[-1] = x[-1], x[0]import random. A = []n = int(input("n="))for i in range(n): i = random.randint(-50, 50) A.append(i)print(A)zam(A)print(A)>>> %Run 22.pyn=6[40, 31, 29, 29, -37, 2][2, 31, 29, 29, -37, 40]>>> %Run 22.pyn=6[-30, 30, -15, 32, -26, 29][29, 30, -15, 32, -26, -30]>>> Приклад 7. Ввести одновимірний масив A довжиною m. Поміняти в ньому місцями перший і останній елементи. Довжину масиву ввести з клавіатури. Елементи масиву-цілі числа, згенерувати в діапазоні [-50, 50]. У програмі описати процедуру для заміни елементів масиву. Вивести вхідні та отримані масиви.
Приклад 9. Вивести на екран n перших членів послідовності Фібоначчі. f (1) = 1, f (2) = 1, f (3) = f (1) + f (2), ..., f (i) = f (i-2) + f (i-1)# Функція обчислення n-го члена послідовності Фібоначчіdef f (n): if n == 1 or n == 2: # перші два числа рівні 1 rez = 1 else: # число дорівнює сумі двох попередніх rez = f (n-1) + f (n-2) # рекурсивний виклик функції return rez# Основна програмаn = int(input(“n=”))for i in range (1, n): # для чисел від 1 до n print (f (i), end = “ ") # вивід чергового значення функціїn=101 1 2 3 5 8 13 21 34 >>>
Приклад 10. Підрахувати кількість слів у тексті, використовуючи допоміжний алгоритм знаходження кількості пробілів у рядку.# Функція кількість прогалинdef count_space (x): # x - рядок k = 0 # поч. знач. лічильника for c in x: # перебір символів if c == " ": # якщо пробіл k = k + 1 # збільшуємо лічильник return k # результат функції# Основна програмаa = input ("Введіть текст:")print ("Кількість слів у тексті", count_space (a) +1)Введіть текст: Я люблю мову програмування Python. Кількість слів у тексті 5>>>