- •Основи об’єктно-орієнтованого програмування
- •Факультету комп’ютерних наук та інформаційних технологій
- •Луцьк 2009
- •Факультету комп’ютерних наук та інформаційних технологій 1 Лабораторна робота №1 5 Програмування лінійних алгоритмів 5
- •2.1. Приклад створення додатка 14
- •9.3. Виконання індивідуального завдання 61
- •Програмування лінійних алгоритмів
- •1.1. Візуальне середовище delphi
- •1.2. Приклад створення додатка
- •1.2.1. Збереження проекта
- •1.2.2. Настройка вікон
- •1.2.3. Зміна заголовка Форми
- •1.2.4. Розміщення компонентів на Формі
- •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
8.1.1. Розміщення компонентів на Формі
Label
Edit
Button
Розмістимо
на Формі компоненти Label, Edit, SpinEdit, Button та
Memo.
Р
Memo
Memo
Збережемо модуль під ім'ям UnModul (текст модуля приведений в п.8.1.4).
8.1.2. Створення модуля і підключення його до проекта
Відповідно до завдання створимо модуль, в якому обчислення значень оформимо у вигляді функції, а обчислення - у вигляді процедури. Для створення модуля відкриємо в головному меню пункт File і клацнемо “мишею” на опції New.(Новий.). Delphi відкриє панель New Items(Репозиторій), в якій зробимо активною піктограму Unit(Модуль) і натиснемо кнопку OK. Відкриється вікно з “порожнім” модулем Unit2. За допомогою опції Save As. меню File збережемо модуль в теці з файлами проекта, привласнивши йому ім'я, наприклад, UnFuncProc.
У цьому модулі оператори обчислення Y(x) у вигляді підпрограми-функції F і операторів обчислення S(x) у вигляді підпрограми-процедури Sum оформимо за правилами створення модулів (текст модуля UnFuncProc приведений в п.8.1.3).
Для підключення модуля UnFuncProc до проекта необхідно зробити активним вікно з текстом модуля UnModul, потім в меню File вибрати опцію Use Unit.и у вікні Use Unit, що відкрилося, вказати ім'я використовуваного модуля – UnFuncProc. Переконаєтеся в тому, що в розділі Implementation модуля UnModul з'явився оператор Uses UnFuncProc;, який Delphi вставила в текст модуля UnModul.
Відкрийте головний файл проекта і переконайтеся в тому, що проект не містить сторонніх модулів і файлів.
8.1.3. Текст модуля UnFuncProc
unit UnFuncProc;
interface
var
n:integer; // кількість доданків в сумі S
Function F(x:extended):extended;
Procedure Sum(x:extended;Var s:extended);
Implementation Function F(x:extended):extended;
begin
result:=(1-x*x*0.5)*cos(x)-0.5*x*sin(x);
end;
Procedure Sum(x:extended;Var s:extended);
var
c:extended;
k:integer;
begin
c:=-x*x*0.5;
S:=1;
for k:=1 to n do
begin
s:=s+c*(2*k*k+1);
c:=-c*x*x/((2*k+1)*(2*k+2));
end;
end;
end.
8.1.4. Текст модуля UnModul
Unit UnModul;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs
StdCtrls, ExtCtrls, Spin, Buttons;
type
TForm1 = class(TForm)
Memo1: TMemo;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
SpinEdit1: TSpinEdit;
BitBtn1: TBitBtn;
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Type func=function(x:extended):extended; // функціональний тип
proc=procedure(x:extended;Var s:extended); // процедурний тип
var
Form1: TForm1;
implementation
uses UnFuncProc; // Delphi підключає модуль UnFuncProc
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
SpinEdit1.text:='4'; // початкове значення N
Edit1.text:=’0.1’; // початкове значення Xn
Edit2.text:=’2.0’; // початкове значення Xk
Memo1.Clear;
Memo1.Lines.Add('Лабораторна робота №8 - Створення модулів');
end;
{ У процедурі Tablica обчислюється і виводиться таблиця значень x, S(x) і Y(x)}
procedure Tablica(Sum:proc;F:func;n:integer;xn,xk,h:extended);
var
x,y,s:extended;
begin
Form1.Memo1.Lines.Add(#9+'x'+#9+'S'+#9+'Y');// заголовок таблиці
x:=xn;
repeat // цикл за x
Sum(x,s); // виклик процедури Sum для обчислення S(x)
y:=F(x); // звернення до функції F для обчислення Y(x)
Form1.Memo1.Lines.Add(#9+FloatToStrF(x,ffFixed,5,2) // виведення x
+#9+FloatToStrF(s,ffFixed,6,3) // виведення S
+#9+FloatToStrF(у,ffFixed,6,3)); // виведення Y
x:=x+h;
until x>xk;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var
xn,xk,h:extended;
begin
n:=StrToInt(SpinEdit1.Text); xn:=StrToFloat(Edit1.Text); xk:=StrToFloat(Edit2.Text); h:=(xk-xn) *0.1; // крок h
Tablica(Sum,F,n,xn,xk,h); // виклик процедури Tablica для обчислення таблиці
end;
end.
