Презентация по теме
Читать

Презентация по теме "Запись вспомогательных алгоритмов на языке Python. Функции. Рекурсия" (9 класс)

Cкачать презентацию: Презентация по теме "Запись вспомогательных алгоритмов на языке Python. Функции. Рекурсия" (9 класс)

    Ничего не найдено.
Click here to cancel reply.

Презентация по слайдам:


Слайд #1

ЗАПИСЬ ВСПОМОГАТЕЛЬНЫХ АЛГОРИТМОВ НА ЯЗЫКЕ PYTHON
АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ
учитель: Сойникова Екатерина Дмитриевна.
МКОУ «Новоспасская СОШ» Золотухинского района Курской области
Рекурсия. Решение практических задач

Слайд #2

Ключевые слова
подпрограмма
процедура
функция
рекурсивная функция

Слайд #3

1. Для чего используют подпрограммы?
Проверка домашнего задания
2. Дан текст процедуры на языке Python:
def f (n):
if n > 1:
f(n // 2)
print(‘**’)
Определите, сколько звездочек будет выделено в результате вызова f(7). Вычисления фиксируйте в таблице:

Слайд #4

3. Напишите процедуру с параметрами n (целое число) и
a (символ), которая выводит на экран n строк, каждая из
Которых содержит n символов a.
Проверка домашнего задания
def f(n,a):
for i in range(n):
print(a*n)
f(12,'А')

Слайд #5

Проверка домашнего задания
def f(h,w,a):
for i in range(h):
print(a*w)
f(12,6,'А')
4. Напишите процедуру с параметрами w (ширина), h (высота), a (символ), которая выводит на экран «прямоугольник» из символов a, ширина которого равна w, а высота – h.

Слайд #6

Проверка домашнего задания
5. В чем основное различие процедур и функций?
6. Напишите функцию KDN(), которая вычисляет количество цифр вводимого целого числа.
def KDN(a):
cnt=0
while a > 0:
a=a//10
cnt+=1
return cnt
n = int(input('Введите число '))
print('Количество цифр в числе ',KDN(n))
Напишем программу

Слайд #7

Проверка домашнего задания
7. Напишите функцию KBDN(), которая вычисляет количество в двоичной записи вводимого десятичного числа.
def KBDN(a):
b=''
while a>0:
b=str(a%2)+b
a=a//2
b=int(b)
print('Двоичная система счисления: ',b)
cnt=0
while b > 0:
b=b//10
cnt+=1
return cnt
a = int(input('Введите число '))
print('Количество цифр в числе ',KBDN(a))
Напишем программу

Слайд #8

Функция
8. Напишите программу вычисления наименьшего общего кратного следующих четырех чисел: 36, 54, 18 и 15. Используйте процедуру вычисления наибольшего общего делителя
Напишем программу
def NOK (x,y):
global c
if x>y:
g=x
else:
g=y
while True:
if((g%x==0) and (g%y==0)):
c=g
break
g+=1
A=[36,54,24,20]
c=A[0]
for i in range(1,4):
y=A[i]
NOK(c,y)
print(c)

Слайд #9

Функция
9. Напишите программу перестановки значений переменных a, b, с в порядке возрастания, т. е. так, чтобы a < b < c. Используйте процедуру swap.
def swap (a, b, c):
if a > b:
a, b = b, a


Исходные данные вводятся с клавиатуры.

Слайд #10

Напишем программу
a, b, c = map(int,input().split())
def swap(a,b,c):
if a > b:
a,b = b,a
if b > c:
b,c = c,b
if a > b:
a,b = b,c
print(a,b,c)
swap(a,b,c)

Слайд #11

Функция
10. Видоизмените программу сортировки массива выбором так, чтобы в ней использовалась процедура выбора наибольшего элемента массива.
N=10
A=[0]*10
for i in range(N):
A[i]=int(input())
for i in range(N):
print('A [ ',i,'] = ',A[i])
def sort(array):
n = len(array)
for i in range(n):
for j in range(0,n-i-1):
if array[j] > array[j+1]:
array[j],array[j+1]=array[j+1],array[j]
sort(A)
print(A)

Слайд #12

Функция
 
n=int(input())
def f(n):
s=0
for i in range(1,n+1):
cnt=1
f=1
while cnt<=i:
f*=cnt
cnt+=1
s+=f
return s
print('s = ',f(n))

Слайд #13

Последовательность Фибоначчи
В январе Саше подарили пару новорождённых кроликов. Через два месяца они дали первый приплод - новую пару кроликов, а затем давали приплод по паре кроликов каждый месяц.
Каждая новая пара также даёт первый приплод (пару кроликов) через два месяца, а затем - по паре кроликов каждый месяц. Сколько пар кроликов будет у Саши в декабре?
Числа 1, 1, 2, 3, 5, 8, … образуют так называемую последовательность Фибоначчи, названную в честь итальянского математика, впервые решившего соответствующую задачу ещё в начале XIII века.

Слайд #14

Математическая модель
Пусть f(n) количество пар кроликов в месяце с номером n.
По условию задачи:
f(1) = 1,
f(2) = 1,
f(3) = 2.
 

Слайд #15

Рекурсия
Полученная функция рекурсивная - в ней реализован способ вычисления очередного значения функции через вычисление её предшествующих значений.
Оформим в виде функции вычисление члена последовательности Фибоначчи.
def f(n):
if n == 1 or n == 2:
rez =1
else:
rez = f(n – 1) + f(n – 2)
return(rez)
Напишите программу, вычисляющую и выводящую 12 первых членов последовательности Фибоначчи.

Слайд #16

Напишем программу
def f(n):
if n==0:
return 0
elif n==1:
return 1
else:
return f(n-1)+f(n-2)
for i in range(13):
print(f(i))

Слайд #17

Напишем программу на языке Python для задачи «Ханойские башни»
def S(n):
if n == 1:
return 1
if n>0:
return 2*S(n-1)+1
print(S(7))

Слайд #18

Домашняя работа
Доп. главы к учебнику §2.2 вопросы и задания № 12-14 к параграфу

Слайд #19

Функция
def func(x,n):
res=1
for i in range(n):
res*=x
return res
x = int(input('Введите x '))
n = int(input('Введите n '))
print('s = ',func(x,3)+func(x,5)+func(x,n))
12. Напишите программу вычисления выражения:
s = x3 + x5 + xn,
где x и n вводятся с клавиатуры.
Используйте функцию вычисления степени.

Слайд #20

Функция
13. Напишите функцию, вычисляющую длину отрезка по координатам его концов. С помощью этой функции напишите программу, вычисляющую периметр треугольника по координатам его вершин.
from math import*
def p(xa,ya,xb,yb):
res=abs(sqrt((xb-xa)**2 + (yb-ya)**2))
return res
xa=int(input('xa = '))
ya=int(input('ya = '))
xb=int(input('xb = '))
yb=int(input('yb = '))
xc=int(input('xc = '))
yc=int(input('yc = '))
P=p(xa,ya,xb,yb)+p(xa,ya,xc,yc)+p(xc,yc,xb,yb)
print('P = ',P)

Слайд #21

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

Слайд #22

Напишем программу
from math import*
def s(xa,ya,xb,yb,xc,yc):
res=abs(xa*(yb-yc)+xb*(yb-ya)+xc*(ya-yb))/2
return res
xa=int(input('xa = '))
ya=int(input('ya = '))
xb=int(input('xb = '))
yb=int(input('yb = '))
xc=int(input('xc = '))
yc=int(input('yc = '))

print('S = ',s(xa,ya,xb,yb,xc,yc))

Слайд #23

Самое главное
Запись вспомогательных алгоритмов в языках программирования осуществляется с помощью подпрограмм. В Паскале различают два вида подпрограмм: процедуры и функции.
Процедура - подпрограмма, имеющая произвольное количество входных и выходных данных.
Функция - подпрограмма, имеющая единственный результат, записываемый в ячейку памяти, имя которой совпадает с именем функции.

Слайд #24

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