Види навчальної діяльності
Обговорюємо
- Які елементи управління можна використати на формі для передавання у програму логічних значень?
- У чому різниця між елементами управління прапорець і перемикач та для чого застосовують групи цих елементів?
- До яких елементів управління належить список: тих, що передають у програму текстові значення чи логічних?
Діємо разом
- Вправа 1. Розробіть проект Кольорова форма в середовищі Lazarus,
- Завантажте середовище Lazarus і створіть новий проект.
- Змініть значення властивостей об'єкта Form1, розмістіть на формі об'єкти, як на зразку, та надайте значень їх властивостям. Зауважте, в програмі використайте елементи управління RadioGroup (мають назви на зразку Колір і Розмір відповідно). Змініть шрифт і розмір текстових написів на формі.
- Створіть процедуру опрацювання події натиснення кнопки Пуск. У вікні редактора коду введіть команди для зміни кольору (в даному випадку - червоного) екранної форми залежно від увімкненого перемикача:
if RadioGroup1.ItemIndex = 0 then Form1.Color:=clRed;
- Введіть команди зміни розміру форми за зразком:
if RadioGroup2.ItemIndex = 0 then begin Form1.Height:=250; Form1.Width:=400 end;
- Для середнього розміру оберіть висоту 450, ширину 600, а для великого - 650, 800 відповідно.
- Запустіть проект на виконання. Перевірте, чи відповідають умові завдання дії, пов'язані з об'єктами управління екранної форми. Якщо є помилки - виправте їх.
- Збережіть проект і завершіть роботу із середовищем програмування.
- Вправа 2. Розробіть проект Картка учасника змагань в середовищі програмування мовою Python, у якому користувач вводить прізвище та ім'я та по батькові в текстове поле; позначає прапорцями вид змагання; зі списку, що розкривається, обирає вікову групу. Після натиснення кнопки Зареєструватись отримує у вікні повідомлення про підтвердження реєстрації.
- У середовищі програмування мовою Python створіть новий файл з іменем Картка.
- В області програмного коду запишіть команди за зразком:
import tkinter from tkinter import ttk from tkinter import messagebox main = tkinter.Tk() # заголовок вікна main.title('Картка учасника змагань') # створення об'єкта для отримання значення з текстового поля: Прізвище, ім'я, по батькові name_var = tkinter.StringVar() # створення об'єкта для отримання значення з прапорця: Біг на 100 м bool_var1 = tkinter.BooleanVar() # створення об'єкта для отримання значення з прапорця: Стрибки у довжину bool_var2 = tkinter.BooleanVar() # створення об'єкта для отримання значення з прапорця: Човниковий біг bool_var3 = tkinter.BooleanVar() # створення об'єкта для отримання значення з спсику, що розкривається: молодша, середня, старша choice_var = tkinter.StringVar() # опрацювання події натиснення кнопки def button_click(): # присвоєння змінній s значення порожнього рядка s = '' # отримання значення введеного рядка і присвоєння змінній s s += name_var.get() + ', ви обрали: ' # перевірка умови на вибір прапорців і присвоєння в разі істинності умови змінній s значення прапорця if bool_var1.get(): s += 'біг на 100 м, ' if bool_var2.get(): s += 'стрибки у довжину, ' if bool_var3.get(): s += 'човниковий біг, ' # додавання до змінної s значення групи s += 'у віковій категорії ' + choice_var.get() # виведення повідомлення про реєстрацію tkinter.messagebox.showwarning('Реєстрація', s) #створення текстового напису та його розміщення на головній формі label = tkinter.Label(text='Прізвище, ім\'я, по батькові') label.pack() #створення текстового поля та його розміщення на головній формі edit = tkinter.Entry(main, textvariable=name_var) edit.pack() #створення прапорців на головній формі check1 = ttk.Checkbutton(main, text='Біг на 100 м', variable=bool_var1) check1.pack() check2 = ttk.Checkbutton(main, text='Стрибки у довжину', variable=bool_var2) check2.pack() check3 = ttk.Checkbutton(main, text='Човниковий біг', variable=bool_var3) check3.pack() #створення списку, що розкривається, на головній формі choice = ttk.Combobox(main, textvariable=choice_var) choice['values'] = ('молодша.', 'середня.', 'старша.') choice.pack() #створення кнопки та розміщення об'єкта на головній формі button = tkinter.Button(main, text='Зареєструватись', command=button_click) button.pack() #запуск опрацювання подій програми main.mainloop()
- Проаналізуйте програмний код і поміркуйте, які команди використовуються для створення об'єкта "список, що розкривається".
- Запустіть проект на виконання:
- Перевірте, чи для запропонованих значень ви отримали очікуваний результат:
- Збережіть проект. Завершіть роботу із середовищем програмування.
- Поміркуйте, чи можна реалізувати проект Картка учасника змагань у середовищі Lazarus. Визначте, що доцільніше використовувати при створенні екранної форми - відповідні елементи управління чи їх групи? Розробіть проект, розподіливши ролі: один створює інтерфейс програми, а другий - пише програмний код опрацювання подій.
Виконуємо самостійно
- Завдання 1. У середовищі програмування Lazarus розробіть проект Правила дорожнього руху, за яким можна визначити, чи не порушив правила дорожнього руху водій, який проїхав відстань s за час t, якщо на шляху встановлено одне із запропонованих обмежень на швидкість: 40 км/год, 60 км/год, 90 км/год. Передбачте, що дані вводяться в текстові поля, обмеження обираються за допомогою елементів управління (наприклад, перемикачів, як на зразку), а результат – виводиться у вікні повідомлення
- Завдання 2. Відомо таке співвідношення ідеальної ваги та зросту людини за віком: від значення росту людини в см беруться останні дві цифри; якщо вік людини до 25 років, то її вага має становити на 5 кг менше від одержаного двоцифрового числа, для людей від 25 до 45 років – дорівнювати цьому двоцифровому числу, а для старших за 45 років – двоцифрове число потрібно збільшити на 5. У середовищі програмування мовою Python розробіть проект Ідеальна вага, у якому користувач вводить у текстове поле свій зріст у см та вагу, обирає діапазон віку, до якого він належить. Після натиснення кнопки запуску проекту у вікні повідомлення (чи в текстовому полі) отримують висновок: вага ідеальна, надлишкова вага, недостатня вага. Скористайтеся програмним кодом, поданим нижче, для створення власної програми:
import tkinter
from tkinter import ttk
from tkinter import messagebox
main = tkinter.Tk()
# заголовок вікна
main.title('Ідеальна вага')
# створення об'єкта для отримання значення з текстового поля: Зріст людини
height_var = tkinter.StringVar()
# створення об'єкта для отримання значення з текстового поля: Маса людини
m_var = tkinter.StringVar()
# створення об'єкта для отримання значення з спсику, що розкривається: до 25 років, від 25 до 45 років, від 45 років
choice_var = tkinter.StringVar()
# опрацювання події натиснення кнопки
def button_click():
# визначаємо останні дві цифри в значенні зросту людини
h = int(height_var.get())
dig = h % 100
print(dig)
# отримання значення введеного рядка Маса людини і присвоєння змінній m
m = int(m_var.get())
# обчислюємо співвілношення ідеальної ваги та зросту людини
print(choice_var.get())
result = 0
if choice_var.get() == 'до 25 років':
result = dig - 5
elif choice_var.get() == 'від 25 до 45 років':
result = dig
else:
result = dig + 5;
# виведення повідомлення про вагу людини
if m > result:
tkinter.messagebox.showinfo('Результат', 'У вас надлишкова вага.')
elif m < result:
tkinter.messagebox.showinfo('Результат', 'У вас недостатня вага.')
else:
tkinter.messagebox.showinfo('Результат', 'У вас ідеальна вага.')
#створення текстового напису Зріст людини та його розміщення на головній формі
label = tkinter.Label(text='Зріст людини')
label.pack()
#створення текстового поля Зріст людини та його розміщення на головній формі
edit = tkinter.Entry(main, textvariable=height_var)
edit.pack()
#створення текстового напису Маса людини та його розміщення на головній формі
label1 = tkinter.Label(text='Маса людини')
label1.pack()
#створення текстового поля Маса людини та його розміщення на головній формі
edit1 = tkinter.Entry(main, textvariable=m_var)
edit1.pack()
#створення текстового напису Вік людини та його розміщення на головній формі
label2 = tkinter.Label(text='Вік людини')
label2.pack()
#створення списку, що розкривається, на головній формі
choice = ttk.Combobox(main, textvariable=choice_var)
choice['values'] = ('до 25 років', 'від 25 до 45 років', 'за 45 років')
choice.pack()
#створення кнопки та розміщення об'єкта на головній формі
button = tkinter.Button(main, text='Розрахувати', command=button_click)
button.pack()
#запуск опрацювання подій програми
main.mainloop()
Домашнє завдання- Опрацювати підручник: §24 с. 166-169