- •Основний зміст
- •1.Головне вікно.
- •3.4. Дерево та Інспектор об'єктів Tree/Object Inspector.
- •Основні властивості:
- •Приклад . Заповнення tMemo вмістом текстового файлу.
- •Порядок виконання роботи
- •Додаток 1 Індивідуальні завдання Варіанти завдань
- •Додаток 2
- •Команда розгалудження if (умовна команда)
- •Додаток 3 Приклад програми реалізованої за допомогою об’єктно-орієнтованого підходу.
Команда розгалудження if (умовна команда)
іf <логічний вираз> then < команда 1> else< команда 2>;
Дія команди. Якщо логічний вираз істинний, то використовується команда 1, в протилежному випадку – команда 2. Команди 1 та 2 можуть бути простими або складеними.
Приклад: Нехай х = 9. У результаті виконання команд
if x > 7 then y := x * x else y := sin(x);
if x < 5 then z := exp(x) else z := sqrt(x);
отримаємо у = 81, z = 3.
іf <логічний вираз> then < команда 1>;
Дія команди. Якщо логічний вираз істинний, то використовується команда 1, інакше виконується команда, яка знаходиться за даною конструкцією.
Приклад: Нехай х = 25. У результаті виконання команд
if x > 12 then y := 2 * x; z := 10;
if x < 5 then z := exp(x) ;
отримаємо у = 50, z = 10.
Додаток 3 Приклад програми реалізованої за допомогою об’єктно-орієнтованого підходу.
Лістінг №1 Головний модуль програми
|
unit UMain;
interface
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, UKoeff;
type TFrmMain = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Memo1: TMemo; Button1: TButton; Button2: TButton; Button3: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } theNumbers: TNumbers; ..// Оголошення типу клас public { Public declarations } end;
var FrmMain: TFrmMain;
implementation
{$R *.dfm}
procedure TFrmMain.Button1Click(Sender: TObject); begin Memo1.Clear;// Очистити компоненту Memo theNumbers.Clear; theNumbers.AddСoeff(StrToFloat(Edit1.Text), StrToFloat(Edit2.Text), StrToFloat(Edit3.Text)); // Присвоїти значення коеф. Які визначені в класі TNumbers theNumbers.Diskr(StrToFloat(Edit1.Text), StrToFloat(Edit2.Text), StrToFloat(Edit3.Text)); // Розрахувати дискримінант if theNumbers.rDiskr >= 0 then begin // Знайти корені квадратного рівняння за допомогою процедури CalculateСoeff яка // визначена TNumbers theNumbers.CalculateСoeff(StrToFloat(Edit1.Text), StrToFloat(Edit2.Text)); Memo1.Lines.Add(' x1 = ' + FloatToStr(theNumbers.X1)); Memo1.Lines.Add(' x2 = ' + FloatToStr(theNumbers.X2)); end; if theNumbers.rDiskr < 0 then Memo1.Lines.Add('Рішень немає!!!!'); end;
procedure TFrmMain.Button2Click(Sender: TObject); begin Memo1.Clear; Edit1.Clear; Edit2.Clear; Edit3.Clear; end;
procedure TFrmMain.Button3Click(Sender: TObject); begin Сlose; end;
procedure TFrmMain.FormCreate(Sender: TObject); begin // Створити об’єкт theNumbers := TNumbers.Create; end;
procedure TFrmMain.FormDestroy(Sender: TObject); begin // Звільнити пам’ять з під об’єкта theNumbers.Free; end;
end. |
Лістінг №2 Клас в окремому юніті UKoeff.pas
|
unit UKoeff;
interface
uses SysUtils;
type TNumbers = class(TObject) private rTotalA: Real; rTotalB: Real; rTotalC: Real; public rDiskr: Real; // Дискримінант X1: Real; // Корень рівняння X1 X2: Real; // Корень рівняння X2 //Процедури для знаходження коренів квадратного рівняння procedure AddСoeff(ValueA, ValueB, ValueC: Real); // Занести дані procedure Clear; function Diskr(ValueA, ValueB, ValueC: Real): Real;//Порахувати дискримінант procedure CalculateСoeff(ValueA, ValueB: Real);//Порахувати корені рівняння end;
implementation
procedure TNumbers.AddСoeff(ValueA: Real; ValueB: Real; ValueC: Real); begin rTotalA := ValueA; rTotalB := ValueB; rTotalC := ValueC; end;
procedure TNumbers.Clear; begin rTotalA := 0.0; rTotalB := 0.0; rTotalC := 0.0; rDiskr := 0.0; X1 := 0.0; X2 := 0.0; end;
//Порахувати дискримінант function TNumbers.Diskr(ValueA, ValueB, ValueC: Real): Real; begin rDiskr := ValueB * ValueB - 4 * ValueA * ValueC; end;
//Порахувати корені рівняння procedure TNumbers.CalculateСoeff(ValueA: Real; ValueB: Real); begin X1 := (-ValueB + sqrt(rDiskr)) / (2 * ValueA); X2 := (-ValueB - sqrt(rDiskr)) / (2 * ValueA); end;
end. |
1 Д.Осипов Delphi. Профессиональное программирование -2006. Стр. 219
