Види навчальної діяльності
Обговорюємо
- Як мовами програмування Free Pascal і Python реалізувати вкладені розгалуження? Як у мові програмування Python позначають операторні дужки для запису групи команд, які в мові Free Pascal записують службовими словами begin та end?
- Які елементи управління можна використати на формі для передавання у програму логічних значень?
- У чому різниця між елементами управління прапорець і перемикач та для чого застосовують групи цих елементів?
Діємо разом
- Вправа 1. Складіть проект Замовлення квітів в середовищі Lazarus для оформлення електронного замовлення квітів за зразком
У проекті натиснення кнопки Оформити замовлення викликає виведення відповідного тексту в текстовому полі, яке захищене від змін, а натиснення кнопки Завершити – закриває вікно форми.
- Завантажте середовище Lazarus і створіть новий проект.
- Змініть значення властивостей об'єкта Form1, розмістіть на формі об'єкти, як на зразку, та надайте значень їх властивостям. Змініть шрифт і розмір текстових написів на формі.
- Задайте значення False для властивості Enabled текстового поля для виведення значення.
- Створіть процедуру опрацювання події натиснення кнопки Оформити замовлення. У вікні редактора коду введіть програмний код:
procedure TForm1.Button1Click(Sender: TObject); var s, t: string; begin s:=''; t:=''; if CheckBox1.Checked then s:=s+CheckBox1.Caption+', '; if CheckBox2.Checked then s:=s+CheckBox2.Caption+', '; if CheckBox3.Checked then s:=s+CheckBox3.Caption+', '; if CheckBox4.Checked then s:=s+CheckBox4.Caption+', '; if CheckBox5.Checked then s:=s+CheckBox5.Caption+', '; if RadioButton1.Checked then t:=t+'у кошику.' else if RadioButton2.Checked then t:=t+'в звичайному пакуванні.' else t:=t+'в особливому пакуванні.'; Edit1.Text:='Ви обрали '+s+t; end;
- Створіть процедуру опрацювання події натиснення кнопки Завершити. У вікні редактора коду введіть програмний код:
procedure TForm1.Button2Click(Sender: TObject); begin Form1.Close; end;
- Запустіть проект на виконання. Перевірте, чи відповідають умові завдання дії, пов'язані з об'єктами управління (прапорцями і перемикачами) екранної форми. Якщо є помилки - виправте їх.
- Збережіть проект і завершіть роботу із середовищем програмування.
- Вправа 2. У середовищі програмування мовою Python розробіть проект Килимки, за яким можна визначити, яку максимальну кількість квадратних килимків зі стороною c, де с - ціле число, потрібно використати, щоб застелити кімнату з підлогою розміром a x b, де a і b – цілі числа. У проекті слід також визначити, яка площа не буде накрита килимками, якщо їх не можна накладати чи підгинати. Передбачте також ситуацію, коли розмір килимка перевищує розмір підлоги кімнати.
- У середовищі програмування мовою Python створіть новий файл з іменем Килимки.
- В області програмного коду запишіть команди за зразком:
import tkinter from tkinter import ttk from tkinter import messagebox main = tkinter.Tk() # заголовок вікна main.title('Килимки') # створення об'єкта для отримання значення з текстового поля: Ширина підлоги a_var = tkinter.StringVar() # створення об'єкта для отримання значення з текстового поля: Довжина підлоги b_var = tkinter.StringVar() # створення об'єкта для отримання значення з текстового поля: Розмір квадратного килимка (довжина сторони) c_var = tkinter.StringVar() # опрацювання події натиснення кнопки def button_click(): # присвоєння значення довжини і ширини підлоги з полів введення у відповідні змінні a та b a = int(a_var.get()); b = int(b_var.get()); c = int(c_var.get()); # Присвоюємо значення порожнього рядка змінній result, яка буде зберігати результат result = '' # площа одного килимка s_kulumok = c*c # площа підлоги s_pidloga = a*b # коли розмір килимка перевищує розмір кімнати if s_kulumok > s_pidloga: # виведення повідомлення про завеликий розмір килимка tkinter.messagebox.showwarning('Увага!', 'Розмір килимка перевищує розмір підлоги кімнати.') else: # кількість квадратних килимків, якими можна застелити підлогу k = int(s_pidloga/s_kulumok) # плоша, що залишилася не застеленою s_zalushok = s_pidloga - k*s_kulumok result = 'Максимальна кількість килимків: ' + str(k) + '\n' + 'Не накрита площа: ' + str(s_zalushok) + ' кв.м.' # виведення повідомлення про кількість килимків tkinter.messagebox.showinfo('Результат', result) #створення текстового напису Ширина підлоги та його розміщення на головній формі label = tkinter.Label(text='Ширина підлоги') label.pack() #створення текстового поля Ширина підлоги та його розміщення на головній формі edit = tkinter.Entry(main, textvariable=a_var) edit.pack() #створення текстового напису Довжина підлоги та його розміщення на головній формі label = tkinter.Label(text='Довжина підлоги') label.pack() #створення текстового поля Довжина підлоги та його розміщення на головній формі edit = tkinter.Entry(main, textvariable=b_var) edit.pack() #створення текстового напису Сторона килимка та його розміщення на головній формі label = tkinter.Label(text='Сторона килимка') label.pack() #створення текстового поля Сторона килимка та його розміщення на головній формі edit = tkinter.Entry(main, textvariable=c_var) edit.pack() #створення кнопки та розміщення об'єкта на головній формі button = tkinter.Button(main, text='Обчислити', command=button_click) button.pack() #запуск опрацювання подій програми main.mainloop()
- Запустіть проект на виконання. Доберіть тестові дані та перевірте правильність складеної програми. Збережіть проект. Завершіть роботу із середовищем програмування.
- Поміркуйте, якого логічного значення набуває логічний вираз, записаний мовами програмування Free Pascal і Python
Виконуємо самостійно
- Завдання 1. У середовищі програмування Lazarus розробіть проект Оцінки, за яким у текстове поле виводиться опис досягнутого рівня на основі шкільної оцінки, яка обирається з елемента управління (оберіть самостійно – прапорці, перемикачі). Орієнтовний зразок інтерфейсу проекту:
В цьому проекті використано елемент управління RadioGroup для групування перемикачів
Для використання групи прапорців виберіть елемент управління CheckGroup
Скористайтеся фрагментом програмного коду для реалізації завдання:
procedure TForm1.Button1Click(Sender: TObject); begin if Radiogroup1.ItemIndex = 0 then Edit1.Text:='початковий рівень' else if Radiogroup1.ItemIndex = 1 then Edit1.Text:='середній рівень' else if Radiogroup1.ItemIndex = 2 then Edit1.Text:='достатній рівень' else Edit1.Text:='високий рівень'; end;
- Завдання 2. У середовищі програмування Lazarus розробіть проект Веселка, у якому після вибору кольору та натиснення кнопки Показати, відкривається допоміжна екранна форма, колір якої відповідає обраному на головній формі. Проаналізуйте використання команди розгалуження case у фрагменті програмного коду і з'ясуйте, як вказуються значення кольорів тла допоміжної форми
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Show;
case RadioGroup1.ItemIndex of
0: Form2.Color:= clRed;
1: Form2.Color:= TColor($000080FF);
2: Form2.Color:= clYellow;
3: Form2.Color:= clGreen;
4: Form2.Color:= clSkyBlue;
5: Form2.Color:= clBlue;
6: Form2.Color:= clPurple;
end;
end;
Домашнє завдання- Опрацювати підручник: §24 с. 161-165