Методична скарбничка
учителя математики та інформатики
Івахниченко Тамари Миколаївни

Все буде Україна!!!

Не ігноруємо сигнали «Повітряна тривога»!!! 

  ІІ семестр. Тема: Алгоритми та програми

     Критерії оцінювання навчальних досягнень

     Академічна доброчесність

 

Тема уроку:   Створення перемикачів  

 

Підручник

Опрацювати с. 87-90

Використані джерела

 

1.  Опрацювати матеріали уроку

 

Матеріали уроку

 2. Виконати практичні завдання - тексти завдань дивись у матеріалах уроку

 

 

 

Домашнє завдання

1. Надіслати скриншот однієї виконаної програми - середнього, достатнього або високого рівня

 2. Опрацювати с. 83-86

  

Бажаю успіхів! Бережіть себе!

 

 

Довідковий матеріал 

 Перемикачі - зразок

 Створити вікно з двома перемикачами з підписами «Синій» та «Жовтий», після вибору яких автоматично змінюється колір фону тексту, розташованого нижче.

from tkinter import * # імпортування графічної бібліотеки
root = Tk() # створення головного вікна
val = StringVar() # створення змінної для зв'язку між перемикачами
val.set("blue") # встановлення першого значення для створеної змінної

def color(): # створення функції для зміни кольору фону тексту
     label.config(bg=val.get())
# створення перемикачів
blue = Radiobutton(root, text="Синій", variable=val, value="blue", command=color) # команда command прив'язує подію
blue.pack()yellow = Radiobutton(root, text="Жовтий", variable=val, value="yellow", command=color)
yellow.pack()   # створення текстуlabel = Label(root, text="Текст")
label.pack()
root.mainloop() # задання команди відображення вікна при запуску

Список - зразок

Розмістити у вікні список з можливістю вибору одного елемента та кнопку, яка друкує обране у списку значення

 

from tkinter import *                             # імпортування графічної бібліотеки

root = Tk()                                       # створення головного вікна

# функція для друку елемента списку

def f():

    print(list.get(list.curselection()))          # друкуємо вибраний елемент списку по його індексу

 

list = Listbox(root, selectmode=SINGLE, width=15, height=5)           # створення та розміщення списку

list.pack(side=LEFT, padx=20)

 

for i in ['Python', 'Java', 'C', 'C++']:                              # додавання елементів у список        

    list.insert(END, i)

 

butt = Button(root, text='Друкувати', command=f)                      # створення та розміщення кнопки

butt.pack(side=LEFT, padx=5)

root.mainloop()                                   # задання команди відображення вікна при запуску

Малювання ліній (метод create_line)

from tkinter import * # імпортування графічної бібліотеки
root = Tk() # створення головного вікна
c = Canvas(root, width=200, height=200) # створення полотна шириною та висотою 200
c.pack()
c.create_line(15, 10, 180, 100) # малювання лінії з початком в точці (15,10) та кінцем (180,100)
c.create_line(50, 180, 170, 120, # координати другої лінії 
fill='red', # колір лінії
width=5, # ширина лінії
dash=(10, 2), # для малювання штрихами (довжина пунктиру, довжина пропуску)
activefill='yellow', # колір лінії, коли над нею мишка
arrow=LAST, # розміщення стрілки в кінці лінії
arrowshape="10 30 10") # розміри стрілки
root.mainloop() # задання команди відображення вікна при запуску

 

Малювання прямокутників (метод create_rectangle)

from tkinter import * # імпортування графічної бібліотеки

root = Tk() # створення головного вікна

c = Canvas(root, width=200, height=200) # створення полотна шириною та висотою 200

c.pack()

c.create_rectangle(10, 10, 100, 190) # малювання першого прямокутника з лівою верхньою вершиною (10,10) та правою  нижньою (100,190)

c.create_rectangle(120, 50, 190, 120, # вершини другого прямокутника

fill='lightpink', # колір заливки

outline='blue', # колір межі

width=3, # ширина межі

activedash=(5, 4)) # коли над прямокутником миша, межа стає штриховою

root.mainloop() # задання команди відображення вікна при запуску

 

Малювання овалів (метод create_oval)

from tkinter import * # імпортування графічної бібліотеки

root = Tk() # створення головного вікна

c = Canvas(root, width=200, height=220) # створення полотна шириною 200 та висотою 220

c.pack()

c.create_oval(10, 10, 190, 100) # малювання першого овалу

c.create_oval(50, 110, 150, 210, # вершини прямокутника, у який вписується овал

width=10, # ширина межі

fill='lightyellow', # колір заливки

outline='lightgreen') # колір межі

root.mainloop() # задання команди відображення вікна при запуску

 

Програмний код "Вітання"

from tkinter import *                     # імпортування графічної бібліотеки

# створення функції для дії кнопки

def f():

    label_data['text'] = "Вас звуть" + entry_name.get()

root = Tk()                                        # створення головного вікна

name = Label(root, text="Введіть Ваше ім'я: ")     # створення та розміщення мітки з текстом "Введіть Ваше ім'я: "

name.pack()

entry_name = Entry(root)                           # створення та розміщення однорядкового текстового поля

entry_name.pack()

button_get = Button(root, text="Згенерувати", command=f)     # створення та розміщення кнопки

button_get.pack()

label_data = Label(root, fg='red')               # створення та розміщення пустої мітки, яку змінює створена вище функція

label_data.pack()

root.mainloop()                                  # задання команди відображення вікна при запуску

Програмний код використання обробника подій - 

from tkinter import *

def btn_click(): # створення функції
    print('ОК')

window1=Tk()

btn=Button(text='Hello',command=btn_click) #після натискання на кнопку виконується функція
btn.pack()

window1.mainloop()

Програмний код введення тексту у текстове поле та взаємодії з обробником події (command=) кнопки

from tkinter import *

tk=Tk()

tk.geometry("300x250")

def click():
     print('Привіт', ent.get())

btn=Button(text='Привітання',command=click)
btn.place(x=150,y=100,width=100,height=35)

ent=Entry()
ent.place(x=150,y=40,width=110,height=35)


tk.mainloop()

Програмний код створення текстового поля

from tkinter import * #підключення бібліотеки

window1=Tk() #створення вікна

window1.geometry("370x300") #розмір вікна

window1["bg"]="black"#колір вікна

entry1=Entry(window1, bg="white", width=30, font="Times 13") #створення текстового поля

entry1.place(x=50, y=100) #розміщення текстового поля

window1.mainloop() #забезпечує постійну роботу головного вікна і його об'єктів до моменту, коли воно буде закрито

 

Текст програми зі створенням вікна з написом та кнопкою

import tkinter as tk #підключення бібліотеки

window = tk.Tk() #створення вікна
window.title("Заголовок вікна") #заголовок вікна
window.geometry("300x300")#розмір вікна
window["bg"]="green"#колір вікна

label = tk.Label(text="Напис!")#створення напису
label.pack()#розміщення напису

button = tk.Button(window,text="Натисни!")#cтворення кнопки
button.pack()#розміщення кнопки

tk.mainloop()#забезпечує постійну роботу головного вікна і його об'єктів до моменту, коли воно буде закрито

 

Програма, яка рисує квадрат (сторона квадрата =150, всі сторони різнокольорові)

import turtle #підключення бібліотеки графічного інтерфейсу

# Fullscreen the canvas
screen = turtle.Screen()
screen.setup(1.0, 1.0)

# Begin!
t = turtle.Turtle()

for c in ['red', 'green', 'blue', 'maroon']:
      t.color(c)
      t.forward(150)
      t.left(90)

screen.mainloop()

Лінійні алгоритми

1 варіант --значення катетів записуємо в програмі

a=3
b=4
import math
c=math.sqrt(a**2+b**2)
print("гіпотенуза с=",c)

2 варіант---значення катетів вводимо з клавіатури

a=float(input('введіть катет a='))              # введення дійсного - дробового числа a  з клавіатури
b=float(input('введіть катет b=')) # введення дійсного - дробового числа b з клавіатури
import math # підключення бібліотеки математичних функцій
c=math.sqrt(a**2+b**2)
print("гіпотенуза с=", c)

 

Знайти частку від ділення числа a на число b

a=int(input('введіть перше число '))  # введення цілого числа a з клавіатури
b=int(input('введіть друге число '))   #введення цілого числа b з клавіатури
c=a // b                                                    #обчислення частки від ділення числа a на число b
print('частка',c)                                      # друк-виведення на екран частки
Знайти остачу від ділення числа a на число b

a=int(input('введіть перше число '))  # введення цілого числа a з клавіатури
b=int(input('введіть друге число '))   #введення цілого числа b з клавіатури
c=a % b                                                    #обчислення остачі від ділення числа a на число b
print('остача',c)                                      # друк-виведення на екран остачі

 Алгоритми з розгалуженням

Задача № 1----Визначити, чи ділиться націло число a   на число b

a=int(input('введіть перше число   '))         # введення цілого числа  a з клавіатури
b=int(input('введіть друге число '))  #введення цілого числа b з клавіатури
c=a%b #обчислення остачі від ділення числа a на число b
print('остача',c) # друк-виведення на екран остачі
if c==0:print('ділиться націло') # перевірка- чи дорівнює остача 0
else:print('не ділиться націло')
Задача № 2.
Обчислити значення змінної с за умовою:
якщо a<0, то с=а-7, інакше с=а+7
a=int(input('введіть число ')) # введення цілого числа a з клавіатури
import math
if a<0:c=a-7
else:c=a+7
print('c=',c)

Увага: # - коментар, тобто пояснення команд алгоритму, що не впливає на результат

 

Цикл з параметром for
 

Для організації циклічних алгоритмів можна використати цикл з параметром for.

for <параметр циклу> in <об'єкт>     <блок команд>
  
Дія: блок команд тіла циклу буде виконуватись до тих пір, доки параметр циклу послідовно не набуде усіх значень, що містяться в об'єкті.

<об'єкт> може бути рядком, списком, словником тощо.

У циклічних алгоритмах часто застосовують функцію range - діапазон.

 
 
Завдання 1
for i in range(0, 5):     print ('Hello')

Результат:

Hello

Hello

Hello

Hello

Hello

Спершу змінна i набуває значення 0 і друкується слово "Hello". Далі відбувається повернення у цикл: змінна набуває значення 1 та знову друкується слово "Hello", і так далі. Останнім значенням змінної i буде 4 і знову надрукується слово "Hello". Таким чином, після виконання циклу на екрані з'явиться привітання 5 разів (від 0 до 4).

 

Завдання 2

1. Роздрукувати всі парні числа, менші 100.
 
1 варіант
for i in range(0, 100):    # змінна i "крокуватиме" від числа 0 до 99
  if i % 2 == 0:           # перевіряємо чи число парне, тобто остача від ділення на 2 дорівнює нулю
    print(i)               # виводимо число, яке задовольняє умову

або 

2 варіант

for i in range(0, 100, 2): # третій аргумент відповідає за крок параметра циклу (у попередньому варіанті крок був 1)
  print(i)

 



Copyright @ 2023