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

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

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

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

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

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

 

Тема уроку:  Інструктаж з БЖД. Практична робота. Складання та виконання алгоритмів з розгалуженнями та циклами

 

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

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

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

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

 

 Виконати завдання практичної роботи   

 

1. Виконати інтерактивну вправу (середній рівень)

 

   

2. Виконати завдання достатнього рівня в Онлайн-середовищі 

 

---Скласти програму для реалізації задачі 

--- Задача 1

          Знайти кількість всіх  натуральних чисел від 100 до 300, які діляться на 15 або на 7.
          Використати   складену умову.

 

 Скористатися прикладом програми

Знайти кількість всіх натуральних чисел від 10 до 100, які діляться на 7 або на 3

k=0
for i in range(10,101):
      if i % 7==0 or i % 3==0:

      k=k+1
 print('k=', k)

3. Виконати завдання  високого рівня в Онлайн-середовищі  Replit

   Задача 2.

 Знайти кількість всіх  натуральних чисел від 100 до 300, які діляться на 5 та на 7. Використати   складену умову

Зразок інтерфейсу

Скористатися прикладом програми для реалізації задачі достатнього рівня та задачі "Розгалуження" з графічним інтерфейсом

Задача.  Програма "Розгалуження" (з графічним інтерфейсом)

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

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

root.geometry('300x200')
root.title("Розгалуження")

def click(): # створення функції

        x=int(entry1.get())

        if x>0:
            y=x**2
       else: y=2*x
       entry.insert(0,str(y))

label1=Label(text='x=')
label1.place(x=10,y=10)

entry1=Entry()
entry1.place(x=90,y=10)

label3=Label(text='відповідь')
label3.place(x=10,y=70)

entry=Entry()
entry.place(x=90,y=70)

#label = Label()
#label.place(x=90,y=100)

button=Button(text="Виконати", command=click)
button.place(x=90,y=120)

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

 

Надіслати 

скриншот інтерактивної вправи та

скриншот виконаної програми задачі 1(достатній рівень)

скриншот виконаної програми задачі 2( високий рівень - у Онлайн-середовищі з підключенням модуля Tkinter)

 

 

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

 

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

 

Знайти суму всіх натуральних чисел від 10 до 100, які діляться на 17 або 15

s=0
for i in range(10,101):
      if i % 15==0 or i % 17==0:

      s=s+i
 print('s=', s)

Знайти суму всіх натуральних чисел від 10 до 100, які діляться на 17 і на 15

s=0
for i in range(10,101):
          if i % 15==0  and  i % 17==0:

                   s=s+i
print('s=', s)

 

 Задача.  Програма "Розгалуження" (з графічним інтерфейсом)

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

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

root.geometry('300x200')
root.title("Розгалуження")

def click(): # створення функції

        x=int(entry1.get())

        if x>0:
            y=x**2
       else: y=2*x
       entry.insert(0,str(y))

label1=Label(text='x=')
label1.place(x=10,y=10)

entry1=Entry()
entry1.place(x=90,y=10)

label3=Label(text='відповідь')
label3.place(x=10,y=70)

entry=Entry()
entry.place(x=90,y=70)

#label = Label()
#label.place(x=90,y=100)

button=Button(text="Виконати", command=click)
button.place(x=90,y=120)

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

 

 

 

Видрукувати  всі натуральні числа від 10 до 100, які діляться на 17 або 15

for i in range(10,101):
if i % 15==0 or i % 17==0: print(i)

 

Видрукувати  всі натуральні числа від 10 до 100, які діляться на 7 і на  5

for i in range(10,101):

if i % 5==0 and i % 7==0: print(i)

 

 

 Знайти частку від ділення числа 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)                      # друк-виведення на екран остачі

 

 

 

Знайти суму натуральних чисел від 4 до 10, тобто S = 4+5+6+7+8+9+10

s=0                              # значення змінної s зануляємо
for i in range(4,11): # змінна i "крокуватиме" від числа 4 до 10
s=s+i
print('s=', s)  

 

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

 Задача № 1

Обчислити значення змінної с за умовою:
якщо a<0, то с=а-7, інакше с=а+7
a=float(input('введіть число ')) # введення дійсного числа a з клавіатури

if a<0:c=a-7
else:c=a+7
print('c=',c)

 

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

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)

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

 

 

 

  

 

 

 

 

 

 

 

Copyright @ 2023