Урок № 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 з випадковими числами):