- •Практична робота № 1. Тема:Елементи інтерфейсу Delphi
- •1. Загальні положення
- •Головне вікно здійснює основні функції керування проектом створюваної програми. Головне вікно містить:
- •2. Створення й збереження проекту й файлу модуля
- •Завдання
- •Практична робота № 2. Тема: Розробка першого проекту
- •1. Постановка завдання
- •2. План розробки програми
- •3. Короткий опис плану розробки програми
- •4. Завдання
- •Практична робота № 3. Тема: Розробка проекту "діалог"
- •Постановка завдання
- •План розробки програми
- •Завдання
- •Практична робота № 4. Тема: Розробка проекту "довідник"
- •1. Постановка завдання
- •2. План розробки програми
- •3. Завдання
- •Практична робота № 5. Тема: Розробка проекту "словник"
- •Постановка завдання
- •2. План розробки програми
- •3. Завдання
- •Практична робота № 6. Тема: Розробка проекту "ваша вага"
- •Постановка задачі
- •План розробки програми
- •Пояснення
- •Завдання
- •Оброблювач виключень будується у вигляді таких конструкцій:
- •Практична робота № 7. Тема: Розробка проекту "Кольори у форматі rgb"
- •Постановка задачі
- •Пояснення: новим у цій програмі буде використання:
- •Смуг прокручування ScrollBar (сторінка палітри компонентів Standard) як уведення даних,
- •Функцій перетворення значень колірних складових – tColorRef.
- •План розробки програми
- •3. Завдання
- •Практична робота № 8. Тема: Створити проект "тест з інформатики"
- •1. Постановка задачі
- •2.План розробки програми
- •Завдання
- •Практична робота № 9. Тема: Розробка проекту "тест з фізики"
- •Постановка завдання
- •План розробки програми
- •Ват Ом Вольт Ампер
- •Завдання
- •1. Постановка завдання
- •2. План розробки програми
- •2. Створити Титульну форму.
- •3.Створити форму Меню.
- •6.2. Видаліть компоненти кнопок ok й Help.
- •6.3. Замініть назву кнопки Cancel на Вихід і привласніть їй якість Close.
- •6.4. Зміните назву форми, для чого в Object Inspector відкрийте список об'єктів, виберіть PagesDlg:
- •7. Створити форму Тестування (u_Test).
- •7.4. Збережіть виконану роботу (File – Save All). Запустіть програму на виконання й перевірте правильність її роботи:
- •Перехід з Титульної форми на форму Меню;
- •Перехід з форми Меню на форму Тестування;
- •8. Створити форму Результат (u_Res).
Пояснення
Функція StrToInt перетворить рядок у ціле число, функція IntToStr виконує зворотну дію - ціле число перетворить у рядок.
5.1. Удоскональте програму так, щоб можна було б уводити будь-які десяткові величини. Для цього необхідно використати дійсний тип змінних Real:
VAR fact, opt, Rost, Delta : real;
Перетворення дійсних чисел у рядковий тип і рядковий тип у дійсне число виконується за допомогою функцій: FloatToStr й StrToFloat. Внесіть відповідні зміни в обробку події OnClick компонента Button1.
5.2. Зберегти проект остаточно, запустити й протестувати його.
Завдання
Для форматування й перетворення дійсних чисел замість функції FloatToStr() застосуєте функцію Format(' %f ',[змінна]).
Наприклад, Format(‘%f ‘, [Delta])
Для форматування й перетворення застосуєте цю же функцію в такому виді Format('Рядок %f',[ змінна]).
Наприклад, Format(‘Вам треба схуднути %f',[Delta]) .
Удосконалити проект:
Зробити до програми заголовок.
Зробити шрифт виведеної репліки відмінним від стандартного по виду, кольору і розмірам.
Вставити кнопку виходу із програми.
Передбачити можливість повторного запуску програми (див. проект “Діалог”).
Зробіть так, щоб на початку програми або після повторного запуску компоненти Label2 й Edit2 були не видні й з'являлися б на екрані тільки після того, як буде введена вага.
Підказка. Властивості Visible потрібно привласнити False.
У випадку перетворення рядкового типу в числовий тип може виникнути ситуація появи помилки, якщо введені неприпустимі символи. Якщо функції StrToInt або StrToFloat виявлять помилку в записі числа, вони ініціюють так називану виняткову ситуацію (виключення), що звичайно приводить до аварійного завершення роботи програми.
Оброблювач виключень будується у вигляді таких конструкцій:
Try <захищений блок операторів>
еxcept <обробка виключень>
end;
Якщо при виконанні операторів із захищеного блоку виникне виключення, керування буде передано в блок операторів, що розташовується між except й end, але якщо обробка пройде без помилок, блок виключень ігнорується й керування передається операторові, що слідує за end.
Приклад використання обробки виключень для процедури Edit1KeyPressed може виглядати так:
try
Fact := StrToInt(Edit1.Text);
except
ShowMessage('Помилковий запис числа: ' + Edit1.Text);
Edit1.SetFocus;
Exit;
end;
У результаті виконання Fact := StrToInt(Edit1.Text), якщо виникне виняткова ситуація, то на екрані з'явиться вікно з текстовим повідомленням і кнопкою ОК. Після появи вікна робота програми призупиниться чекаючи реакції користувачів. Після виклику стандартної процедури Exit знову активізується редактор, у якому виявлений помилковий текст.
Внесіть необхідні зміни для обробки виняткових ситуацій, що виникають при введенні чисел.
Примітка.
При роботі в середовищі Delphi експерименти з виключеннями погано простежуються, тому що при кожнім виключенні середовище перехоплює керування програмою. Для скасування цього необхідно в команді Tools/Debugger Options/Language Exceptions забрати прапорець в опції Stop on Delphi Exceptions.
Змінити алгоритм розрахунку з урахуванням Індексу маси тіла.
Вага - X, Ріст - Y.
Індекс маси тіла – A, де A = X / Y2 (кг/м2)
Результат визначається по таблиці:
№ п/п |
Значення індексу |
Результат (повідомлення, яке треба вивести) |
1 |
A < 18 |
Моторошна недовага |
2 |
18 A < 20 |
Обмаль і небезпечно, можна одержати виснаження |
3 |
20 A 25 |
Ідеально |
4 |
26 A 30 |
Легкий перебір |
5 |
30 < A |
Терміново потрібно худнути |
Контрольні питання
Які особливості дійсного та цілочисельного типів даних? Для чого в процесі створення проекту змінювати тип величин із цілочисельного на дійсний?
Для чого призначені функції StrToInt; StrToFloat; IntToStr; FloatToStr ?
Яке призначення функції Format?
Як передбачити можливість повторного запуску програми?
В чому полягає виняткова ситуація при переведенні числових даних в текст?
Як реалізується передбачення виконання виняткових ситуацій?