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

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

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

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

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

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

 

Тема уроку:  Складені умови

 

Онлайн-середовище Python

Підручник (автор Коршунова) с. 78, 113 повторити

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

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

1. Повторюємо теоретичні питання

Теоретичні питання

 

 

2. Виконати тестові завдання та надіслати скриншот результатів

 Тестові завдання

 

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

 Повторити с. 78 (елементи керування)

 

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

 

 

 

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

 Оператори з розгалуженням - програма для визначення існування трикутника

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

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

root.geometry('300x450')

   def click(): # створення функції для зміни кольору фону тексту

       a=float(entry1.get())

       b=float(entry2.get())

       c=float(entry3.get())

       if a<c+b and b<a+c and c<a+b:

          label['text']="Трикутник існує"

       else:

          label['text']="Трикутник не існує"

   

label1=Label(text='a=')

label1.pack(pady=10)


entry1=Entry()

entry1.pack(pady=10)


label2=Label(text='b=')

label2.pack(pady=10)


entry2=Entry()

entry2.pack(pady=10)


label3=Label(text='c=')

label3.pack(pady=10)


entry3=Entry()

entry3.pack(pady=10)


label = Label()

label.pack(pady=10)

 

button=Button(text="Існування трикутника", command=click)

button.pack(pady=10)


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

 

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

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

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

val = StringVar()                     # створення змінної для зв'язку між перемикачами

val.set("blue")                       # встановлення першого значення для створеної змінної

 

def color():                          # створення функції для зміни кольору фону тексту

  label.config(bg=val.get())

 

# створення перемикачів

green = Radiobutton(root, text="зелений", variable=val, value="green", command=color)   # команда command прив'язує подію

green.pack() yellow = Radiobutton(root, text="Жовтий", variable=val, value="yellow", command=color)

red = Radiobutton(root, text="червоний", variable=val, value="red", command=color)

red.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).

 

 

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