Урок 21. Пошук у масиві за певними критеріями.
Урок 22. Зміна порядку елементів масиву.
Урок 23. Пошук у масиві (списку) за певними критеріями
Приклад програми якщо впорались з 1 етапом
Етап 2. Програмування подій
Обчисліть суму парних елементів мписку а, заповнених випадковими числами.
В одновимірному масиві можна виконувати наступні види пошуків:
• пошук усіх елементів з певними властивостями;
• пошук першого елемента з певними властивостями;
• пошук останнього елемента з певними властивостями.
Існує декілька реалізацій цих алгоритмів пошуку — розглянемо
найбільш уживані, створивши програми до відповідних практичних вправ.


№ 1
Функція сортування
Завдання
Урок 23. Пошук у масиві (списку) за певними критеріями
Проект "Піца" (EasyGUI)
Користувачеві пропонується вибір начинок для піци:
import easygui
toppings= ['шинка','помідори','сир','перець','курка','ананас','кукурудза','печериці']
skladovi=easygui.multchoicebox('Оберіть додатки для піци',choices=toppings)
Залежно від обраних додатків, до базової ціни додається вартість окремих компонентів:
price=20
if 'помідори' in skladovi:
price+=8
(Самостійно допишіть для 'шинка', 'сир', 'перець', 'курка', 'ананас', 'кукурудза', 'печериці'. Вартість кожного компонента вказуєте самостійно)
Далі слід обрати розмір піци:
Залежно від обраного розміру, ціна множиться на відповідний коефіцієнт:
if size=='мала':
price *= 0.75
(Самостійно допишіть для 'середня', 'велика'. Коефіцієнт вкажіть самостійно)
Після цього виводиться ціна вибраної піци:
easygui.msgbox(price)
Доповніть проєкт картинками.
easygui.msgbox(price,image="p.jpeg")
Роботу надішліть на електронну адресу вчителя.
Перейдіть за посиланням https://replit.com/new/python3
Гра полягає у створенні написів різними кольорами. Гравцеві потрібно вибрати колір, яким написано текст. Складність полягає у тому, що текст - це теж назва кольору, але не того, яким написано цей текст.
Для гри потрібно імпортувати модулі малювання (tkinter), випадкових чисел (random) та графічного інтерфейсу (easygui)
Після створення полотна потрібно визначити список кольорів kolory. Бажано підібрати такі кольори, назви яких будуть відомі та зрозумілі гравцям, а також такі, що відрізняються між собою. Наприклад, не бажано включати у список такі схожі кольори, як brown та chocolate.
Для виведення тексту певного кольору на полотно використовується команда
canvas.create_text(x, y, text="Текст", fill="Колір", font="Times 25")
x, y - координати розміщення тексту
Times 25 - назва шрифту та розмір літер
Для надання гравцеві можливості вибрати колір, використаємо елемент кнопкового вибору:
user = easygui.buttonbox("Який колір тексту?", choices = kolory )
У змінній user зберігається відповідь користувача. Цю відповідь можна порівнювати з тим кольором, яким насправді написано текст (властивість fill текстового напису).
Гра має продовжуватись, генеруючи нові кольори та слова, допоки користувач не зробить помилки
Складіть бургер
https://www.mostfungames.com/goldburger-to-go.htmЗавдання полягає в тому, щоб розвивати усі складові острова так, щоб досягнути максимального рівня в усіх галузях.
Розвивайте острів:
https://www.crazygames.com/game/grow-island
https://www.crazygames.com/game/grow-valley
Розвивайте вежу:
https://www.crazygames.com/game/grow-tower
Доступ до окремих елементів списку здійснюється через вказання імені списку і порядкового номера (індекса) конкретного елемента у квадратних дужках. Варто пам'ятати, що нумерація починається з нуля. Можна також нумерувати елементи списку від'ємними числами (з кінця списку).
https://pythontutor.com/live.html#mode=edit
Задача 1. Сортування обміном. Метод "бульбашки”
Проходимо список стільки разів, скільки у ньому є елементів-1 Щоразу переглядаємо увесь список (крім останнього елемента) (можна до кінця відсортованої частини) При потребі міняємо елементи місцями for perebir in range(9): for nomer in range(9): if spysok[nomer]>spysok[nomer+1]: k=spysok[nomer] spysok[nomer]=spysok[nomer+1] spysok[nomer+1]=k Інший запис: spysok[nomer],spysok[nomer+1]=spysok[nomer+1],spysok[nomer]
Задача 2. Сортування вибором
Проходимо список стільки разів, скільки елементів-1
Щоразу знаходимо найменший елемент та його номер і міняємо його місцями з поточним
for perebir in range(9):
print(spysok[perebir:10])
fragment=spysok[perebir:10]
m=fragment.index(min(fragment))
k=m+perebir
spysok[k],spysok[perebir]=spysok[perebir],spysok[k]
print(spysok)
Інший запис (без функцій min та index)
for n in range(10):
m=spysok[n]
for nomer in range(n,10):
if m>=spysok[nomer ]:
m=spysok[nomer ]
a=nomer
k=spysok[n]
spysok[n]=spysok[a]
spysok[a]=k
print(spysok)
Задача 3. Сортування вставкою
Проходимо список стільки разів, скільки елементів, починаючи з другого
Записуємо елемент у допоміжну змінну, і проходимо список у зворотньому напрямку, поки не знайдемо правильне місце для елемента.
При цьому всі пройдені елементи зміщуються на 1
for perebir in range(10):
j = perebir - 1
element = spysok[perebir]
del spysok[perebir]
while (j >= 0) and (spysok[j] > element):
j = j-1
spysok.insert(j + 1, element)
print(spysok)
Інший спосіб (без функцій del та insert)
for n in range(1,10):
a=n
print(spysok[a])
while (spysok[a] > spysok[a-1]) and (a > =0):
k=spysok[a]
spysok[a]=spysok[a-1]
spysok[a-1]=k
a-=1
print(spysok)
Зміна порядку елементів
Додавання елементів до списку
spysok.append(k) - додає 1 елемент k у кінець списку
spysok.insert(n,k) - додає 1 елемент k всередину списку, на заданий номер n
spysok.extend(a,b,c) - додає кілька елементів a,b,c у кінець списку
Видалення елементів
letters.remove('c')
del letters[3]
lastLetter = letters.pop()
Пошук елемента у списку
'a' in letters
Номер елемента
letters.index('d')
Найбільший елемент
max(spysok)
Номер найбільшого елемента
spysok.index(max(spysok))
Функція - це виокремлений блок коду, до котрого можна неодноразово звертатись під час роботи програми Функція може приймати певні значення (аргументи) та повертати результати.Функції та методи сортування
Функції та методи - це вбудовані команди (послідовності команд, підпрограми), котрі застосовуються до об'єктів основної програми.
Функція - іменована послідовність команд, котра, як правило, має результат, котрий повертається в основну програму. Наприклад, sorted(spysok) . Функція має аргумент - назву списку, який пишеться в дужках. Функція повертає результат, але не змінює самого списку.
Метод - функція, котра використовується з об'єктами певного типу (класу). Першим формальним параметром є ім'я об'єкту. Наприклад, spysok.sort(). Метод застосовується до конкретного об'єкту (списку), і змінює його.
Наприклад, розглянемо початковий список
spysok=[1,5,2,8,4,0,6,8]
Якщо до цього списку застосуємо функцію sorted, то команда
print(sorted(spysok))
виведе впорядкований список. Але наступна команда
print(spysok)
дозволяє переконатись, що сортування відбулось лише під час друку, сам список залишився незмінний.
Якщо ж ми застосуємо метод sort(), то наступна команда друку дозволяє переконатись, що список тепер відсортовано.
spysok.sort()
print(spysok)
Щоб відсортувати у порядку спадання, можна вказати параметр reverse:
spysok.sort(reverse=True)
Побудова графіка
Вправа 39.2
from tkinter import*from random import*
tk = Tk()
tk.title("Опади")
tk.geometry("400x250")
#кнопки
Btn1=Button(text="Створити список")
Btn1.place(x=100, y=210,width=120)
Btn2=Button(text="Побудувати графік")
Btn2.place(x=240, y=210,width=120)
#список опадів
Lbl=Label(text="Опади")
Lbl.place(x=20, y=10)
Lbox=Listbox(height=12,justify=CENTER)
Lbox.place(x=20, y=40,width=50)
mainloop()
Урок 27.Порівняння альтернативних алгоритмів розв'язання задачі
Урок 28.Поняття складності алгоритмів Практична робота 7
Урок 29.Бібліотеки та модулі мови програмування
Урок 30.Рішення для окремих частин проєкту у вигляді процедур чи функцій
Урок 31.Визначення теми програмного проекту
Урок 32. Розробка та тестування програмного рішення
Урок 33. Збір та аналіз відгуків користувачів програми
Урок 34.Підготовка звіту та презентації проекту
Урок 35. Сучасні професії та напрямки у галузі розробки програмного забезпечення
Немає коментарів:
Дописати коментар
Примітка: лише член цього блогу може опублікувати коментар.