- •Палітра Компонентів Delphi
- •Редактор Коду Delphi
- •Конструктор Форм
- •Інспектор Об’єктів. Принцип візуальної розробки програм
- •Завершення роботи з проектом та створення нового проекту
- •Збереження проекту
- •Відкриття існуючого проекту
- •Завершення виконання Delphi-програми
- •Лабораторна робота №1
- •Робота з Delphi-програмою Структура Delphi-програм
- •Виконання Delphi-програми
- •Завдання
- •Теоретичні відомості
- •Лабораторна робота №2
- •Розробка проекту «Діалог»
- •Мал. Діалог Аналіз проекту
- •Хід роботи
- •Завдання для самостійного виконання
- •Лабораторна робота №3
- •Завдання
- •Теоретичні відомості
- •Лабораторна робота №4
- •Розробка проекту «Ваша вага»
- •Хід роботи
- •Розробка проекту «Обмін валюти»
- •Хід роботи
- •Лабораторна робота №5
- •Завдання
- •Хід роботи
- •Теоретичні відомості Оператори if і case мови Паскаль
- •Кнопки-перемикачі в Delphi|
- •Лабораторна робота №6
- •Завдання
- •Хід роботи
- •Теоретичні відомості Типи даних для роботи з|із| рядками Короткі рядки типу|типа| ShortString| і String|[n]
- •Довгий рядок типу|типа| String|
- •Компонент tComboBox|
- •Компонент tBitBtn|
- •Обробка подій
- •Лабораторна робота №7
- •Розробка проекту «Гороскоп»
- •Хід роботи
- •Розробка проекту «Фізичний конвектор»
- •Хід роботи
- •Лабораторна робота №8
- •Розробка проекту «Рейтинг країн за результатами олімпійських змагань»
- •Хід роботи
- •Лабораторна робота №9
- •Розробка проекту «Журнал олімпіади»
- •Хід роботи
- •Лабораторна робота №10
- •Завдання
- •Хід роботи
- •2. Установка
- •3. Тестування створеної компоненти
- •Лабораторна робота №11
- •Розробка проекту «Побудова графіка функції»
- •Хід роботи
- •Лабораторна робота №12
- •Розробка проекту «Графічний конструктор»
- •Хід роботи
- •Лабораторна робота №13
- •Розробка проекту «Чат для локальної та глобальної мережі»
- •Хід роботи
- •Розробка форми на настройок
- •Розробка програмного коду
- •Лабораторна робота №14.
- •Завдання
- •Хід роботи
- •Теоретичні відомості
- •Етапи створення баз даних в Delphi.
- •Компонент тТаblе
- •Модуль даних
- •Лабораторна робота №15
- •Завдання
- •Хід роботи
- •Теоретичні відомості
- •Лабораторна робота №16
- •Завдання
- •Хід роботи
- •Теоретичні відомості
- •Лабораторна робота №17
- •Завдання
- •Хід роботи
- •Теоретичні відомості
- •Лабораторна робота №18
- •Завдання
- •Хід роботи
- •Теоретичні відомості
- •Список літератури
Лабораторна робота №4
Тема: Опис типів. Створення процедур та функцій.
Мета роботи: Навчитись описувати типи та змінні, а також створювати процедури та функції в Delphi.
Розробка проекту «Ваша вага»
Завдання. Створити програму, яка буде «ставити діагноз» про відповідність ваги людини до норми ваги: за введеними значеннями ваги та росту програма має вивести на екран висновок: людині треба худнути, набрати вагу, чи, можливо її вага оптимальна.
Аналіз проекту
Для розробки проекту треба вміти організувати введення даних у компоненти форми та обробляти їх у програмі.
Для організації введення даних через об’єкти, розміщені на формі, обробки числових величин, виведення на форму результатів роботи програми використовується компонент Edit та функції перетворення рядкових даних на числові та навпаки. Річ у тім, що властивість Text об’єкта Edit може містити тільки рядкову величину. Тому для перетворення введеної текстової величини на ціле число використовують функцію StrToInt, а для перетворення текстової величини в дійсне число використовують функцію StrToFloat. Для виведення у поле компонента Edit числових значень необхідно зробити перетворення цілих та дійсних чисел на рядкові величини, скориставшись функціями IntToStr та FloatToStr.
Будемо вважати, що оптимальна вага людини визначається як різниця між ростом у сантиметрах і вагою в кілограмах. Якщо фактична вага менша за оптимальну, будемо вважати її худою, якщо більша – то повною.
Хід роботи
Алгоритм розробки проекту
Створити папку С:\Delphi\lab_4_1.
Завантажити середовище візуального програмування Delphi.
Розмістити на формі візуальні компоненти Label1, Label 2, Label3, Label4, Edit1, Edit2, BitBtn1, BitBtn1.
У коді програми Unit1.pas ввести у розділі var змінні для збереження значень:
Factw – фактичної ваги;
Optw – оптимальної ваги;
Rost – росту;
Delta – різниці між оптимальною та фактичною вагою.
Спочатку будемо вважати, що всі дані будуть цілими числами:
var factW, optW,rost,delta:integer;
Створити процедуру, що оброблятиме подію, - клік лівою кнопкою миші на кнопці «Обчислити» (подія 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)+' кг';
Зберегти проект у папці С:\Delphi\lab_4_1.
Запустити проект та перевірити правильність його виконання.
Завдання для самостійного виконання
Змінити програму так, щоб можна було вводити не тільки цілі, а й дробові значення ваги та росту.
Підказка. Для цього необхідно використовувати дійсний тип змінних:
var factW, optW,rost,delta: real;
Перетворення дійсних на рядкові і навпаки виконується за допомогою функцій FloatToStr та StrToFloat.
Внести до програми такі зміни:
Зробити для кожного з варіантів резюме свій шрифт та колір;
Передбачити можливість повторного введення даних, для цього додати кнопку «Очистити» з початковим значенням властивості 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;
