Види навчальної діяльності
Обговорюємо
- Як описати алгоритмічну структуру розгалуження мовами програмування Free Pascal та Python?
- Як описати алгоритмічну структуру повторення мовами програмування Free Pascal та Python?
- Як описати операції над величинами різних типів мовами програмування Free Pascal та Python?
- Для чого на електронних формах використовують елементи управління перемикач, прапорець, список?
Виконуємо самостійно
- Завдання 1. В Україні за споживання електроенергії визначено такий порядок оплати залежно від спожитого обсягу: вартість 1 кВт при споживанні електроенергії до 100 кВт за місяць – 0,71 грн., від 100 кВт до 600 кВт – 1,29 грн., понад 600 кВт – 1,64 грн. Деяким споживачам надається пільговий обсяг безоплатного користування електроенергію, наприклад, 30 кВт. Якщо така пільга є, то її віднімають від спожитого обсягу, а далі розрахунок здійснюється за прийнятими тарифами. Розробіть у середовищі програмування Lazarus проект Оплата за електроенергію, у якому користувач вносить у текстове поле обсяг спожитої електроенергії, та позначає за допомогою елементів управління (визначте самостійно) наявність пільги. Після натиснення кнопки Розрахувати отримує у вікні повідомлення суми для оплати за електроенергію. Орієнтовний вигляд екранної форми і результати виконання програми у вікнах повідомлень: Проаналізуйте програмний код, де враховується пільговий обсяг електроенергії:
procedure TForm1.Button1Click(Sender: TObject);
var result, outgo, privilege, price1, price2, price3: real;
begin
privilege:=30;
price1:=0.71;
price2:=1.29;
price3:=1.64;
outgo:=StrToFloat(Edit1.Text);
if CheckBox1.Checked = True then outgo:=outgo-privilege;
if outgo < 100 then
result:=price1*outgo
else if (outgo >= 100) and (outgo < 600) then
result:=price2*outgo
else
result:=price3*outgo;
MessageDlg('Сума для оплати за електроенергію:' + #13#10 + FloatToStr(result) + ' грн.', mtInformation, [mbOk], 0);
end;
procedure TForm1.Button1Click(Sender: TObject);
var n, i: integer;
price, p_milk, p_fruits, p_vegetables, p_cookies:real;
result: string;
begin
n:=StrToInt(Edit1.Text);
p_milk:=30;
p_fruits:=55;
p_vegetables:=25;
p_cookies:=15;
if ComboBox1.ItemIndex = 0 then
price:=p_milk
else if ComboBox1.ItemIndex = 1 then
price:=p_fruits
else if ComboBox1.ItemIndex = 2 then
price:=p_vegetables
else
price:=p_cookies;
if n >= 2 then
begin
i:=2;
while i <= n do
begin
price:=price*(100-i*10)/100;
i:=i+1;
end;
result:='Ціна товару зі знижкою: ' + FloatToStr(price) + ' грн.' + #13#10 + 'на ' + IntToStr(n) + ' тижні.';
end
else
result:='Ціна товару: ' + FloatToStr(price) + ' грн.' + #13#10 + 'Знижка відсутня.';
MessageDlg(result, mtInformation, [mbOk], 0);
end;
import tkinter
from tkinter import ttk
from tkinter import messagebox
main = tkinter.Tk()
main.title('Кролеферма')
# створення об'єкта для отримання значення з текстового поля: Етап розведення кроликів
n_var = tkinter.StringVar()
# опрацювання події натиснення кнопки
def button_click():
# отримання значення введеного рядка Етап розведення кроликів і присвоєння змінній n
n = int(n_var.get())
fibonacci = 0
fib1 = 1
for i in range(n):
fib2 = fib1
fib1 = fibonacci
fibonacci = fib1 + fib2
# виведення повідомлення кількість кроликів на вибраному етапі розведення
tkinter.messagebox.showinfo('Число кроликів', str(fibonacci))
#створення текстового напису Введіть номер тижня та його розміщення на головній формі
label = tkinter.Label(text='Етап розведення кроликів')
label.pack()
#створення текстового поля Етап розведення кроликів та його розміщення на головній формі
edit = tkinter.Entry(main, textvariable=n_var)
edit.pack()
#створення кнопки та розміщення об'єкта на головній формі
button = tkinter.Button(main, text='Отримати число кроликів', command=button_click)
button.pack()
#запуск опрацювання подій програми
main.mainloop()
import tkinter
from tkinter import ttk
from tkinter import messagebox
main = tkinter.Tk()
main.title('Порівняння')
# створення об'єкта для отримання значення з текстового поля: Введіть число
n_var = tkinter.StringVar()
# опрацювання події натиснення кнопки
def button_click():
# отримання значення введеного рядка Етап розведення кроликів і присвоєння змінній n
n = int(n_var.get())
# початкове значення факторіала = 1
factorial = 1
# result - змінна для зберігання результатів порівнння, початкове значення - порожній рядок
result = ''
# знаходження факторіала введеного числа
for i in range(2, n+1):
factorial = factorial * i
# порівняння квадрата і факторіала введеного числа
if factorial > n*n:
result = '>'
elif factorial < n*n:
result = '<'
else:
result = '='
# виведення повідомлення про порівняння факторіала числа та його квадрата
tkinter.messagebox.showinfo('Порівняння', 'Факторіал числа дорівнює: ' + str(factorial) + '\nКвадрат числа дорівнює: ' + str(n*n) + '\nФакторіал числа ' + str(result) + ' Квадрат числа')
#створення текстового напису Введіть число та його розміщення на головній формі
label = tkinter.Label(text='Введіть число')
label.pack()
#створення текстового поля Введіть число та його розміщення на головній формі
edit = tkinter.Entry(main, textvariable=n_var)
edit.pack()
#створення кнопки та розміщення об'єкта на головній формі
button = tkinter.Button(main, text='Порівняти', command=button_click)
button.pack()
#запуск опрацювання подій програми
main.mainloop()
Домашнє завдання- Опрацювати підручник: §25 с. 170-177