- •Основи об’єктно-орієнтованого програмування
- •Факультету комп’ютерних наук та інформаційних технологій
- •Луцьк 2009
- •Факультету комп’ютерних наук та інформаційних технологій 1 Лабораторна робота №1 5 Програмування лінійних алгоритмів 5
- •2.1. Приклад створення додатка 14
- •9.3. Виконання індивідуального завдання 61
- •Програмування лінійних алгоритмів
- •1.1. Візуальне середовище delphi
- •1.2.1. Збереження проекта
- •1.2.2. Настройка вікон
- •1.2.3. Зміна заголовка Форми
- •1.2.4. Розміщення компонентів на Формі
- •1.2. Приклад створення додатка
- •1.2.5. Написання процедури обробки події створення Форми (FormCreate)
- •1.2.6. Написання процедури обробки події натиснення кнопки Button1 (Button1Click)
- •1.2.7. Текст модуля UnLinAlg
- •X,y,z,a,b,c,u : extended; // оголошення локальних змінних
- •1.2.8. Робота з додатком
- •1.3. Виконання індивідуального завдання
- •Індивідуальні завдання
- •Лабораторна робота №2 Програмування алгоритмів, що розгалужуються
- •2.1. Приклад створення додатка
- •2.1.1. Розміщення компонентів на Формі
- •2.1.2. Створення процедур обробки подій FormСreate і Button1Сlick
- •2.1.3. Текст модуля UnRazvAlg
- •2.1.4. Робота з додатком
- •2.2. Виконання індивідуального завдання
- •Індивідуальні завдання
- •Лабораторна робота №3 Програмування циклічних алгоритмів
- •3.1. Відладка модулів проекта
- •3.1.1. Відладка синтаксичних помилок
- •3.1.2. Відладка логічних помилок
- •3.2. Приклад створення додатка
- •3.2.1. Розміщення компонентів на Формі
- •3.2.2. Текст модуля UnCiklAlg
- •3.3. Виконання індивідуального завдання
- •Індивідуальні завдання
- •Лабораторна робота №4 Програмування алгоритмів з використанням масивів
- •4.1. Приклад створення додатка
- •4.1.1. Розміщення компонентів на Формі
- •4.1.2. Створення процедур обробки подій SpinEdit1Change і SpinEdit2Change
- •4.1.3. Текст модуля UnMas
- •4.1.4. Робота з додатком
- •4.2. Виконання індивідуального завдання
- •Індивідуальні завдання
- •Лабораторна робота №5 програмування Алгоритмів з використанням рядків
- •5.1. Приклад створення додатка
- •5.1.1. Розміщення компонентів на Формі
- •5.1.2. Створення процедур обробки подій
- •5.1.3. Текст модуля UnStr
- •Індивідуальні завдання
- •Лабораторна робота №6 Програмування алгоритмів з використанням записів
- •6.1. Приклад створення застосування
- •6.1.1. Розміщення компонентів на Формі
- •6.1.2. Створення процедур обробки подій FormCreate і Button1Click
- •6.1.3. Текст модуля UnZap
- •6.2. Виконання індивідуального завдання
- •Індивідуальні завдання
- •Лабораторна робота №7 Програмування алгоритмів з використанням файлів
- •7.1. Приклад створення застосування
- •7.1.1. Розміщення компонентів на Формі
- •7.1.2. Створення процедур обробки подій
- •7.1.3. Текст модуля UnFile
- •7.1.4. Робота із застосуванням
- •7.2. Індивідуальні завдання
- •Лабораторна робота №8 Програмування алгоритмів з використанням функцій і процедур. Створення модулів
- •8.1. Приклад створення додатка
- •8.1.1. Розміщення компонентів на Формі
- •8.1.2. Створення модуля і підключення його до проекта
- •8.1.3. Текст модуля UnFuncProc
- •8.1.4. Текст модуля UnModul
- •8.2. Виконання індивідуального завдання
- •Індивідуальні завдання
- •Лабораторна робота №9 Програмування алгоритмів з використанням динамічних структур даних
- •Приклади створення застосувань
- •9.1. Використання динамічних масивів
- •9.1.1. Розміщення компонентів на Формі
- •9.1.2. Створення процедур обробки подій FormCreate і Button1Click
- •9.1.3. Текст модуля UnDinMas
- •9.2. Використання динамічних списків
- •9.2.1. Розміщення компонентів на Формі
- •9.2.2. Створення процедур обробки подій FormCreate і Button1Click
- •9.2.3. Текст модуля UnStek
- •9.3. Виконання індивідуального завдання
- •Навчально-методичне видання
- •43018, М. Луцьк, вул. Львівська, 75
Лабораторна робота №2 Програмування алгоритмів, що розгалужуються
Мета лабораторної роботи: освоїти використання простих компонентів-перемикачів і створити додаток, який використовує алгоритм, що розгалужується.
2.1. Приклад створення додатка
Завдання: створити Windows-додаток для обчислення виразу
Z=,
де
за бажанням користувача. У панелі
інтерфейсу передбачити можливість
управління контрольним виведенням
початкових даних.
Один з можливих варіантів панелі інтерфейсу створюваного застосування показаний на рис. 2.1.
2.1.1. Розміщення компонентів на Формі
Розміщуватимемо компоненти на Формі так, щоб вони відповідали панелі, показаній на рис. 2.1.
Рис. 2.1
При створенні додатків в DELPHI часто використовуються компоненти у вигляді кнопок-перемикачів. Стан такої кнопки (включено - вимкнено) візуально відбивається на Формі. На панелі (рис. 2.1) представлені кнопки-перемикачі двох типів: CheckBox і RadioGroup .
Компонент CheckBox організовує кнопку незалежного перемикача, за допомогою якої користувач може вказати своє вирішення типу “так/ні”. Компонент RadioGroup організовує групу кнопок – залежних перемикачів. При натисненні однієї з кнопок групи решта всіх кнопок вимикається.
Помістите на
Форму компоненти Label,
Edit
і Memo
відповідно до рис.2.1. Виберіть в Палітрі
Компонентів на сторінці Standard
піктограму
компонента CheckBox
і розмістите її в потрібному місці
Форми. . У властивості Caption
Інспектора Об'єктів заміните напис
CheckBox1
на Контрольне
виведення даних.
. Щоб при запуску додатка кнопка CheckBox
опинилася включена, властивість Checked
встановите рівним True.
Виберіть в Палітрі
Компонентів Standard
піктограму
компонента RadioGroup
і помістіть її в потрібне місце Форми.
У властивості Caption
зміните заголовок RadioGroup1
на f(x).
Для розміщення кнопок в один стовпець,
властивість Columns
встановите рівним 1. Двічі клацніть
“мишею” по правій частині властивості
Items
- з'явиться рядковий редактор списку
найменувань кнопок. Наберіть 2 рядки з
іменами: у першому рядку - sin(x),
в другій - cos(x)
і натисніть ОК. Після цього на Формі
з'явиться група з двох кнопок - перемикачів
з відповідними написами. Щоб при запуску
додатка перша кнопка RadioGroup
опинилася включена, властивість ItemIndex
встановите рівним 0.
2.1.2. Створення процедур обробки подій FormСreate і Button1Сlick
Технологія створення процедур обробки подій FormСreate і Button1Сlick нічим не відрізняється від попередньої роботи. Уважно наберіть операторів цих процедур, використовуючи текст модуля UnRazvAlg.
2.1.3. Текст модуля UnRazvAlg
Unit UnRazvAlg;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs
StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Label4: TLabel;
Memo1: TMemo;
Button1: TButton;
RadioGroup1: TRadioGroup;
CheckBox1: TCheckBox;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
// Процедура обробки події створення Форми:
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text:='0.5'; // початкове значення X
Edit2.Text:='1.8'; // початкове значення Y
Memo1.Clear; // очищення Memo1
// Виведення рядка в Memo1:
Memo1.Lines.Add(‘Лабораторна робота №2 - алгоритм’, що Розгалужується);
end;
// Процедура обробки події натиснення кнопки Button1:
procedure TForm1.Button1Click(Sender: TObject);
var
x,y,z,fx : extended; // оголошення локальних змінних
begin
x:=StrToFloat(Edit1.Text); // X привласнюється вміст Edit1
y:=StrToFloat(Edit2.Text); // Y привласнюється вміст Edit2
fx:=sin(x); // fx привласнюється початкове значення
// Вибір функції, відповідній натиснутій кнопці:
case RadioGroup1.ItemIndex of
0:fx:=sin(x);
1:fx:=cos(x);
end;
// Обчислення виразу:
if x<y then
z:=fx
else
z:=y;
// Перевірка стану кнопки CheckBox1:
if CheckBox1.Checked then
Memo1.Lines.Add('X = '+Edit1.Text+
' Y = '+Edit2.Text); // контрольний вивід X, Y в Memo1
// Виведення результату в Memo1:
Memo1.Lines.Add(' Z = '+FloatToStrF(z,ffFixed,8,3));
end;
end.
Якщо натиснута перша кнопка RadioGroup1, в змінну цілого типу RadioGroup1.ItemIndex заноситься нуль, якщо друга – одиниця. Якщо кнопка CheckBox1 натиснута, логічна змінна CheckBox1.Checked має значення True, якщо немає – False.
