Дистанційна освіта з інформатики в період березня 2021 року
01.03.2021 - 07.03.2021
Конспект уроку для учнів
Тема: Складання програм на опрацювання алгоритмів різними типами даних. Одновимірні массиви. Рядки. Списки. Середовище опису та виконання циклічних алгоритмів Thonny.
Теоретична частина
Зразки алгоритмів: https://pythontask.pp.ua/
Запитання. Що ви розумієте під словосполученням: послідовність чисел?
Відповідь. Множина чисел, в якій кожне число має свій порядковий номер.
Наприклад. Знайти продовження послідовності чисел:
А) 2, 4, 6, 8, 10, 12, ……., an=2*n, де n - натуральне число
Б)1, 3, 5, 7, 9, 11, 13, ……, bn=2*n-1, де n - натуральне число
В) 3, 6,9,12,15,18, ……., an=3*n, де n - натуральне число
Г)2, 5, 8,11,14,17, 20, ……, bn=3*n-1, де n - натуральне число
Один, два – усі піднялись,
Повернулись, похитались.
Три, чотири – руки вгору,
В сторони і вгору знову.
П’ять, шість – опустили,
І швиденько всі присіли.
Сім, вісім – всі малята
Стрибають, як жабенята.
Дев’ять, десять, - рівно стали
І за парти посідали.
Практична частина
Для користувачів OS Windows, бажано встановити Середовище Thonny, оскільки робота в ньому непогано описана в нашому підручнику.
Середовище Thonny Python IDE for beginners https://thonny.org/
Для завантаження можна прямо перейти за посиланням
Для Windows: https://github.com/thonny/thonny/releases/download/v3.3.2/thonny-3.3.2.exe
Завдання 0. Моніторинг знань про алгоритми в Python3
1.Установіть відповідність між словами-термінами в таблиці1
Таблиця 1 | +,*, /, -, %, // | 9,3, 2, 1 | >, <. =, | x, z, n k, | [ , }, #, ], }@ | for, if, while |
константи | | | | | | |
відношення | | | | | | |
операції | | | | | | |
змінні | | | | | | |
знаки | | | | | | |
Cлужбові слова | | | | | |
|
Завдання 1. Реалізувати даний алгоритм знаходження чисел послідовності Фібоначчі на Python в Thonny. Синім кольором виділена частина, алгориму, яка називається або підпрограмою-процедурою, або функцією-процедурою
Реалізація для 30 чисел Фібоначчі
print("Числа Фібоначчі")
n=30; f=['None']*n
f[0]=0;f[1]=1
def fib(n):
a,b=0,1
f[0]=0; f[1]=1
i=2
while i<n:
print(a,end=' ')
a,b=b,a+b
f[i]=f[i-2]+f[i-1]
i+=1
print()
return f
fib(n)
print("Масив чисел Фібоначчі:", f)
Протестувати виконання цього алгоритму декілька разів.
Протестувати виконання цього алгоритму для n=500 чисел
Протестувати виконання цього алгоритму для n=1500 чисел
Довідка про Золотий перетин у природі
Завдання 2. Реалізувати даний алгоритм знаходження чисел послідовності Вінні на Python в Thonny. Синім кольором виділена частина, алгориму, яка називається або підпрограмою-процедурою, або функцією-процедурою
Означення. Послідовність чисел, називається послідовність Вінні Vq(k,l,m,n), для натуральних чисел m, n, k, l, q , якщо виконуються такі умови:
1) v1 =k*m+n; v2= l*k+n;
2)vq= (q-1)*vq-2+q*vq-1.
Реалізація для послідовності Вінні Vq(2,3,1,1).
print("Числа Віннi")
z=['None']*10
def vinn(r,k,l,m,n):
a,b=k*m+n,l*k+n
z[0],z[1]=k*m+n,l*k+n
i=2
while a<r:
print(a,end=' ')
a,b=b,(i-1)*a+i*b
z[i]=b
i+=1
print()
return z
vinn(100000,2,3,1,1)
print("Масив чисел Віннi:", z)
Протестувати виконання цього алгоритму декілька разів,
Протестувати виконання цього алгоритму для Vq(2,2,2,2).
Протестувати виконання цього алгоритму для Vq(1,2,3,4)
Завдання 3. Реалізувати даний алгоритм знаходження чисел послідовності Тарасова на Python в Thonny. Синім кольором виділена частина, алгориму, яка називається або підпрограмою-процедурою, або функцією-процедурою.
Реалізація.
print("Числа Тарасова")
def tarasov(n, k):
a, b=k**2+1, k**3+1
i=3
while a<n:
print(a,end=' ')
a,b=b,(2*i+1)*a+2*i*b
i+=1
print()
tarasov(10000, 2)
Протестувати виконання цього алгоритму декілька разів,
для цього треба натиснути на піктограму «зелений кружечок», що розташована на панелі інструментів
Завдання 4. Реалізувати даний алгоритм знаходження чисел послідовності Адоген на Python в Thonny. Синім кольором виділена частина, алгориму, яка називається або підпрограмою-процедурою, або функцією-процедурою.
Означення. Послідовність чисел, називається послідовність Adogen Aq(k,l,m,n), для натуральних чисел m, n, k, l, q , якщо виконуються такі умови:
1) A1(k,l,m,n)) = 0; для натурального n> 0, k>0, l >0, m>0,
2)Aq(k,l,m,n)) = Aq-1(k,l,m,n) +k*q+l, якщо Aq-1(k,l,m,n) -k*m-l <=0 і число Aq-1(k,l,m,n) +k*q+l ще не належить цій послідовності;
3)Aq(k,l,m,n)) = Aq-1(k,l,m,n) - k*q- l, якщо Aq-1(k,l,m,n) -k*m-l >0 і число Aq-1(k,l,m,n) - k*q- l ще не належить цій послідовності.
Реалізація.
print("Послідовність чисел Адоген: Aq(a,b,c,d)={}")
r=['None']*200
q=['None']*200
r[0]=0
ss=0
def adogen(n,k,l,s,t):
a=0
for m in range(1,n):
if a-k*m-l<=0:
a=a+k*m+l; r[m]=a;
else:
a=a-s*m-t; r[m]=a;
return r, ss
adogen(200, 1,1,1,1)
print(r)
for n in range(0,200):
q[n]=r[n]
for n in range(0,200):
for m in range(0,n-1):
if r[n]==r[m]:
q[n]=' '; ss=ss+1
print(q)
print("Фільтрування чисел Адоген від повторів")
print("Кількість чисел Адоген")
print(200-ss)
Протестувати виконання цього алгоритму декілька разів,
для цього треба натиснути на піктограму «зелений кружечок», що розташована на панелі інструментів
Завдання 5. Реалізувати даний алгоритм знаходження чисел послідовності Марека та Земана на Python в Thonny. Синім кольором виділена частина, алгориму, яка називається або підпрограмою-процедурою, або функцією-процедурою.
Реалізація.
print("Числа Marеkа")
r=['None']*10
def mareka(n, k):
a, b,c,d=0, 1,3,6
for i in range(0,n):
print(a,end=' ')
a, b,c,d=a+i+k-1, b+i+k, c+i+k+1, d+i+k+2
r[i]=d
print()
return r
mareka(10, 2)
print("Четвірки Земана")
z=['None']*10
def zeman(n):
a, b,c,d=0, 1,3,6
print(a, b,c,d)
for m in range(0,n):
a, b,c,d=a+m,b+a+m+1,c+b+m+2,d+c+m+3
z[m]=d
print(a, b,c,d)
return z
zeman(10)
print("Одновимірний масив чисел Земана",z)
print("Одновимірний масив чисел Марека",r)
print("Сума вiдповідних чисел Земана і Марека")
f=['None']*10
for m in range(0,10):
f[m]=z[m]+r[m]
print(f)
print("Добуток вiдповідних чисел Земана і Марека")
d=['None']*10
for m in range(0,10):
d[m]=z[m]*r[m]
print(d)
Протестувати виконання цього алгоритму декілька разів,
для цього треба натиснути на піктограму «зелений кружечок», що розташована на панелі інструментів
Результат виконаної практичної роботи це 5 файлів ( кодування програми та результати її виконання) надіслати вашому учителю на електронну скриньку:
vinnser@gmail.com (Сергій Петрович)
ktdfz@i.ua (Юрій Васильович)
******************************
Довідка про числа Фібоначчі