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.

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


 

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

3331. Защити себя и свой бизнес 1.53 MB
  Со времен возникновения частной собственности одна часть человечества постоянно озабочена тем, как разбогатеть еще больше, другая – как отнять это богатство у первых. Образно говоря, первая жила и живет по принципу двух арифметических...
3332. Строительные машины. Экскаваторы и башенные краны 1.89 MB
  Машины для земляных работ. Экскаваторы одноковшовые. Любой строительный процесс начинается с производства земляных работ, т. с. разработки грунта, перемещению его или погрузки на транспортные средства. Так, для устройства оснований или фу...
3333. Теория организации. Краткий курс лекций 596 KB
  В учебном пособие представлены основные темы курса, предусмотренные государственным стандартом по специальности 080507 «Менеджмент организации». Представлено краткое содержание основных вопросов изучаемого курса. Учебное пособие дает системное предс...
3334. Дефектація корпусних деталей 106.5 KB
  Дефектація корпусних деталей Обладнання, інструмент. Корпус коробки переключення передач (КПП) трактора Т-170 18-2-156 СБ, стенд для кріплення корпуса, індикаторні нутроміри НИ 100-160, НИ 18-50, мікрометри МК 175-2, МК 150-2, МК 125-2, МК 25-2, шт...
3335. Відновлення деталей вібродуговим наплавленням 1.11 MB
  Відновлення деталей вібродуговим наплавленням Обладнання, інструмент. Наплавочна установка в комплекті: токарний верстат, наплавочна головка ОКС 6569, джерело живлення ВДУ-506, балон з вуглекислим газом, підігрівник, осушувач, редуктор, пульт керува...
3336. Дефектація валів, шестерень, підшипників 521 KB
  Дефектація валів, шестерень, підшипників Обладнання, інструмент. Перший проміжний вал коробки переключення передач трактора Т-170 18-12-132, мікрометри МК 75-2, МЗ 75-2, ролики діаметром 6 мм, ролики зі скосом кромок, різьбові кільця М 52 X 2...
3337. Відновлення деталей газополуменевим напиленням порошків 73.5 KB
  Суть процесу. Порошковий присаджувальний матеріал подається транспортувальним газом у зону полум'я, де обплавляеться і струменем горючих газів вино¬ситься на поверхню деталі. Порошкові суміші можуть подаватися і безпосередньо в полум'я пальника.
3338. Відновлення деталей наплавленням під шаром флюсу 1.02 MB
  Відновлення деталей наплавленням під шаром флюсу Обладнання, інструмент. Установка для наплавлення в комплекті: наплавочна головка А-580М, зварювальний перетворювач ПСО-500, верстат для установки головки, верстат для кріплення котка, щит розподільн...
3339. Оброблення деталей методом пластичного деформування 313.5 KB
  Оброблення деталей методом пластичного деформування. Обладнання, Інструмент. Токарно-гвинторізний верстат, набір накаток: кулькова жорстка, роликова жорстка і пружна, роликова для відновлення пружин, при стрій для кріплення пружин, твердомір Т...