- •Лабораторна робота 1. Вивчення інтерфейсу середовища програмування Delphi. Вивчення властивостей форми
- •Завдання
- •Лабораторна робота №2. Програмне змінення властивостей об’єктів
- •Завдання
- •Запустіть середовище програмування (ПускВсе программыBorland Delphi 7Delphi 7)
- •Контрольні запитання
- •Лабораторна робота №3. Змінні, числа та рядки
- •Завдання
- •Запустіть середовище програмування (ПускВсе программыBorland Delphi 7Delphi 7).
- •Л абораторна робота №4. Розв’язування задач за допомогою Delphi з використанням типів integer, real, string
- •Завдання
- •Зверніть увагу, що змінні одного типу можна описувати через кому!
- •Запустіть середовище програмування (ПускВсе программыBorland Delphi 7Delphi 7).
- •Л абораторна робота №5. Розв’язування математичних задач за допомогою Delphi з використанням типів integer, real, string
- •Завдання
- •Л абораторна робота №6. Використання оператора if – then для перевірки вхідних даних
- •Завдання
- •Лабораторна робота №7. Розв’язування задач за допомогою оператора if – then.
- •Завдання
- •Продивіться та повторіть у Delphi приклад розв’язання задач.
- •Прочитайте теоретичні відомості.
- •Розв’яжіть наступні задачі.
- •Прочитайте теоретичні відомості про команду InputBox та виконайте завдання.
- •Другий параметр Напис у вікні
- •InputBox('Введите заголовок окна','','');
- •Прочитайте теоретичні відомості про об’єкт memo та виконайте завдання.
- •Заповніть таблицю
Л абораторна робота №6. Використання оператора if – then для перевірки вхідних даних
Прізвище, ім’я учня _______________________________________________________ Клас ____
Завдання
Створіть у Delphi новий проект і розв’яжіть задачу: Якщо Слюника обізвати Хрямзиком, він почне битися ногами і не заспокоїться, доки не вдарить того, хто обізвав, кожною ногою по N разів. Одного разу Бряка його обізвала M разів і отримала за це К ударів. Скільки ніг у Слюника?
Вхідні дані. Число ударів кожною ногою N, число обзивань M і загальне число отриманих ударів K вводиться з клавіатури.
Вихідні дані. Число ніг Слюника виводиться на екран.
Вказівка. Число ніг Слюника K/(M*N).
Припустимо, розв’язана задача має такий вигляд:
-
procedure TForm1.Button1Click(Sender: TObject);
var
m,n,k:integer;
begin
m:=StrToInt(Edit1.Text);
n:=StrToInt(Edit2.Text);
k:=StrToInt(Edit3.Text);
ShowMessage(FloatToStr(K/(M*N)));
end;
Запустіть програму на виконання і введіть N=5, M=4, K=51. Число ніг за програмою буде 2.55, але цей результат не має смислу. Очевидно, що вхідні дані до задачі були неправильними, якщо маємо неправильний результат. Виникає проблема: а чи можна, щоб при отриманні неправильного результату програма повідомляла про це, а при отриманні правильного – просто виводила його на екран?
Ознайомтеся з поняттями цілої та дробової частини числа. Заповніть пропуски нижче.
Ціла частина числа 5,45 дорівнює 5. Дробова частина його 0,45.
Ціла частина числа 6,51 дорівнює 6. Дробова частина його 0,51.
Ціла частина числа 7,8 дорівнює ____. Дробова частина його ____.
Ціла частина числа 0,6 дорівнює ____. Дробова частина його ____.
Ціла частина числа 9 дорівнює ____. Дробова частина його ____.
Ціла частина числа 10,5 дорівнює ____. Дробова частина його ____.
Ціла частина числа 0,025 дорівнює ____. Дробова частина його ____.
Ціла частина числа х в Delphi позначається trunc(x). Звідси, дробова частина його буде х - trunc(x).
trunc (3.28) = _________ trunc (6.83) = ________ 4.8 – trunc (4.8) = ________
trunc (2.56) = _________ trunc (8.54) = ________ 5.6 – trunc (5.6) = ________
Якщо ціла частина числа дорівнює самому числу, то таке число ціле. Наприклад, trunc(5) =5, trunc(38) = 38, trunc(0) = 0.
Заповніть таблицю:
-
Твердженя
Так чи Ні
Твердженя
Так чи Ні
Твердженя
Так чи Ні
Твердженя
Так чи Ні
4.5 = trunc(4.5)
7.8 – trunc(7.8)=0.8
trunc(2.5)-2=0
trunc(4.8/2)=2.4
10 = trunc(10)
5.6 – trunc(5) = 5
trunc(3.6) = 3.6
trunc(4.8/2)=2
trunc(4)=trunc(4.5)
trunc(2.6)-trunc(3.7) = -1
trunc(4.8)/2=2.4
trunc(7) = 7
Оберіть правильний варіант: x:=3.5; z:=4.2 y:=0.5; a:=0.8 trunc(x+y)=x+y (так/ні) trunc(z+a)=z+a (так/ні) trunc(x-y)=x-y (так/ні) trunc(z-a)=z-a (так/ні) trunc(x/y)=x/y (так/ні) trunc(z/a)=z/a (так/ні) trunc(x*y)=x*y (так/ні) trunc(z*a)=z*a (так/ні) trunc(x/(0.5*y))=x/(0.5*y) (так/ні) trunc(6*z/a)=6*z/a (так/ні)
Замініть останній рядок процедури на такий:
i f trunc(K/(M*N))=K/(M*N) then ShowMessage(FloatToStr(K/(M*N))) else ShowMessage(‘Помилка!’);
if
–
«якщо»
Логічна
умова
then
– «то»
Після
then
пишеться
команда, яка виконується, якщо логічна
умова істинна
else
–
«інакше»»
Запустіть програму на виконання і знову введіть N=5, M=4, K=51. Спробуйте ввести інші числа.
В останньому рядку були використані ключові слова if, then, else. Слово if означає «якщо», після нього пишеться логічна умова, тобто твердження, яке або істинне або хибне. Якщо логічна умова істинна, то виконується та команда, що стоїть після слова then, яке означає «то потім», «значить». Якщо ж логічна умова хибна, то виконується та команда, яка стоїть після слова else, яке означає «інакше».
В нашому випадку логічна умова – це умова
trunc(K/(M*N))=K/(M*N),
яка може бути істинною або хибною в залежності від значень змінних M, N, K. Ця умова фактично означає «число ніг Слюника ціле».
Якщо вона істинна, то виконується команда, що стоїть після then:
ShowMessage(FloatToStr(K/(M*N))),
тобто результат просто виводиться на екран.
Якщо ж вона хибна, то виконується команда, що стоїть після else:
ShowMessage(‘Помилка!’),
тобто на екран виводиться повідомлення про помилку.
Приклад 2. Якщо малюка Кузю зважити разом з бабусею, то отримаємо N кг, а якщо зважити бабусю без Кузі, отримаємо M кг. Скільки важить Кузя без бабусі?
Розв’язання. Очевидно, що Кузя важить N – M кг. Але з боку користувача можливий неправильний ввід: він може ввести, що Кузя з бабусею важить 70 кг, а бабуся важить 75 кг, і тоді Кузя буде мати від’ємну масу мінус 5 кілограмів. Щоб уникнути таких казусів, треба перед тим, як видавати відповідь, перевірити, що N>M, а не навпаки.
Створіть у Delphi новий проект і повторіть розв’язання задачі:
-
procedure TForm1.Button1Click(Sender: TObject);
var
M,N:real;
begin
N:=StrToFloat(Edit1.Text);
M:=StrToFloat(Edit2.Text);
if N>M then ShowMessage('Кузя важить '+FloatToStr(N-M)+' кг')
else ShowMessage('Неправильно введені дані!');
end;
Спробуйте ввести такі числа, що задовольняють умові задачі та такі, що не задовольняють її.
Розв’яжіть наступні задачі, виконуючи перевірку вхідних даних.
Петіни друзі придумали задачу про Петю: «Наш друг попався якось нам ввечері на дорозі, і кожен з нас дав йому по шиї 3 рази. Всього Петя отримав N разів по шиї. Скільки нас було?»
Вхідні дані. Число ударів по шиї N вводиться з клавіатури.
Вихідні дані. Число друзів Петі виводиться на екран.
Вказівка. Щоб дані були правильними, N повинно націло ділитися на 3, тоді число друзів буде цілим.
Петя придумав задачу про своїх друзів: «Мої друзі об’їлися грушами, і їм довелося пити касторку. Всього друзі випили по 10 ложок кожний. В кожному тюбику по N ложок, а друзі випили всього К тюбиків. Скільки в мене друзів?»
Вхідні дані. Число ложок, що випив кожен друг N та число тюбиків К вводяться з клавіатури.
Вихідні дані. Число друзів Петі виводиться на екран.
Вказівка. Якщо вхідні дані введено правильно, число Петіних друзів буде цілим!
Напишіть програму, яка за введеним з клавіатури числом А визначає його модуль |A|.
Вхідні дані. Число А вводиться з клавіатури.
Вихідні дані. Модуль числа А виводиться на екран.
Функція y=sign(x) визначається так:
Напишіть програму, що визначає sign(x) за даним числом x.
Вхідні дані. Число х вводиться з клавіатури.
Вихідні дані. Значення sign(x) виводиться на екран.
Контрольні запитання
Заповніть пропуски:
Ключове слово if означає _________
Ключове слово then означає _________
Ключове слово else означає _________
Після слова if пишеться _____________________________
Після слова then пишеться команда, яка виконується, коли _____________________________________________________
Після слова else пишеться команда, яка виконується, коли _____________________________________________________