Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб Делфи.doc
Скачиваний:
6
Добавлен:
19.11.2019
Размер:
898.56 Кб
Скачать

Л абораторна робота №6. Використання оператора if – then для перевірки вхідних даних

Прізвище, ім’я учня _______________________________________________________ Клас ____

Завдання

  1. Створіть у 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;

  1. Запустіть програму на виконання і введіть N=5, M=4, K=51. Число ніг за програмою буде 2.55, але цей результат не має смислу. Очевидно, що вхідні дані до задачі були неправильними, якщо маємо неправильний результат. Виникає проблема: а чи можна, щоб при отриманні неправильного результату програма повідомляла про це, а при отриманні правильного – просто виводила його на екран?

  2. Ознайомтеся з поняттями цілої та дробової частини числа. Заповніть пропуски нижче.

Ціла частина числа 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

  1. Оберіть правильний варіант: 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 (так/ні)

  2. Замініть останній рядок процедури на такий:

i f trunc(K/(M*N))=K/(M*N) then ShowMessage(FloatToStr(K/(M*N))) else ShowMessage(‘Помилка!’);

if – «якщо»

Логічна умова

then – «то»

Після then пишеться команда, яка виконується, якщо логічна умова істинна

else – «інакше»»

  1. Запустіть програму на виконання і знову введіть N=5, M=4, K=51. Спробуйте ввести інші числа.

  2. В останньому рядку були використані ключові слова if, then, else. Слово if означає «якщо», після нього пишеться логічна умова, тобто твердження, яке або істинне або хибне. Якщо логічна умова істинна, то виконується та команда, що стоїть після слова then, яке означає «то потім», «значить». Якщо ж логічна умова хибна, то виконується та команда, яка стоїть після слова else, яке означає «інакше».

В нашому випадку логічна умова – це умова

trunc(K/(M*N))=K/(M*N),

яка може бути істинною або хибною в залежності від значень змінних M, N, K. Ця умова фактично означає «число ніг Слюника ціле».

Якщо вона істинна, то виконується команда, що стоїть після then:

ShowMessage(FloatToStr(K/(M*N))),

тобто результат просто виводиться на екран.

Якщо ж вона хибна, то виконується команда, що стоїть після else:

ShowMessage(‘Помилка!’),

тобто на екран виводиться повідомлення про помилку.

  1. Приклад 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;

Спробуйте ввести такі числа, що задовольняють умові задачі та такі, що не задовольняють її.

  1. Розв’яжіть наступні задачі, виконуючи перевірку вхідних даних.

  1. Петіни друзі придумали задачу про Петю: «Наш друг попався якось нам ввечері на дорозі, і кожен з нас дав йому по шиї 3 рази. Всього Петя отримав N разів по шиї. Скільки нас було?»

Вхідні дані. Число ударів по шиї N вводиться з клавіатури.

Вихідні дані. Число друзів Петі виводиться на екран.

Вказівка. Щоб дані були правильними, N повинно націло ділитися на 3, тоді число друзів буде цілим.

  1. Петя придумав задачу про своїх друзів: «Мої друзі об’їлися грушами, і їм довелося пити касторку. Всього друзі випили по 10 ложок кожний. В кожному тюбику по N ложок, а друзі випили всього К тюбиків. Скільки в мене друзів?»

Вхідні дані. Число ложок, що випив кожен друг N та число тюбиків К вводяться з клавіатури.

Вихідні дані. Число друзів Петі виводиться на екран.

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

  1. Напишіть програму, яка за введеним з клавіатури числом А визначає його модуль |A|.

Вхідні дані. Число А вводиться з клавіатури.

Вихідні дані. Модуль числа А виводиться на екран.

  1. Функція y=sign(x) визначається так:

Напишіть програму, що визначає sign(x) за даним числом x.

Вхідні дані. Число х вводиться з клавіатури.

Вихідні дані. Значення sign(x) виводиться на екран.

  1. Контрольні запитання

Заповніть пропуски:

Ключове слово if означає _________

Ключове слово then означає _________

Ключове слово else означає _________

Після слова if пишеться _____________________________

Після слова then пишеться команда, яка виконується, коли _____________________________________________________

Після слова else пишеться команда, яка виконується, коли _____________________________________________________