пʼятниця, 12 лютого 2021 р.

Дистанційна освіта з інформатики 15.02.2021 - 21.02.2021

 

Дистанційна освіта з інформатики в період лютий 2021 року

15.02.2021 - 21.02.2021

Тема:  Створення та реалізація  програм на Python3 в середовищі опису та виконання алгоритмів Thonny/

Додаткові модулі. Math,Random та Turtle.

Теоретична частина

.Зразки алгоритмів:  https://pythontask.pp.ua/

Команди для малювання в 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 способами, то вибір А і В (у вказаному порядку) можна здійснити mn способами.

 

Інакше кажучи, якщо певну дію (наприклад, вибір шля­ху від Києва до Чернігова) можна здійснити m різними спо­собами, після чого другу дію (вибір шляху від Чернігова до Новгород-Сіверська) можна здійснити n способами, то дві дії разом (вибір шляху від Києва до Чернігова, вибір шляху від Чернігова до Новгород-Сіверська) можна здійснити mспособами.

 

Задача 2. У розіграші першості країни з футбола бере участь 16 команд. Скількома способами можуть бути розподілені золота і срібна медалі?

Розв’язання. Золоту медаль може одержати одна з 16 команд. Після того, як визначено володаря золотої медалі, срібну медаль може мати одна з 15 команд. Отже, загальне число способів, якими може бути розподілена золота і срібна медалі, до­рівнює 1615 = 240.

 

Сформулюємо тепер основне правило комбінаторики (правило множення) в загальному вигляді.

Нехай треба виконати одну за одною k дій. Якщо першу дію можна виконати n1 способами, другу дію – n2 способами, третю дію – n3 способами і так до k-ї дії, яку можна вико­нати nk способами, то всі k дії разом можуть бути виконані  n1∙ n2∙ n3∙…∙ nk-1nk способами.

 

Задача 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, (числа повинні бути не­парними). Отже, загальна кількість чисел дорівнює 5663 = 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 французьку і англійсь­ку, один чоловік знає всі три мови. Скільки чоловік пра­цює в лабораторії? Скільки з них знає лише англійську мову? Скільки чоловік знає лише одну мову?

Розв'язання.

Позначимо п(А), п(Н), п(Ф) кількість співробітників у лабораторії, які знають англійську, німецьку та фран­цузьку  мови   відповідно,  а   п(НФ),  п(АН),  п(АФ), п(АНФ)   кількість чоловік, що знають по дві і три мови відповідно. Тоді, за правилом суми, загальне число співробітників у лабораторії дорівнює

п(А)+ п(Н) + п(Ф) - п(НФ) - п(АН) - п(АФ) + п(АНФ)  = 6 + 6 + 7 - 3 - 4 2 + 1 = 11.

Тільки англійську та німецьку мови знають

пАН = п(АН) п(АНФ) = 4-1= 3 чоловіка, тільки англійську і французьку

пАФ = п(АФ) - п( АНФ) = 2-1= 1 чоловік. Тоді тільки англійську мову знає

пА = п(А) - пАН  – пАФ - п( АНФ) =  6-3 -1-1 =1 чоловік. Тільки німецьку і французьку знають

пНФ = п(НФ) - п(АНФ) = 3 1 = 2 чоловіки. Тоді більше однієї мови знають

п(АНФ) + пАН + пАФ + пНФ = 1 +3+1+2 =7 чоловік, її тільки одну мову  p = п - т = 11- 7 = чоловіка.

Двома основними правилами комбінаторики є:

Принцип суми. Якщо множина 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 так, щоб жодних два послідовних числа не стояли у  клітинках, які мають спільну сторону і  будь-яке двоцифрове число не містило однакових цифр.

Зразки алгоритмів:  https://pythontask.pp.ua/  


Практична частина.

Завдання 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 (Юрій Васильович)


Немає коментарів:

Дописати коментар