Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабораторні роботи_ООП.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
7 Мб
Скачать
☆

Лабораторна робота №4

Тема: Опис типів. Створення процедур та функцій.

Мета роботи: Навчитись описувати типи та змінні, а також створювати процедури та функції в Delphi.

Розробка проекту «Ваша вага»

Завдання. Створити програму, яка буде «ставити діагноз» про відповідність ваги людини до норми ваги: за введеними значеннями ваги та росту програма має вивести на екран висновок: людині треба худнути, набрати вагу, чи, можливо її вага оптимальна.

Аналіз проекту

Для розробки проекту треба вміти організувати введення даних у компоненти форми та обробляти їх у програмі.

Для організації введення даних через об’єкти, розміщені на формі, обробки числових величин, виведення на форму результатів роботи програми використовується компонент Edit та функції перетворення рядкових даних на числові та навпаки. Річ у тім, що властивість Text об’єкта Edit може містити тільки рядкову величину. Тому для перетворення введеної текстової величини на ціле число використовують функцію StrToInt, а для перетворення текстової величини в дійсне число використовують функцію StrToFloat. Для виведення у поле компонента Edit числових значень необхідно зробити перетворення цілих та дійсних чисел на рядкові величини, скориставшись функціями IntToStr та FloatToStr.

Будемо вважати, що оптимальна вага людини визначається як різниця між ростом у сантиметрах і вагою в кілограмах. Якщо фактична вага менша за оптимальну, будемо вважати її худою, якщо більша – то повною.

Хід роботи

Алгоритм розробки проекту

  1. Створити папку С:\Delphi\lab_4_1.

  2. Завантажити середовище візуального програмування Delphi.

  3. Розмістити на формі візуальні компоненти Label1, Label 2, Label3, Label4, Edit1, Edit2, BitBtn1, BitBtn1.

  4. У коді програми Unit1.pas ввести у розділі var змінні для збереження значень:

Factw – фактичної ваги;

Optw – оптимальної ваги;

Rost – росту;

Delta – різниці між оптимальною та фактичною вагою.

Спочатку будемо вважати, що всі дані будуть цілими числами:

var factW, optW,rost,delta:integer;

  1. Створити процедуру, що оброблятиме подію, - клік лівою кнопкою миші на кнопці «Обчислити» (подія OnClick):

factW:=strtoint(edit1.Text);

rost:=strtoint(edit2.Text);

optw:=rost-100;

delta:=abs(factw-optw);

if optw=factw then label4.Caption:='Ваша вага оптимальна';

if optw>factw then label4.Caption:='Вам треба потовстішати на '+inttostr(delta)+' кг';

if optw<factw then label4.Caption:='Вам треба схуднути на '+inttostr(delta)+' кг';

  1. Зберегти проект у папці С:\Delphi\lab_4_1.

  2. Запустити проект та перевірити правильність його виконання.

Завдання для самостійного виконання

  1. Змінити програму так, щоб можна було вводити не тільки цілі, а й дробові значення ваги та росту.

Підказка. Для цього необхідно використовувати дійсний тип змінних:

var factW, optW,rost,delta: real;

Перетворення дійсних на рядкові і навпаки виконується за допомогою функцій FloatToStr та StrToFloat.

  1. Внести до програми такі зміни:

  • Зробити для кожного з варіантів резюме свій шрифт та колір;

  • Передбачити можливість повторного введення даних, для цього додати кнопку «Очистити» з початковим значенням властивості Enabled=False; активізувати цю кнопку тільки після відпрацювання події OnClick для кнопки «Обчислити»; після очистки полів Edit1.Text, Edit2.Text та Label4.Caption знову зробити кнопку «Очистити» недоступною;

  • Зробіть так, щоб на початку роботи об’єкти, що стосуються введення росту (Label2 та Edit2), були невидимі і з’являлись би на екрані тільки після того, як буде введена вага.

Підказка. Для цього властивості Visible для цих об’єктів треба присвоїти значення False. Крім цього, треба створити процедуру обробки події OnChage (зміна значень) для об’єкта Edit1, в якій властивість Visible для об’єктів Label2 та Edit2 набуватиме значення true:

procedure TForm1.Edit1Chage (Sender: TObject);

begin

Label2.Visible:=True;

Edit2.Visible:=True;

end;