Інформація про новину
  • Переглядів: 48
  • Дата: 19-10-2021, 19:55
19-10-2021, 19:55

6.9. Прапорці. Перемикачі в Lazarus

Категорія: Інформатика





Попередня сторінка:  6.8. Розгалуження в Lazarus
Наступна сторінка:   6.10. Цикл з лічильником в Lazarus

1. Який вигляд мають команди повного і неповного розгалуження в мовах програмування і як вони виконуються?

2. Для чого використовують написи і поля? Які їх властивості ви знаєте? Що визначає їх значення? Як їх можна змінити?

3. Для чого використовувалися в програмах, з якими ви працювали, прапорці та перемикачі? Наведіть приклади.

Прапорці та їх властивості

Розглянемо компонент прапорець. Прапорці використовують, щоб вибрати або один варіант з набору можливих, або кілька варіантів, або не вибрати жодного (мал. 6.66).

Якщо у вікні розміщено кілька прапорців, то серед них можна вибрати один або кілька, не вибрати жодного або вибрати всі. Якщо прапорець вибрано, то в нього

всередині з’являється позначка

Для тих, хто вивчає Pascal

Для розміщення на формі прапорця потрібно двічі клацнути на кнопці TCheckBox

(ангп. checkbox - коробка для перевірки) на вкладці з компонен

тами Standard. Після цього прапорець з’явиться у верхній лівій частині форми

(мал. 6.67), а його ім’я буде додано до списку компонентів проекту в полі Компо

ненти вікна Інспектор об’єктів. За потреби прапорець можна перетягнути в будь-

яке інше місце форми.

Властивості прапорця Caption, Тор, Left, Name, Color, Enabled, Visible, Font, Width, Height аналогічні до відповідних властивостей напису. Зокрема, значення властивостей Width і Height прапорця визначаються довжиною тексту праворуч від прапорця та розміром символів, якими виведено цей текст. Сам цей текст є значенням властивості Caption прапорця. Цей текст, як і для напису, можна вводити безпосередньо на вкладці Властивості в полі Caption, а можна вводити у вікні Редактор рядків, яке відкривається вибором кнопки

в правій частині

поля Caption.

Вибрано прапорець чи не вибрано визначається значенням його властивості Checked (англ. checked - перевірено): вибраний - true, невибраний - false. За замовчуванням ця властивість має значення false.

Лля тих, хто вивчає Python

Команда для створення прапорця в мові Python має вигляд:

Після розміщення у вікні прапорця, створеного в такий спосіб, він матиме вказаний підпис. Наприклад, після виконання команд:

буде створено та розміщено у вікні прапорець з іменем flag і підписом Ваш вибір (мал. 6.68).

Властивості прапорця width, height, bg, fg, font аналогічні до відповідних властивостей напису, поля та кнопки.

Щоб мати можливість дізнаватися під час виконання проекту стан прапорця (вибраний або невибраний), потрібно пов’язати з ним спеціальну змінну логічного типу. Для створення такої змінної використовують команду виду:

Пов’язують цю змінну з прапорцем під час його створення командою, що має вигляд:

буде створено та розміщено у вікні прапорець з іменем flag і підписом Ваш вибір, а змінна з іменем choice зберігатиме стан цього прапорця: True - якщо прапорець вибрано, False - якщо прапорець не вибрано.

Значення цієї змінної за замовчуванням - False, і після запуску проекту на виконання позначка прапорця буде відсутня. Якщо під час виконання проекту буде вибрано прапорець, то значення змінної стане True. За повторного вибору прапорця його стан зміниться на протилежний і також зміниться значення змінної.

Щоб одразу після запуску проекту прапорець був у стані вибраний, потрібно використати команду виду сім’я 3MiHHoi>.set(True) (англ. set - установити), наприклад choice.set(True).

Щоб визначити значення цієї змінної під час виконання проекту, потрібно виконати команду виду сім’я 3MiHHoiXget(), наприклад choice.get(). Значення цієї змінної можна використовувати в проектах у команді розгалуження.

Якщо в проекті використовується кілька прапорців, то для кожного з них повинна бути створена окрема змінна, наприклад:

Використання прапорців

Розглянемо, як можна використати прапорці для реалізації розгалуження в проектах.

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

Для цього використаємо кнопку та три прапорці (мал. 6.69). Оскільки під час виконання проекту жодного прапорця може бути не вибрано, то доцільно для кожного з них залишити значення false властивості Checked значення логічної

змінної), яке встановлюється за замовчуванням.

Створимо процедуру для опрацювання події Click для кнопки та до її тексту помістимо такі три послідовні (не вкладені одна в одну) команди розгалуження:

У кожній із цих команд незалежно одна від одної буде визначатися - вибрано відповідний прапорець чи ні. І якщо відповідний прапорець вибрано, то зміняться значення відповідних властивостей вікна. А якщо певний прапорець не вибрано, значення відповідних властивостей вікна не зміняться.

Перемикачі та їх властивості

Розглянемо компонент перемикач. Перемикачі використовують для вибору тільки одного варіанта з кількох можливих (мал. 6.70).

Якщо у вікні розміщено кілька перемикачів, то серед них можна вибрати тільки один. Якщо перемикач вибрано, то в нього всередині з’являється позначка

Аля тих, хто вивчає Pascal

Для розміщення на формі перемикача потрібно двічі клацнути на кнопці TRadioButton

(англ. radiobutton - кругла кнопка) на вкладці з компонентами

Standard (мал. 6.71).

Усі ті властивості, які ми розглядали для прапорця, має і перемикач, у тому числі й властивість Checked, значення якої можна використати в логічному виразі в команді розгалуження.

На формі можна також розмістити кілька незалежних одна від одної груп пе

ремикачів. Для цього потрібно двічі клацнути на кнопці TRadioGroup

(англ.

radiogroup - кругла група) на вкладці з компонентами Standard. Тоді в кожній групі можна вибрати по одному перемикачу (мап. 6.72).

Аля тих, хто вивчає Python

На відміну від прапорців, з однієї групи перемикачів можна вибрати тільки один. Для цього всі перемикачі з однієї групи повинні бути пов’язані з однією змінною цілого типу. Команда створення такої змінної має вигляд:

• властивість text визначає текст підпису перемикача;

• властивість variable визначає ім’я змінної, яка пов’язана з перемикачем. Повинна бути одна й та сама змінна для всіх перемикачів однієї групи;

• властивість value визначає значення, яке набуде змінна, якщо буде вибрано саме цей перемикач. Значення повинні бути різними для кожного з перемикачів однієї групи.

На малюнку 6.73 наведено фрагмент проекту, у якому створено три перемикачі однієї групи switch 1, switch2 та switch3, для яких змінна choice набуває відповідно значень 1, 2 та 3.

Властивості перемикача width, height, bg, fg, font аналогічні до відповідних властивостей прапорця.

За замовчуванням змінна choice має значення 0. Оскільки це значення не відповідає жодному перемикачу, то після запуску проекту на виконання жоден перемикач не буде вибрано. Щоб один з перемикачів одразу було вибрано, то потрібно встановити для змінної відповідне значення командою виду:

Наприклад, після виконання команди choice.set(l) стане вибраним перший перемикач.

Щоб дізнатися в ході виконання проекту, який з перемикачів вибрано, потрібно виконати команду виду <ім’я змінної>.деІ(), наприклад choice.get().

Якщо потрібно розмістити у вікні кілька незалежних груп перемикачів, то кожну групу перемикачів потрібно пов’язати з окремою змінною.

Використання перемикачів

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

Аля тих, хто вивчає Pascal

Використаємо в проекті три перемикачі та кнопку (мап. 6.74).

Установимо значення властивостей перемикачів так, щоб перший з них було вибрано. Для цього для першого перемикача встановимо значення true властивості Checked, для всіх інших перемикачів залишимо значення цієї властивості false.

Створимо процедуру - обробник події Click для кнопки і до її тексту помістимо таку команду:

Розпочинатися виконання цієї команди буде з визначення значення властивості RadioButtonl. Checked.

Якщо під час настання події Click для кнопки буде вибрано перший перемикач, то RadioButtonl.Checked - true. Тому виконається команда змінення заголовка вікна, а інші частини цієї команди розгалуження виконуватися не будуть.

Якщо під час настання події Click для кнопки буде вибрано другий перемикач, то RadioButtonl.Checked = false. Тому будуть виконуватися команди після першого ключового слова Else. Цією командою є також команда розгалуження, що є частиною першої команди розгалуження. Під час її виконання визначається значення властивості RadioButton2.Checked. Оскільки буде вибрано другий перемикач, то це значення дорівнює true. Тому виконається команда змінення кольору вікна, а інші частини команди розгалуження виконуватися не будуть.

Якщо ж під час настання події Click для кнопки буде вибрано третій перемикач, то RadioButtonl.Checked = false. Тому будуть виконуватися команди після першого ключового слова Else, тобто внутрішня команда розгалуження. Під час її виконання визначається значення властивості RadioButton2.Checked. Оскільки другий перемикач не вибрано, то його значення false. Тоді будуть виконуватися команди після другого ключового слова Else, тобто команди змінення розмірів вікна.

Якщо перед запуском цього проекту на виконання в жодного перемикача не змінювати значення властивості Checked, установлені за замовчуванням, то під час запуску проекту жоден з них не буде вибраним. Якщо і під час виконання проекту не вибрати жоден з перемикачів, а вибрати кнопку, то зміняться розміри вікна (подумайте самостійно, чому відбудуться саме такі змінення). Щоб так не сталося, потрібно після другого ключового слова Else використати ще одну команду розгалуження:

Для тих; хто вивчає Python

Використаємо в проекті три перемикачі та кнопку (мап. 6.75).

Створимо процедуру - обробник події Click для кнопки та до її тексту додамо таку команду:

Розпочинатися виконання цієї команди буде з визначення значення змінної choice.

Якщо під час настання події Click для кнопки буде вибрано перший перемикач, то буде істинним значення логічного виразу choice. get() = 1. Тому виконається команда змінен-ня заголовка вікна, а інші частини цієї команди розгалуження виконуватися не будуть.

Якщо під час настання події Click для кнопки буде вибрано другий перемикач, то значення логічного виразу choice.get() == 1 буде False. Тому буде виконуватися команда перевірки умови після ключового слова elif. При її виконанні визначається значення змінної choice. Оскільки буде вибрано другий перемикач, то це значення дорівнює 2. Тому виконається команда змінення кольору вікна, а інші частини команди розгалуження виконуватися не будуть.

Якщо ж під час настання події Click для кнопки буде вибрано третій перемикач, то значення логічного виразу choice.get() == 1 буде False. Тому буде виконуватися команди перевірки умови після ключового слова elif. Оскільки другий перемикач не вибрано, то значення логічного виразу choice.get() == 2 буде False. Тоді будуть виконуватися команди після ключового слова else, тобто команди змінення розмірів вікна.

Якщо під час виконання проекту не вибрати жодного з перемикачів, а вибрати кнопку, то зміняться розміри вікна (подумайте самостійно, чому відбудуться саме такі змінення). Щоб так не сталося, потрібно замість ключового слова else використати ще одну команду elif:

Працюємо з комп'ютером

Виконайте тренувальні завдання за посиланням

https://cutt.ly/ShdrjKU

або QR-кодом.

Найважливіше в цьому пункті

Прапорці використовують, щоб вибрати або один, або кілька варіантів з набору можливих, або не вибрати жодного. З кількох прапорців може бути вибрано або один, або кілька, або всі, або жодний.

Тому прапорці використовують у тих випадках, коли під час виконання проекту потрібно вибрати або один з можливих варіантів, або кілька, або всі, або не вибрати жодного. Для опрацювання стану прапорців (вибраний або невибраний) у проект включають для кожного з них послідовно записані команди розгалуження, які незалежні одна від іншої.

Аля тих, хто вивчає Pascal

Для розміщення на формі прапорця потрібно двічі клацнути на кнопці TCheckBox

на вкладці Standard з компонентами.

Вибрано прапорець чи не вибрано визначається значенням його властивості Checked (англ. checked - перевірено): вибраний - true, невибраний - false. За замовчуванням ця властивість має значення false.

Аля тих, хто вивчає Python

Команда для створення прапорця в мові Python має вигляд: сім’я прапорця> = Checkbutton(text = ‘<текст підпису>’, variable = сім’я змінної>), де змінна логічного типу використовується для визначення стану прапорця та створюється командою сім’я змінної^» = BooleanVarQ.

Щоб під час запуску проекту прапорець відразу був у стані вибраний, потрібно використати команду виду сім’я 3MiHHOi>.set(True), наприклад choice.set(True). Щоб дізнатися значення цієї змінної під час виконання проекту, слід виконати команду виду сім’я змінної>.деД), наприклад choice.get(). Значення цієї змінної можна використовувати в проектах у команді розгалуження як логічний вираз.

Перемикачі використовують для вибору тільки одного з кількох можливих варіантів. З кількох перемикачів однієї групи може бути вибрано тільки один.

Тому перемикачі використовують у тих випадках, коли під час виконання проекту потрібно вибрати тільки один з можливих варіантів. Для опрацювання стану прапорців (вибраний або невибраний) у проект включають для кожного з них команду розгалуження, кожна наступна з яких вкладена в попередню.

Аля тих, хто вивчає Pascal

Для розміщення на формі перемикача потрібно двічі клацнути на кнопці TRadioButton

на вкладці Standard з компонентами.

Вибрано перемикач чи не вибрано визначається значенням його властивості Checked аналогічно до прапорця.

На формі можна також розмістити кілька незалежних одна від одної груп

перемикачів. Для цього потрібно двічі клацнути на кнопці TRadioGroup

на

вкладці з компонентами Standard. Тоді в кожній групі можна вибрати по одному перемикачу.

Аля тих, хто вивчає Python

Команда для створення перемикача в мові Python має вигляд: сім’я перемикача> = Radiobutton(text = ‘<тест підпису>’, variable = сім’я змінної>, value = сзначення змінної>), де змінна використовується для визначення вибраного перемикача та створюється командою сім’я змінної> = lntVar().

Якщо потрібно, щоб один з перемикачів групи відразу був вибраним, то слід установити для змінної відповідне значення командою виду сім’я змінної>. веДсзначення змінної>), наприклад choice.set(1).

Щоб дізнатися під час виконання проекту, який з перемикачів однієї групи вибрано, потрібно виконати команду виду сім’я змінної>.деД), наприклад choice. get().

У вікні можна також розмістити кілька незалежних одна від одної груп перемикачів. Для цього потрібно кожну групу перемикачів пов’язати з окремою змінною. Тоді в кожній групі можна вибрати по одному перемикачу.

Лайте вілповілі на запитання

1 *. Для чого використовують прапорці, а для чого - перемикачі?

2°. Які значення може мати властивість Checked прапорця та перемикача?

З*. Як визначити стан прапорця в проекті, який розроблено мовою Python?

4*. Як потрібно записувати команди розгалуження, у яких перевіряється, вибрано прапорець чи ні?

5*. Як доцільно записувати команди розгалуження, у яких перевіряється, вибрано перемикач чи ні?

6*. Як визначити, який перемикач вибрано у проекті, розробленому мовою Python?

7е. Для чого використовують групи перемикачів?

Виконайтезавлання

1 *. Намалюйте блок-схему та поясніть хід виконання послідовності команд:

2*. Намалюйте блок-схему та поясніть хід виконання команди:

З*. Поясніть відмінності у виконанні команд розгалуження із завдання 1 та із завдання 2.

4*. Сформулюйте життєву задачу, у проекті для розв’язування якої можна використати фрагмент із завдання 1.

5*. Сформулюйте життєву задачу, у проекті для розв’язування якої можна використати фрагмент із завдання 2.

6е. Побудуйте математичну модель і створіть проект, у якому можна обчислити суму, або різницю, або добуток, або частку від ділення двох довільних чисел залежно від вибраного перемикача. Збережіть проект у папці з іменем Завдання 6.9.6, створеній у вашій папці.

7*. Побудуйте математичну модель і створіть проект, у якому можна обчислити суму, різницю, добуток, частку від ділення двох довільних дійсних чисел залежно від установлених позначок прапорців. Збережіть проект у папці з іменем Завдання 6.9.7, створеній у вашій папці.

8е. Робітник виготовляє деталі. Відомо кількість деталей, яку виготовив робітник за місяць, і вартість однієї деталі. Якщо робітник виконав план, то він одержує премію в розмірі 10 % від заробленої в результаті виготовлення деталей суми. Якщо робітник перевиконав план, то його премія становить ЗО % від заробленої суми. Побудуйте математичну модель і створіть проект, який визначає суму грошей, яку заробить робітник за місяць. Збережіть проект у папці з іменем Завдання 6.9.8, створеній у вашій папці.

9*. Робітниця протягом місяця виготовила х деталей, за кожну з яких вона отримує у грн. Якщо в робітниці є діти, вона отримує додаткову плату в розмірі 20 % від суми, заробленої за місяць. Якщо робітниця виготовить браковані деталі, то її зароблена сума за місяць буде зменшена на 15 %. Побудуйте математичну модель і створіть проект, який визначає суму грошей, яку заробить робітниця за місяць. Збережіть проект у папці з іменем Завдання 6.9.9, створеній у вашій папці.

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

ПРАКТИЧНА РОБОТА № 11 «Проекти з розгалуженнями»

Увага! Під час роботи з комп’ютером дотримуйтеся вимог безпеки життєдіяльності та санітарно-гігієнічних норм.

1. Побудуйте математичну модель і створіть проект для обчислення значення виразу х = (а + 3 * Ь) / (2 * а - Ь). Збережіть проект у папці з іменем Практична 11_1, створеній у вашій папці.

2. Побудуйте математичну модель і створіть проект для знаходження найменшого значення із чотирьох нерівних між собою чисел. Збережіть проект у папці з іменем Практична 11_2, створеній у вашій папці.

3. Вкладник хоче покласти в банк на депозит певну суму грошей на 2 роки. Банк пропонує три види депозитів: під 9 % річних, під 10 % річних і під 11 % річних. У перших двох депозитах прибуток додається до вкладу кожного року, у третьому - ні. Побудуйте математичну модель і створіть проект з використанням перемикачів для обчислення суми грошей, яку зможе отримати вкладник через 2 роки, якщо він вибере один із цих депозитів. Збережіть проект у папці з іменем Практична 11_3, створеній у вашій папці.

 

 

Це матеріал з підручника Інформатика 8 клас Ривкінд (2021)

 



Попередня сторінка:  6.8. Розгалуження в Lazarus
Наступна сторінка:   6.10. Цикл з лічильником в Lazarus



^