Тема 37(8): Цикл з передумовою.
План вивчення теми:
Прапорці та їх властивості
Використання прапорців
У циклах з умовою кількість виконання інструкцій тіла циклу заздалегідь невідома: вона завершується після досягнення певної умови.
У мові Python цикли з передумовою реалізуються оператором while, який має таку структуру:
<початкове значення>
while <умова>:
<блок інструкцій тіла циклу>
<зміна початкового значення>
Тут <умова> — це вираз, який має значення True або False.
Порядок виконання циклу з передумовою:
Обчислюється значення логічного виразу;
Якщо це значення істина, то виконуються команди тіла циклу;
Після чого знову визначається значення логічного виразу;
Якщо це значення знову істина, то знову виконуються команди тіла циклу;
Знову обчислюється значення логічного виразу;
Якщо воно хибне, то виконується команда наступна за циклом.
#Код-шаблон
from tkinter import*
#підпрограма (процедура) для опрацювання даних
def click():
#
#
#
#створення вікна програми розміром 300на200 пікселів
root=Tk()
root.geometry("300x250")
#створення та налаштування поля №1 для введення x
e1=Entry()
e1.pack(pady=10)
#створення та налаштування поля №2 для введення y
e2=Entry()
e2.pack(pady=10)
#створення та налаштування напису №1 для виведення z
lab1=Label()
lab1.pack(pady=10)
#створення та налаштування кнопки №1 для запуску процедури
b1=Button(text='Виконати', command=click)
b1.pack(pady=10)
Увага! Під час роботи з комп'ютером дотримуйтеся вимог БДЖ та санітарно-гігієнічних норм.
Приклад 1
Скільки потрібно взяти доданків, перший з яких дорівнює заданому цілому числу, а кожний наступний на 3 більший від попереднього, щоб їхня сума перевищила 100?
Математична модель:
Вхідні дані:
перший доданок (а),
число, на яке наступний доданок більше за попереднє (3),
число, яке має перевищувати сума чисел (100).
Кінцеві результати:
кількість доданків (n);
Формули:
a:=a+3;
s:=s+a;
s<=100.
З трьох вхідних даних одне потрібно вводити (а), а два інші – конкретні числа. У задачі має бути один кінцевий результат, який потрібно виводити.
Програмний код проєкту розв'язку задачі:
from tkinter import*
#підпрограма (процедура) для опрацювання даних
def click():
label['text']=""
a=int(entry.get())
s=0
n=0
while s<=100:
s=s+a
n=n+1
a=a+3
label['text']=str(n)
#створення вікна програми розміром 300на150 пікселів
root=Tk()
root.geometry("300x150")
#створення та налаштування поля для введення вхідних даних
entry=Entry()
entry.pack(pady=10)
#створення та налаштування напису №1 для виведення результату
label=Label()
label.pack(pady=10)
#створення та налаштування кнопки №1 для запуску процедури
b1=Button(text='Виконати', command=click)
b1.pack(pady=10)
Зверніть увагу, що y це змінна що позначає швидкість ГАЛЬМУВАННЯ, тому значення цієї змінної ЗБІЛЬШУЄТЬСЯ.
Зразок процедури виконання математичної моделі задачі
Завдання:
Допишіть програмний код проекту, доповнивши математичну модель елементами керування
Завдання для самостійного виконання (Д/З)
Побудуйте математичну модель і складіть проєкт для визначення, за скільки годин турист подолає відстань 20 км, якщо за першу годину він пройшов 6 км, а за кожну наступну годину проходить на 1 км менше, ніж за попередню.
Створіть проєкт для обчислення середнього арифметичного додатних чисел, перше з яких дорівнює 100, а кожне наступне менше від попереднього на задане додатне число