Види навчальної діяльності
Обговорюємо
- Що спільного й чим відрізняються цикли while та repeat у мові програмування Free Pascal?
- Поясніть, коли припиняється виконання команд у тілі циклу для циклів із передумовою, післяумовою та циклу з лічильником. Чи можна вимушено перервати виконання циклу?
- Чим відрізняються способи отримання випадкового значення величини в мовах програмування Free Pascal та Python?
Діємо разом
- Вправа 1. Число називається простим, якщо воно ділиться без остачі тільки на одиницю й на себе. Розробіть програму у середовищі Lazarus, за допомогою якої буде перевірятись, чи є простим число введене в текстове поле.
- Завантажте середовище Lazarus і створіть новий проект.
- Змініть значення властивостей об'єкта Form1, розмістіть на формі об'єкти, як на зразку, та надайте значень їх властивостям
- Змініть шрифт і розмір текстових написів на формі.
- Створіть процедуру опрацювання події натиснення кнопки Перевірити:
procedure TForm1.Button1Click(Sender: TObject); var n, i: integer; begin n := StrToInt(Edit1.Text); i := 1; repeat i := i+1 until n mod i = 0; if n = i then Edit2.Text := 'введене число просте' else Edit2.Text := 'введене число не просте' end;
- Запустіть проект на виконання для чисел: 15, 19. Перевірте отриманий результат.
- Збережіть проект і завершіть роботу із середовищем програмування.
- Вправа 2. Складіть програму мовою програмування Python, яка реалізує гру Відгадай число між комп'ютером та користувачем. Користувач не більше ніж за 6 спроб має відгадати «задумане» число з діапазону від 1 до 20. Якщо користувач відгадає, то на екран виводиться повідомлення про кількість спроб, якщо ні – виводиться «задумане» число..
- У середовищі програмування мовою Python створіть новий файл з іменем Відгадай число.
- В області програмного коду запишіть команди за зразком:
- Проаналізуйте програмний код кожного рядка, запустіть проект на виконання. Якщо є помилки - виправте їх.
- Збережіть проект і завершіть роботу із середовищем програмування.
import random
guessesTaken = 0
myName = input('Привіт! Як тебе звати? ')
number = random.randint(1, 20)
print('Отже, ' + myName + ', я задумав число від 1 до 20.')
while guessesTaken < 6:
guess = int(input('Спробуй відгадати. '))
guessesTaken += 1
if guess < number:
print('Твоє число менше від задуманого.')
elif guess > number:
print('Твоє число більше за задумане.')
else:
break
if guess == number:
print('Дуже добре, ' + myName + '! Для відгадування тобі знадобилося ' + str(guessesTaken) + ' разів!')
else:
print('Ні. Число, яке я задумав: ' + str(number))
- Поміркуйте, чим відрізнятиметься проект Відгадай число, створений мовою програмування Python, від аналогічного, розробленого мовою програмування Free Pascal. Реалізуйте такий проект у середовищі Lazarus.
Виконуємо самостійно
- Завдання 1. Розробіть проект у середовищі програмування Lazarus, у якому із тексту, який вводиться з клавіатури, буде виводитися та його частина, що розташована: а) до першої крапки; б) від другої крапки й до кінця. Екранна форма може мати такий вигляд:
Використайте програмний код для процедур опрацювання подій натиснення кнопок: для першої кнопки
і для другої кнопкиprocedure TForm1.Button1Click(Sender: TObject); var s, result: string; i, d: integer; begin d := length(Edit1.Text); s := Edit1.Text; for i:= 0 to d do if copy(s, i, 1) = '.' then begin result:=copy(s, 0, i-1); break end; MessageDlg(result, mtInformation, [mbOk], 0); end;
Проаналізуйте програмний код, де використовуються функції обробки текстових величин.procedure TForm1.Button2Click(Sender: TObject); var s, result: string; k, i, d: integer; begin d := length(Edit1.Text); k := 0; s := Edit1.Text; for i:= 0 to d do if copy(s, i, 1) = '.' then begin k := k + 1; if k = 2 then begin result:=copy(s, i+1, d); break end; end; MessageDlg(result, mtInformation, [mbOk], 0); end;
- Завдання 2. Розробіть проект у середовищі програмування мовою Python, у якому у введеному виразі, що містить арифметичні операції без дужок і математичних функцій, у повідомленні буде виводитись, які дії потрібно виконати. Проаналізуйте програмний код, поданий нижче, зверніть увагу на використання у програмі операторів розгалуження і повторення:
import tkinter
from tkinter import ttk
from tkinter import messagebox
main = tkinter.Tk()
main.title('Повідомлення, які дії виконати у виразі')
# створення об'єкта для отримання значення з текстового поля: Введіть вираз
text_var = tkinter.StringVar()
# опрацювання події натиснення кнопки
def button_click():
# отримання значення введеного рядка і присвоєння змінній text
text = text_var.get()
# k_plus, k_minus, k_division, k_product - змінні, що позначатимуть кіьбкість відповідних арифметичних операцій
k_plus, k_minus, k_division, k_product = 0, 0, 0, 0
# обчислюємо довжину введеного тексту
d = len(text)
# result - змінна для зберігання результуючого рядка
result = 'У виразі необхідно виконати такі дії: \n'
# виконуємо обхід у циклі по тексту для пошуку знаків арифметичних операцій (+ - * /)
for i in range(d):
if text[i] == '+':
k_plus += 1
elif text[i] == '-':
k_minus += 1
elif text[i] == '*':
k_product += 1
elif text[i] == '/':
k_division += 1
else:
pass
if k_product != 0:
result += 'множення, ' + str(k_product) + ' разів\n'
if k_division != 0:
result += 'ділення, ' + str(k_division) + ' разів\n'
if k_plus != 0:
result += 'додавання, ' + str(k_plus) + ' разів\n'
if k_minus != 0:
result += 'віднімання, ' + str(k_minus) + ' разів'
# виведення повідомлення про дії у арифметичному виразі
tkinter.messagebox.showinfo('Дії у виразі', result)
#створення текстового напису Введіть вираз та його розміщення на головній формі
label = tkinter.Label(text='Введіть вираз')
label.pack()
#створення текстового поля Введіть вираз та його розміщення на головній формі
edit = tkinter.Entry(main, textvariable=text_var)
edit.pack()
#створення кнопки та розміщення об'єкта на головній формі
button = tkinter.Button(main, text='Вивести повідомлення', command=button_click)
button.pack()
#запуск опрацювання подій програми
main.mainloop()
Домашнє завдання
- Опрацювати підручник: §25 с. 174-177