Урок 57

Інструктаж з БЖД. Знаходження мінімального та максимального значення списку. 

Знаходження мінімального та максимального значення списку

Пошук елементів з програмної точки досить цікавий і на перший погляд не дуже зрозумілий. Це ми люди просто шукаємо визначаємо і навіть не задумуємось, як це відбувається. Сьогодні у нас є шанс розібратись не лише в програмному аспекті, але і в людському.

І. Опрацюйте теоретичний матеріал:

Для того щоб зрозуміти, як відбувається пошук найбільшого елемента деякої табличної величини, уявімо себе на місці виконавця алгоритму. Елементи табличної величини записані в пам’яті, доступ до комірок якої здійснюється за номерами елементів. Виконавець може одночасно відкривати доступ до однієї комірки. Нехай задано лінійну таблицю з n цілих чисел.

Виконаємо такий алгоритм:
1. Прочитаємо з пам’яті перший елемент таблиці. Його значення дорівнює 5. Запам’ятаємо його як максимальне — надамо його значення величині max;

2. Прочитаємо другий елемент таблиці. Його значення більше за max (6>5), тому «забудемо» про попереднє значення й запам’ятаємо значення max=6;

3. Прочитаємо третій елемент таблиці. Його значення менше за max (4<6), тому можна приступати до наступного кроку без зміни значення max.

Продовжимо таким чином кроки алгоритму, поки не будуть переглянуті всі елементи лінійної таблиці до n включно. На кожній ітерації циклу в змінній max міститиметься найбільше значення з пройденої частини лінійної таблиці, а по завершенні циклу змінна max зберігатиме максимальне значення в усьому масиві.

Пошук найменшого елемента масиву здійснюють за аналогічним  алгоритмом, знаходячи відповідно елемент (min), який є меншим від усіх переглянутих елементів.

Також для пошуку найбільшого та найменшого елементів списку у мові програмування Python можна використовувати відповідні функції max() та min() (пригадайте матеріал 8 класу).

ІІ. Опрацюйте навчальне відео:

ІІІ. Виконайте практичну роботу. Учням у яких немає можливості працювати з Python на комп’ютері можна складати програми у зошиті і надсилати для перевірки фотокопії своїх робіт. Для виконання практичної роботи можете використати онлайн систему https://techarge.in/online-python-compiler/:

Завдання 1. Створіть проект Випробування, у якому знаходять різницю між найбільшим і найменшим елементом лінійної таблиці з 10 дійсних чисел, які набувають значень від 5 до 10 випадково.

Алгоритм роботи

1. Відкрийте середовище програмуванн IDLE. Створіть новий файл.
2. У вікні редактора коду запишіть команди випадкового генерування елементів масиву та виведення списком у вікні виконання проекту.
import random
a = []
for i in range (10):
    a.append(round((10.0-random.random()*5.0),2))
print(a)
Зауважте, для того щоб отримати випадкове дійсне число за умовою 5 < x < 10 з двома знаками після коми, використано вираз: round((10.0 – random.random()*5.0),2)
3. У вікні редактора коду запишіть команди пошуку найбільшого та найменшого елементів масиву
max=a[0]
min=a[0]
for i in range (10):  
    if a[i]>max:
       max=a[i]  
  if a[i]<min:
        min=a[i]
4. У вікні редактора коду запишіть команди виведення максимального елемента, мінімального елемента та різниці значень max і min
print(“Максимальний елемент “, max)
print(“Мінімальний елемент “, min)
print(“Різниця “,(round(max-min,2)))
5. Збережіть програму у своїй папці із назвою Завдання_1. Протестуйте її.

Завдання 2.  У магазині утворилася черга з 5-ти покупців. Час обслуговування кожного покупця в черзі подано в таблиці.

Створіть проект Черга, у якому можна отримати:
а) номер покупця, якого обслуговували найкоротший час;
б) час найтривалішого обслуговування у черзі.

Завдання 3. Створіть нове вікно Ttinter та багаторядкове текстове поле. Розміри вікна та та атрибути текстового поля вказати самостійно. В текстове поле користувач буде вводити список з показниками цін на товар в різних магазинах. На виході маємо два написи один з мінімальною ціною, інший із максимальною ціною.

Алгоритм роботи

1. Відкрийте середовище програмуванн IDLE. Створіть новий файл.
2. Імпортуйте модуль Tkinter.
from tkinter import*
3. Створіть подію та функцію
def Calc():
    array = [int(i) for i in edit.get(‘1.0’, END).split()]
    if len(array) != 0:
        result1 = Label(text = “Мінімальне: ” + str(min(array)), font = “16”)
        result2 = Label(text = “Максимальне: ” + str(max(array)), font = “16”)
       result1.pack()
       result2.pack()
4. Створіть головне вікно «Пошук найбільшої та найменшої ціни», багаторядкове теквтове поле, кнопку та напис.
window = Tk()
window.title(“Пошук найменшої та найбільшої ціни”)
window.geometry(“400×300+300+250”)
label = Label(text = “Введіть список цін”, font = “16”)
edit = Text(window, width = 40, height=10)
but = Button(window, text = “Розрахувати”, font = “16”, command = Calc)
label.pack()
edit.pack()
but.pack()
window.mainloop()
5. Збережіть програму у своїй папці із назвою Завдання_3. Протестуйте її.

IV. Домашнє завдання:

Створіть програму для знаходження максимального парного елементу масиву та максимального непарного елементу масиву. Масив з 10 цілих чисел користувач вводить з клавіатури.

V. Додаткові матеріали (робота в Python з випадковими числами):

Завдання 1

Написати програму, яка шукає мінімальну та максимальне значення списку.


Мета: ознайомити учнів із методами знаходження мінімального та максимального елементів списку. Формувати вміння виділяти головне, актуалізувати, конспектувати, порівнювати, зіставляти. Забезпечити диференційований підхід. Установити зв'язки між засвоєними та новими знаннями. Формувати групи компетентностей: соціально-трудову, інформаційну, загальнокультурну, соціально-трудову, уміння вчитися.

Тип уроку: засвоєння нових знань.

Обладнання та наочність: комп’ютери, підручники, презентація, проектор.

Програмне забезпечення: Python.

 

Хід уроку

І. Організаційний етап

Сьогодні ми з вами продовжимо ознайомимось із алгоритмами опрацювання списків та навчимось знаходити довжину списку.

ІІ. Мотивація навчальної діяльності

ІІІ. Актуалізація опорних знань 

Розповідь учителя з демонстрацією презентації (слайди 4-9)

Фізкультхвилинка

Усвідомлення набутих знань та формування вмінь і навичок

 

Релаксація

Слайд 12. Вправа для профілактики короткозорості та порушення зору

Підведення підсумків уроку

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

Опрацювати конспект.