Дистанційна освіта з інформатики в період березня 2021 року
19.04.2021 - 24.04.2021
Конспект уроку для учнів
Тема:Створення нелінійних алгоритмів з різними типами даних. Реалізація алгоритмів повторення і розгалуження. Види циклів і розгалужень. Операції над масивами. Створення масивів та операції над масивами.
Мотиваційна частина
Запитання: Чому програмісту потрібно мати хорошу пам’ять та знати всі типи алгоритмів?
Відповідь. Мова програмування – не іноземна мова, в якій для розуміння базових речей потрібно пам’ятати близько 1500 слів. Більшість мов програмування мають схожий синтаксис, що містить подібні керуючих конструкцій, які при частій практиці не вимагають цілеспрямованого заучування. Те, що ви не можете запам’ятати, ви завжди можете знайти в Мережі або в офіційних інструкціях. Пам’ятати все не тільки не обов’язково, але і не раціонально: деякі знання будуть забуватися або спотворюватися в пам’яті. Навіть відомі програмісти зізнаються в тому, що не завжди можуть пригадати найпростіший алгоритм. Крім того, сучасні середовища розробки мають спливаючі підказки, що допомагають згадати ті чи інші інструкції.
Алгоритми – основа програмування. Деякі з них прості, інші для розуміння вимагають особливих знань. У реальній роботі від програміста не потрібно вміти створювати алгоритми з нуля, тому що фундаментальні алгоритми вже реалізовані і налагоджені так, що мають хороші показники продуктивності і надійності. Ці алгоритми можуть поставлятися як модулі, що підключаються до вихідного коду, або як частина самої мови програмування. Сучасне програмування зменшило число рутинних операцій в процесі створення ПЗ, що звільнило програмісту час для вирішення дійсно корисних завдань. Однак, розібратися і зрозуміти алгоритми НЕОБХІДНО!
Теоретична частина
Практична частина
Циклічні
алгоритми мовою програмування Python
для числових завдань
Завдання 1. Створити та реалізувати мовою програмування Python в середовищі програмування Thonny алгоритм
для знаходження
трійок цілих чисел, що задовольняють нелінійне рівняння з трьома змінними: x2+y2=z3, якщо
x=m3-3mn2=m*m*m-3*m*n*n
y=3m2n-n3=3*m*m*n-n*n*n
z=m2+n2=m*m+n*n
Реалізація.
print('Алгоритм пошуку цілих
pозвязків нелінійного рівняння х*х+у*у=р*р*р')
t=7; k=3; g=['None']*k; p=['None']*k; q=['None']*k;
s=0
for i in range(k):
for m in range(1,t):
for n in range(1,t):
s=s+1
g[i]=m*m*m-3*m*n*n
p[i]=3*m*m*n-n*n*n
q[i]=m*m+n*n
print(s,' -a трійка чисел, що є
розвязком рівняння х*х+у*у=р*р*р, (х,у,р)=(', g[i],'; ',p[i], ' ;',q[i],')')
Протестувати
програму декілька разів:
Тест
1. Якщо t=7;
Тест
2. Якщо t=9;
Тест
3. Якщо t=30;
Завдання 2. Створити та реалізувати мовою програмування Python в середовищі програмування Thonny алгоритм
для створення елементів числового трикутнику Ніколо Тарталья
Зразок числового трикутника на сумах квадратів натуральних чисел Ніколо Тарталья:
32+42=52
102+112+122=132+142
212+222+232+242=252+262+272
362+372+382+392+402 = 412 +422+432+442
552+562+572+582+592+602 = 612 +622+632+642+652
*******права
частина******************ліва частина*****************
(n(2n+1))2+ ((n(2n+1))2+1)+ … +(4n2(1+n)2-1) +4n2(1+n)2 = (4n2(1+n)2+1) + (4n2(1+n)2+2) + …
+ ((n(2n+3))2-1) +(n(2n+3))2
Реалізація.
Використано цикл з лічильником.
print("Створення елементів числового трикутника
Ніколо Тарталья на сумах квадратів на Python3")
h=6; k=100;
z=['None']*k;
for n in range(h):
print(n,
"-ий ряд для числового трикутника Ніколо Тарталья")
print(n,
"-ий ряд. Права частина ряду для числового трикутника")
for j in
range(n+1):
z[j]=n*(2*n+1)+j
print(j,
"Числа для числового трикутника", z[j])
print(n,
"-ий ряд. Лівачастина ряду для числового трикутника")
for j in
range(n):
z[j]=n*(2*n+2)+1+j
print(j,
"Числа для числового трикутника", z[j])
Протестувати програму декілька разів:
Тест
1. h=10;
Тест
2. h=17;
Тест
3. h=23;
Завдання 3. Створити та реалізувати мовою програмування Python в середовищі програмування Thonny алгоритм
для обчислення суми других степенів перших натуральних чисел
12+22+32+…+(n-1)2+n2=n*(n+1)*(2*n+1)//6
Реалізація. Використано цикл з лічильником та цикл з передумовою
print("Обчислення суми
2-их степенів перших натуральних чисел
на Python3")
p=4; k=5; z=['None']*k
for i in range(k):
z[i]=0;
for n in range(k):
z[n]=int(n*n)
print(n, "-ий номер. Обчислення 2-их
степенів",z[n])
sz=0; sf=0
print('Результат обчислення
циклом суми 2-их степенів',p,' перших натуральних чисел:')
for n in range(p-1):
sz=sz+int(z[n])
sf=n*(n+1)*(2*n+1)//6
print(n, "-ий номер. Обчислення суми 2-их степенів ",n,"чисел циклом
з лічильником sz=",sz)
print(n, "-ий номер. Обчислення суми 2-их степенів ",n," чисел формулою sf=",sf)
n=0; s2f=0; s2z=0;
while p>n:
n=n+1
s2z=s2z+int(z[n])
s2f=n*(n+1)*(2*n+1)//6
print(n, "-ий номер. Обчислення суми 2-их степенів ",n,"чисел циклом з передумовою s2z=",s2z)
print(n, "-ий номер. Обчислення суми 2-их степенів ",n," чисел формулою s2f=",s2f)
else:
print("вихід із циклу")
Протестувати програму декілька разів:
Тест1.
Якщо p=22;
k=21;
Тест2.
Якщо p=32;
k=31;
Тест3.
Якщо p=72;
k=71
Завдання 4. Створити та
реалізувати мовою програмування Python в середовищі програмування Thonny алгоритм
для знаходження
трійок цілих чисел, що задовольняють нелінійне рівняння з трьома змінними: u2+y2=zx, якщо
x= r2+c2s2=r*r+c*c*s*s
y=pr+c2qs=p*r+c*c*q*s
z=p2+c2q2=p*p+c*c*q*q
u=cps +cqr=c*p*s-c*q*r
Реалізація.
print('Алгоритм пошуку цілих pозвязків нелінійного рівняння
u*u+y*y=x*z')
k=4; t=4; w=['None']*k; v=['None']*k; f=['None']*k;
h=['None']*k;
m=0
for i in range(k):
for r in range(1,t):
for p in range(1,t):
for c in range(1,t):
for s in
range(1,t):
for q in
range(1,t):
m=m+1
v[i]=r*r+c*c*s*s #x
f[i]=p*r+c*c*q*s #y
w[i]=p*p+c*c*q*q #z
h[i]=c*p*s-c*q*r #u
print(m,'
-a трійка чисел, що є розвязком рівняння u*u+y*y=x*z, (x,y,z,u)=(', v[i],';
',f[i], '; ',w[i],'; ',h[i],')')
Протестувати програму декілька разів:
Тест1.
Якщо t=5; k=5;
Тест2.
Якщо t=7; k=6;
Тест3.
Якщо t=6; k=7
Завдання 5. Створити та реалізувати мовою програмування Python в середовищі програмування Thonny алгоритм
для знаходження трійок цілих чисел, що задовольняють
нелінійне рівняння з трьома змінними: u2+y2=zx, якщо
z=a2+b2=a*a+b*b
x= d2+c2=d*d+c*c
y=ac+bd=a*c+b*d
u=ad -bc=a*d+b*c
Реалізація.
print('Алгоритм пошуку цілих pозвязків нелінійного рівняння
u*u+y*y=x*z')
t=4; k=4;
w=['None']*k; v=['None']*k; f=['None']*k; h=['None']*k;
s=0
for i in range(k):
for a in range(1,t):
for b in range(1,t):
for c in range(1,t):
for d in
range(1,t):
s=s+1
w[i]=a*a+b*b #z
v[i]=d*d+c*c #x
f[i]=a*c+b*d #y
h[i]=a*d+b*c #u
print(s,' -a
трійка чисел, що є розвязком рівняння u*u+y*y=x*z, (x,y,z,u)=(', v[i],';
',f[i], '; ',w[i],'; ',h[i],')')
Протестувати програму декілька разів:
Тест1.
Якщо t=5; k=5;
Тест2.
Якщо t=7; k=6;
Тест3.
Якщо t=6; k=7
Завдання 6. Створити та
реалізувати мовою програмування Python в середовищі програмування Thonny алгоритм
для знаходження трійок цілих чисел, що задовольняють
нелінійне рівняння з трьома змінними: a2+2b3=cd, якщо
a=x3+y3=x*x*x+y*y*y
b=xy=x*y
c=x2+y2=x*x+y*y
d= x4+y4 -x2y2=
x*x*x*x +y*y*y*y-x*x*y*y
Реалізація.
print('Алгоритм пошуку цілих pозвязків нелінійного рівняння
a*a+2*b*b*b=c*d')
k=4; t=7;
w=['None']*k; v=['None']*k; f=['None']*k; h=['None']*k;
s=0
for i in range(k):
for y in range(1,t):
for x in range(1,t):
s=s+1
w[i]=x*x*x+y*y*y #a
v[i]=x*y #b
f[i]=x*x+y*y #c
h[i]=x*x*x*x
+y*y*y*y-x*x*y*y #d
print(s,' -a трійка
чисел, що є розвязком рівняння a*a+2*b*b*b=c*d, (a,b,c,d)=(', w[i],'; ',v[i],
'; ',f[i],'; ',h[i],')')
Протестувати програму декілька разів:
Тест1.
Якщо t=5; k=5;
Тест2.
Якщо t=7; k=6;
Тест3.
Якщо t=6; k=7
vinnser@gmail.com
(Сергій Петрович)
ktdfz@i.ua (Юрій Васильович)
Завдання F для самостійного
програмування
Задання F1. Створити та реалізувати мовою програмування Python3 в середовищі програмування Thonny
алгоритм пошуку цілочисельних розв’язків на числових
проміжках [-d; d], де d - ціле число, рівняння
1 + 18n+ n2 = (2+n)(59+n),
де n - ціле невідоме числa.
Задання F2. Створити та реалізувати мовою програмування Python3 в середовищі програмування Thonny
алгоритм пошуку цілочисельних двійок-розв’язків (m;n) на
числових проміжках [-t; t], де t - ціле
число, рівняння
m2 + n2
= (m-6)(m+n+30),
де m,n - цілi невідомі числa.
Задання F3. Створити та реалізувати мовою програмування Python3 в середовищі програмування Thonny
алгоритм пошуку цілочисельних трійок-розв’язків (k;m;n) на
числових проміжках [-r; r], де r - ціле
число, рівняння
(m-1)2 + n2
+ (k+1)2=k(m-1)+mn+(k+1)n,
де k,m,n, - цілi невідомі числa.
Задання F4. Створити та реалізувати мовою програмування Python3 в середовищі програмування Thonny
алгоритм пошуку цілочисельних трійок-розв’язків (k;m;n) на
числових проміжках [-h; h], де h - ціле
число, рівняння
m2(n-1)+k2n+(n+1)2m=(n-1)3+m3+(k+1)3
де k,m,n - цілi невідомі числa.
Задання F5. Створити та реалізувати мовою програмування Python3 в середовищі програмування Thonny
алгоритм пошуку цілочисельних трійок-розв’язків (k;m;n) на числових проміжках [-s; s], де s - ціле число, рівняння
m4n+k4m+n4k
= n5 +m5+k5,
де k,m,n, - цілi невідомі числa.
Задання F6. Створити та реалізувати мовою програмування Python3 в середовищі програмування Thonny
алгоритм пошуку цілочисельних четвірок-розв’язків (k;m;n;р) на числових проміжках [-g; g], де g - ціле число, рівняння
(mn+kp)2=((n-1)2+(m-1)2)((k+1)2+(p+1)2)
де k,m,n,p - цілi невідомі числa.
Результат виконаної
практичної роботи це файли( із результатами тестування
програм) надіслати вашому учителю на електронну скриньку:
vinnser@gmail.com
(Сергій Петрович)
ktdfz@i.ua (Юрій Васильович)
Немає коментарів:
Дописати коментар