Дистанційна освіта з інформатики в період лютий 2021 року
15.02.2021 - 21.02.2021
Тема: Створення та реалізація програм на Python3 в середовищі опису та виконання алгоритмів Thonny/
Додаткові модулі. Math,Random та Turtle.
Теоретична частина
.
Команди для малювання в Python3
che
= turtle.Pen() #створення
черепашки che
che.forward(50) #черепашка che рухається
вперед на 50 пікселів
che.reset() # очистити і повернути в початкову позицію
che.clear() #
очистити і залишитись у поточній позиції
che.goto(x,y) # перемістити черепашку в координати
che.backward(100) # рухатись назад
che.up()
#
підняти перо
che.pensize(3) # товщина ліній черепашки
wn = turtle.Screen() # створення поля
wn.bgcolor("lightgreen") #
колір тла поля
wn.title("Tess
& Alex") # назва поля
che.color("blue") # колір ліній черепашки
che.begin_fill() # використання
шаблонів фігур черепашкою
che.color("blue") #
колір
фігури
команди
малювання #
наприклад для кола: che.circle(100)
che.end_fill() # закриття шаблонів фігур черепашкою
Осмиcлюємо властивості алгоритмів на текстових компетентнісних завданнях про числові множини:
Задача 1. З Києва до Чернігова можна дістатися пароплавом, поїздом,
автобусом, літаком; з Чернігова до Новгород – Сіверська – пароплавом і автобусом. Cкількома способами можна здійснити подорож за маршрутом Київ – Чернігів – Новгород – Сіверськ?
Розв’язання. Очевидно,
число різних шляхів з Києва до Новгород-Сіверська дорівнює 4∙2 = 8, бо, обравши
один з чотирьох можливих способів подорожі від Києва до Чернігова, маємо два
можливих способи подорожування від Чернігова до Новгород-Сіверська.
Такі міркування, які були проведені при розв'язуванні задачі
1, доводять справедливість такого простого твердження, яке будемо називати
основним правилом комбінаторики.
Якщо деякий вибір А можна здійснити m різними способами, а
для кожного з цих способів деякий другий вибір В можна здійснити n способами, то вибір А і
В (у вказаному порядку) можна здійснити m∙n способами.
Інакше кажучи, якщо певну дію (наприклад, вибір
шляху від Києва до Чернігова) можна здійснити m різними
способами, після чого другу дію (вибір шляху від Чернігова до
Новгород-Сіверська) можна здійснити n способами,
то дві дії разом (вибір шляху від Києва до Чернігова, вибір шляху від Чернігова
до Новгород-Сіверська) можна здійснити m∙n способами.
Задача 2. У розіграші першості країни з футбола бере участь 16 команд.
Скількома способами можуть бути розподілені золота і срібна медалі?
Розв’язання. Золоту медаль може одержати
одна з 16 команд. Після того, як визначено володаря золотої медалі, срібну
медаль може мати одна з 15 команд. Отже, загальне число способів,
якими може бути розподілена золота і срібна медалі, дорівнює 16∙15 = 240.
Сформулюємо тепер основне правило комбінаторики (правило
множення) в загальному вигляді.
Нехай треба виконати одну за одною k дій. Якщо першу дію
можна виконати n1 способами, другу дію – n2 способами, третю дію
– n3 способами і так
до k-ї дії, яку можна виконати nk способами, то всі k дії разом можуть бути
виконані n1∙ n2∙ n3∙…∙ nk-1∙nk способами.
Задача 3. Скільки чотиризначних чисел можна скласти з цифр 0, 1,2, 3,4,
5, якщо:
а) жодна цифра не повторюється
більше одного разу;
б) цифри можуть повторюватись;
в) числа повинні бути непарними?
Розв'язання. а) Першою цифрою числа може бути
одна з 5 цифр 1, 2, 3, 4, 5 (0 не може бути, бо тоді число не чотиризначне);
якщо перша цифра обрана, то друга може бути обрана 5 способами, третя – 4,
четверта – 3. Згідно з правилом множення загальне число способів дорівнює
5∙5∙4∙3 = 300.
б) Першою цифрою може бути одна
з цифр 1, 2, 3, 4, 5 (5 можливостей), для кожної з наступних цифр маємо 6 можливостей
(0, 1,2,3, 4, 5). Отже, число шуканих чисел дорівнює 5∙6∙6∙6=5∙ 63 =
1080.
в) Першою цифрою може бути одна
з цифр 1, 2, 3, 4, 5, а останньою – одна з цифр 1,3,5, (числа повинні бути непарними).
Отже, загальна кількість чисел дорівнює 5∙6∙6∙3 = 540.
ФОРМУЛИ
КІЛЬКОСТІ ЕЛЕМЕНТІВ СКІНЧЕНИХ МНОЖИН
Дуже
важливими для практичних задач є формули підрахунку кількості
різних елементів у декількох множинах, що містять спільні елементи, тобто
кількості елементів в об’єднанні двох або трьох множин.
Кількість
елементів об'єднання п(А+В) будь-яких двох скінченних
множин А і В обчислюється за формулою:
п(А+В) = п(А) + п(В) - п(АВ), де
п(А) - кількість елементів множини А,
п(В) - кількість
елементів множини В,
п(АВ) - кількість елементів перетину двох множин А та В.
Для будь-якої трійки скінченних множин А1,
А2, А3 має місце формула кількості елементів
множини п(A1 +А2 +А3) ,
що є об’єднанням трьох множин, тобто
A1+ А2 +А3:
п(A1 +А2 +А3) = п(А1)
+ п(А2) + п(А3) - п(А1А2) - п(А1 А3) - п(А2А3) + п(А1А2 А3).
Наводимо приклад використання поданих вище формул.
Задача 4. У лабораторії науково-дослідного інституту працює декілька
чоловік, причому кожний з них знає хоча б одну іноземну мову, 6 чоловік знають
англійську, 6 ‒ німецьку, 7 ‒ французьку, 4 знають англійську і німецьку, 3 ‒ німецьку і французьку, 2 ‒ французьку і англійську, один чоловік знає всі три мови. Скільки чоловік
працює в лабораторії? Скільки з них знає лише англійську мову? Скільки чоловік
знає лише одну мову?
Розв'язання.
Позначимо п(А), п(Н), п(Ф) кількість
співробітників у лабораторії, які знають англійську, німецьку та французьку
мови відповідно, а п(НФ),
п(АН), п(АФ), п(АНФ) ‒ кількість чоловік, що знають по дві і три мови відповідно. Тоді, за правилом суми, загальне число співробітників у лабораторії дорівнює
m = п(А)+ п(Н) + п(Ф)
- п(НФ) - п(АН) - п(АФ) + п(АНФ) = 6 + 6 + 7 - 3 - 4 - 2
+ 1 = 11.
Тільки англійську та німецьку мови знають
пАН =
п(АН) ‒ п(АНФ) = 4-1= 3 чоловіка, тільки англійську і французьку
пАФ =
п(АФ) - п( АНФ) = 2-1= 1 чоловік.
Тоді тільки англійську мову знає
пА =
п(А) - пАН – пАФ - п( АНФ) = 6-3
-1-1 =1 чоловік. Тільки німецьку і французьку знають
пНФ =
п(НФ) - п(АНФ) = 3 ‒ 1 = 2 чоловіки. Тоді більше однієї мови знають
k = п(АНФ)
+ пАН + пАФ + пНФ = 1 +3+1+2
=7 чоловік, її тільки одну мову p = п - т = 11- 7 = 4 чоловіка.
Двома основними правилами комбінаторики є:
Принцип суми. Якщо множина A містить m елементів, а множина B – n
елементів, і ці множини не перетинаються, то об’єднання двох множин A+B містить m+n елементів.
Принцип добутку. Якщо множина A містить m елементів, а множина B – n
елементів, то добуток
двох множин AB містить m∙n елементів, тобто пар.
Приклад. При A={a, b, c} розміщення з повтореннями по два
елементи – це пари (a,a), (a,b), (a,c), (b,a), (b,b), (b,c), (c,a), (c,b),
(c,c). Або, принцип добутку: 3∙3=9 пар.
Приклад. В одному з відділів магазину покупці
зазвичай купляють або один торт, або коробку цукерок. Одного дня було продано
57 тортів та 36 коробок цукерок. Скільки було покупців, якщо 12 з них придбали
і торт, і коробку цукерок? Використаємо принцип суми: 57 + 36 - 12 = 81.
Задача 5. Заповнити таблицю 1х21, використовуючи цифри 1,
2, 3, 4, 5 та дотримуючись таких умов: 1) будь-які дві сусідні цифри в таблиці
не рівні; 2) всі двоцифрові числа, що утворені двома сусідніми цифрами, відрізняються
між собою, якщо читати їх зліва направо.
Задача 6. Розставте числа від 1 до 8 у зафарбованих
клітинках таблиці 3х4 так, щоб жодних два послідовних числа не стояли у
клітинках, які мають спільну вершину.
Задача 7. Розставте двоцифрові числа, які
утворені з цифр 1, 2, 3, 4, 5 у клітинках таблиці 4х4 так, щоб
жодних два послідовних числа не стояли у клітинках, які мають спільну
сторону і будь-яке двоцифрове число не містило однакових цифр.
Практична частина.
Завдання
1. Створити
та реалізувати алгоритм мовою
програмування Python3 в середовищі Thonny.
Реалізація.
import turtle
print("Паралелограм
від черепахи")
print("Паралелограм
з діагоналями")
t=turtle.Pen()
for i in
range(1, 3):
t.forward(90)
t.left(60)
t.forward(180)
t.left(120)
t.goto(180,156)
t.up()
t.goto(90,156)
t.down()
t.goto(90,0)
Завдання
2. Створити
алгоритм та реалізувати мовою програмування Python3
в середовищі Thonny.
Реалізація.
import turtle
print("Рівнобічна трапеція від черепахи")
print("Рівнобічна трапеція з діагоналями")
t=turtle.Pen()
t.width(10)
t.color(1,0,1)
t.forward(180)
t.left(120)
t.forward(80)
t.left(60)
t.forward(100)
t.left(60)
t.forward(80)
t.left(60)
t.width(6)
t.color(0,1,0)
t.goto(140,69)
t.up()
t.goto(180,0)
t.down()
t.goto(40,69)
Завдання
3. Створити
та реалізувати алгоритм мовою програмування Python3
в середовищі Thonny.
Реалізація.
import turtle
print("Дельтоїд від черепахи")
print("Дельтоїд з діагоналями")
t=turtle.Pen()
wn=turtle.Screen() #створення поля-тла
wn.bgcolor("lightgreen")
#колір тла-поля
wn.title("vinnser") #назва поля-тла
t.color("blue")
t.width(2)
t.color(0,0,1)
t.up()
t.goto(0,-20)
t.down()
t.goto(100,153)
t.goto(100,153)
t.goto(0,253)
t.goto(-100,153)
t.goto(0,-20)
t.width(2)
t.color(1,0,0)
t.goto(0,253)
t.up()
t.goto(100,153)
t.down()
t.goto(-100,153)
Завдання
4. Створити
та реалізувати алгоритм мовою програмування Python3
в середовищі Thonny.
Реалізація.
import
turtle
print("Kвадрат
із діагоналями")
print("Kвадрат
із вписаним колом")
print("Kвадрат
із описаним колом")
wn=turtle.Screen() #створення поля
wn.bgcolor("lightgreen") #колір тла поля
wn.title("vinnser") #назва поля
t=turtle.Pen()
t.width(2)
for i in
range(1,5):
t.forward(170)
t.left(90)
t.up()
t.goto(85,0)
t.down()
t.begin_fill()
t.color("blue")
t.circle(85)
t.up()
t.goto(170,0)
t.left(45)
t.down()
t.color("OliveDrab")
t.width(3)
t.circle(120.2)
t.goto(0,170)
t.up()
t.goto(170,170)
t.down()
t.goto(0,0)
t.t.end_fill()
Завдання
5. Створити
та реалізувати алгоритм мовою програмування Python3
в середовищі Thonny.
Реалізація.
import turtle
print("Алгоритм
зміни позиції під час виконання куба")
t=turtle.Pen()
t.up() #вказівка не залишати слід від
пензлика
t.goto(-50,-50) #вказівка перемістити пензлик в точку (х, у)
t.down() #вказівка залишати слід від пензлика
t.width(2) #вказівка товщини пензлика на 2
пікселі
t.color(0.4,
0.6, 0.1) #вказівка кольору пензлика
for k in
range(1, 3): #вказівка повторення(цикл) дій
від 1 до 2
for j in range(1, 5): #вказівка повторення(цикл) дій
від 1 до 4
t.shape('arrow') #викликається новий виконавець вказівок в модулі
turtle
t.forward(200) #вказіка руху вперед пензлика на
100 пікселів
t.left(90) #вказіка повороту пензлика вліво
на 90 градусів
t.width(3)
#зміна товщини пензлика на 3 пікселі
t.goto(0,0) #вказівка перемістити пензлик в точку (х, у)
t.down()
#вказівка
залишати слід від пензлика
t.color(0.0,
0.9, 0.5)
t.goto(0,
200) #вказівка перемістити пензлик в
точку (х, у)
t.goto(-50,150) #вказівка перемістити пензлик в точку (х, у)
t.goto(150,150) #вказівка перемістити пензлик в точку (х, у)
t.goto(200,200) #вказівка перемістити пензлик в точку (х, у)
t.goto(200,0) #вказівка перемістити пензлик в точку (х, у)
t.goto(150,-50) #вказівка
перемістити пензлик в точку (х, у)
Завдання
6. Створити
та реалізувати алгоритм мовою програмування Python3
в середовищі Thonny.
Реалізація.
import
turtle
print("Алгоритм
зміни позиції для виконавця
піраміди")
t=turtle.Pen()
t.up() #вказівка не залишати слід від
пензлика
t.goto(-100,-100) #вказівка перемістити пензлик
в точку (х, у)
t.down() #вказівка залишати слід від
пензлика
t.width(2) #вказівка товщини пензлика на
2 пікселі
t.color(0.4,
0.6, 0.1) #вказівка кольору пензлика
t.goto(100,
-100) #вказівка перемістити пензлик
в точку (х, у)
t.goto(130,-60) #вказівка перемістити пензлик
в точку (х, у)
t.goto(-70,-60) #вказівка перемістити пензлик
в точку (х, у)
t.goto(-100,-100) #вказівка перемістити пензлик
в точку (х, у)
t.up() #вказівка не залишати слід від
пензлика
t.goto(15,-80) #вказівка перемістити пензлик
в точку (х, у)
t.down() #вказівка залишати слід від
пензлика
t.goto(15,220) #вказівка перемістити пензлик
в точку (х, у)
t.goto(-70,-60) #вказівка перемістити пензлик
в точку (х, у)
t.goto(130,-60) #вказівка перемістити пензлик
в точку (х, у)
t.goto(15,220) #вказівка перемістити пензлик
в точку (х, у)
t.goto(100,
-100) #вказівка перемістити пензлик
в точку (х, у)
t.goto(-100,
-100) #вказівка перемістити пензлик
в точку (х, у)
t.goto(15,220) #вказівка перемістити пензлик
в точку (х, у)
Завдання
7. Створити
та реалізувати алгоритм мовою програмування Python3
в середовищі Thonny.
Реалізація.
import turtle
print("Логотип:
Спіральні прямокутники із cпільною вершиною")
t=turtle.Pen()
a=5
t.begin_fill()
for j in
range(1,7):
for j in range(1,5):
t.forward(a)
t.left(90)
t.forward(a/2)
t.left(90)
t.color(0, 0.1, 0.1)
Результат виконаної
практичної роботи це три файли( три довільні пайтон-проекти із практичної частини з результатами виконання програм) надіслати вашому учителю на
електронну скриньку:
vinnser@gmail.com (Сергій Петрович)
ktdfz@i.ua (Юрій Васильович)
Немає коментарів:
Дописати коментар