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

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

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

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

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

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

 

Тема уроку:  Оператори циклу

 

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

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

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

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

 

1. Опрацювати завдання уроку

        Завдання

 

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

 

 

3. Виконати завдання достатнього рівня 

 

---Скласти програми для реалізації задач 1 та 2, використовуючи цикли з параметром та складені умови (зразки програм дивись у довідковому матеріалі)

--- Задача 1

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

---Задача 2

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

 

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

Надіслати 2 скриншоти інтерактивних вправ та

скриншоти виконаних програм задач 1-2 :

достатній рівень - у Онлайн-середовищі без модуля Tkinter 

високий рівень - у Онлайн-середовищі з підключенням модуля 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)

 

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

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