51187

Інтерпретатор математичних виразів

Практическая работа

Информатика, кибернетика и программирование

Мета: Навчитися створювати та використовувати власні обєкти, нащадки, віртуальні функції, програмно реалізовувати деревоподібні графи.

Украинкский

2014-02-07

25.62 KB

0 чел.

Розробив

Олійник Д.А.

26.04.13

ДРПК.020180.015

Аркуш

Перевірив

Рудакова М.

1

Змін

Арк.

№ Докум

Підпис

Дата

Практична робота№8

Тема:Інтерпретатор математичних виразів.

Мета : Навчитися створювати та використовувати власні об’єкти, нащадки, віртуальні

           функції, програмно реалізовувати деревоподібні графи.

Хід роботи:

unit Unit1;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls;

type

 PTEElement=^TElement;

 PPlus=^Plus;

 PMult=^Mult;

 PNumber=^Number;

 TElement=object

 protected

   left,right:PTEElement;

 constructor Create(l,r:PTEElement);

 public

   destructor Erase;

   function rezult:double;virtual;

   end;

 Number=object(TElement)

 private

   f:double;

 public

   constructor Create(float:double);

   function rezult:double;virtual;

   end;

 Plus=object(TElement)

 public

   constructor Create(l,r:PTEElement);

   function rezult:double;virtual;

   end;

 Mult=object(TElement)

 public

   constructor Create(l,r:PTEElement);

   function rezult:double;virtual;

   end;

 TForm1 = class(TForm)

   edt1: TEdit;

   edt2: TEdit;

   edt3: TEdit;

   btn1: TButton

   grp1: TGroupBox;

   lbl1: TLabel;

Розробив

Олійник Д.А..

26.04.13

ДРПК.020180.015

Аркуш

Перевірив

Рудакова М.

2

Змін

Арк.

№ Докум

Підпис

Дата

lbl2: TLabel;   

 grp2: TGroupBox;

  lbl3: TLabel;

   lbl4: TLabel;

   edt4: TEdit;

   grp3: TGroupBox;

   cbb1: TComboBox;

   lbl5: TLabel;

   btn2: TButton;

   procedure btn1Click(Sender: TObject);

   procedure btn2Click(Sender: TObject);

   procedure cbb1Change(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form1: TForm1;

implementation

constructor TElement.Create(l,r:PTEElement);

begin

left:=l; right:=r;

end;

destructor TElement.Erase;

begin

Dispose(left);

Dispose(right);

end;

function TElement.rezult:double;

begin

end;

constructor Number.Create(float:double);

begin

inherited Create(nil,nil);

f:=float;

end;

function Number.rezult:double;

begin

 rezult:=f;

end;

constructor Plus.Create(l,r:PTEElement);

Begin

 inherited Create(l,r);

end;

function Plus.rezult:double;

constructor Mult.Create(l,r:PTEElement);

Розробив

Олійник Д.А.

26.04.13

ДРПК.020180.015

Аркуш

Перевірив

Рудакова М.

3

Змін

Арк.

№ Докум

Підпис

Дата

begin  

inherited Create(l,r);

end;

function Mult.rezult:double;

begin

 rezult:=left^.rezult*right^.rezult;

end;

function form(s:string):PTEElement;

var PtrPlus:PPlus;

   PtrMult:PMult;

   PtrNumber:PNumber;

   p:integer;

   l:integer;

   s1,s2:string;

begin

 l:=length(s);

if pos('+',s)>1 then

begin

p:=pos('+',s);

s1:=copy(s,1,p-1);

s2:=copy(s,p+1,l-p);

New(PtrPlus,Create(form(s1),form(s2)));

form:=PtrPlus;

end  else

if Pos('*',s)>1 then

begin

p:=pos('*',s);

s1:=copy(s,1,p-1);

s2:=copy(s,p+1,l-p);

New(PtrMult,Create(form(s1),form(s2)));

form:=PtrMult;

end else

if s='x' then

begin

 New(PtrNumber, Create(StrToFloat(form1.edt3.Text)));

 form:=PtrNumber;

end else

begin

 New(PTRNumber,Create(StrToFloat(s)))

end;

end;

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);

begin

Close;

end;

Розробив

Олійник Д.А.

26.04.13

ДРПК.020180.015

Аркуш

Перевірив

Рудакова М.

4

Змін

Арк.

№ Докум

Підпис

Дата

procedure TForm1.btn2Click(Sender: TObject);

var dec:integer;

x,fx:PTEElement;

begin

dec:=StrTOInt(cbb1.Text);

x:=form(edt1.Text);

edt3.Text:=FloatTOStrF(x^.rezult,ffFixed,25,dec);

fx:=form(edt2.Text);

edt4.Text:=FloatToStrF(fx^.rezult,ffFixed,25,dec);

end;

procedure TForm1.cbb1Change(Sender: TObject);

begin

if cbb1.Text<> '' then btn2Click(btn2);

end;

end.

Висновок: Я навчився створювати та використовувати власні об’єкти, нащадки, віртуальні функції, та програмно реалізовувати деревоподібні графи.


 

А также другие работы, которые могут Вас заинтересовать

38326. Современное право международных договоров. Том II. Действие международных договоров 2.38 MB
  Из него вытекает юридическая обязательность любого договора контракта. К таким договорам относится в частности конституционный акт мирового сообщества Устав ООН. В подобных случаях отношение к договорам мало чем отличается от практики обычного права международного права в целом 17. Сочетание воль государств необходимо для заключения договора.
38328. Маркетинговые исследования 698 KB
  Сущность маркетинговых исследований Маркетинговые исследования mrketing reserch это систематическое и объективное выявление сбор анализ распространение и использование информации для повышения эффективности идентификации и решения маркетинговых проблем и использования маркетинговых возможностей.Маркетинговые исследования предусматривают идентификацию сбор анализ распространение и использование информации. Следует иметь в виду что как маркетинговая проблема так и маркетинговая возможность трансформируются затем в проблему...
38331. Маркетингова політика комунікацій 1.6 MB
  Котлера слід розглядати маркетингові комунікації як управління процесом прямування товару на всіх етапах перед продажем у момент покупки під час і по завершенню процесу споживання. Важливо пам'ятати що розробка такого комплексу є стратегічно важливою для успішної діяльності по просуванню товару тому що тільки правильне використання засобів комунікації й чітке розміщення акцентів сприяє досягненню цілей фірми. Існують три біієрархічні моделі відповідної реакції споживачів на комунікацію залежно від виду товару й...
38332. Морське право 368 KB
  Вони не встановлювали правовий режим морських просторів оскільки ще не склалися інститути відкритого моря внутрішніх і територіальних вод. Саме в цей період починає формуватися принцип свободи відкритого моря що остаточно сформувався до кінця XVII сторіччя: Його становлення прямо пов'язане з гострою боротьбою між феодальними державами Іспанією і Португалією і державами у котрих активно розвивався капіталістичний засіб виробництва Англією Францією а потім Голландією що виступили за свободу морів. У цей час були початі перші спроби...
38333. Міжнародне право 362.5 KB
  Версії виникнення міжнародного права. Уже в той час союзницькі звязки племен не зводилися лише до турботи про зовнішній захист а містили й безліч інших норм поведінки які закріплюючись із плином часу призвели до появи права у формі звичаю. Також існує дві концепції походження міжнародного права: 1 Позитивістське тлумачення походження міжнародного права Природно правова концепція була першою спробою пояснення походження і сутності міжнародного права. В її розвитку можна виділити послідовні етапи: від пояснення походження міжнародного...
38334. Международное сегментирование 28.06 KB
  Критерии сегментации мирового рынка. Целевой сегмент мирового рынка. Углубленное исследование рынка предполагает необходимость его рас смотрения как дифференцированной структуры в зависимости от групп потребителей и потребительских свойств товара что в широком смысле определяет понятие рыночной сегментации. Рыночная сегментация представляет собой с одной стороны метод для нахождения частей рынка и определения объектов на которые направлена международная маркетинговая деятельность предприятий.