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.

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


 

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

25328. Кожная рецепция 24 KB
  Ее рецепторы представляют собой свободные нервные окончания и сложные образования тельца Мейснера тельца Пачини в которых нервные окончания заключены в специальную капсулу. Это механорецепторы реагирующие на растяжение давление и вибрацию. При температуре кожи 3137С эти рецепторы почти неактивны. Ниже этой границы холодовые рецепторы активизируются пропорционально падению температуры затем их активность падает и совсем прекращается при 12 С.
25329. Интеро- и проприорецепция 30.5 KB
  Все эти рецепторы представляют собой механорецепторы специфическим раздражителем которых является их растяжение. Сухожильные рецепторы оплетают тонкие сухожильные волокна окруженные капсулой. Таким образом в отличие от мышечных веретен сухожильные рецепторы информируют нервные центры о степени напряжения мышц и скорости его развития.
25330. Двигательный анализатор 39.5 KB
  Интрафузалъные волокна подразделяются на два типа: 1 длинные толстые с ядрами в ядерной сумке которые связанны с наиболее толстыми и быстропроводящими афферентными нервными волокнами они информируют о динамическом компоненте движения скорости изменения длины мышцы и 2 короткие тонкие с ядрами вытянутыми в цепочку информирующие о статическом компоненте удерживаемой в данный момент длине мышцы. Другие суставные рецепторы возбуждаются только в момент движения в суставе т. посылают информацию о скорости движения.
25331. РЕГУЛЯЦИЯ ПИЩЕВАРЕНИЯ 37 KB
  Им был разработан новый метод изучения желудочной секреции. Парасимпатические влияния приводят к усилению кровотока и повышенной секреции слюны. В секреции желудочных желез выделено три фазы: сложнорефлекторная желудочная и кишечная. Возбуждение секреции во вторую фазу желудочного пищеварения обусловлено импульсами из механорецепторов передаваемыми в пищеварительный центр по центростремительным ветвям блуждающего нерва.
25332. Функции печени в связи с всасыванием 45.5 KB
  В процессах пищеварения она принимает весьма многообразное участие которое проявляется в следующем: желчь активирует ферменты выделяемые поджелудочной и кишечными железами наиболее сильно выражена активация липазы которая расщепляет примерно в 20 раз больше жира после прибавления желчи к раствору; желчь эмульгирует жиры чем способствует их расщеплению и всасыванию; желчь усиливает движения кишок и возбуждает при поступлении в кишечник секрецию поджелудочной железы. Все изложенное свидетельствует о важной роли желчи в пищеварении в...
25333. Обмен веществ, энергии и информации 27 KB
  В процессе обмена веществами энергией и информацией с внешней средой происходит формирование структур живого тела восстановление их снашивающихся элементов а также освобождение энергии для поддержания жизнедеятельности организма. Обмен энергии обеспечивает поддержание жизнедеятельностисохранение устойчивого неравновесного негэнтропийного состояния живого тела. ТЕРМОРЕГУЛЯЦИЯ ТЕПЛООБРАЗОВАНИЕ И ТЕМПЕРАТУРА ТЕЛА Способность организма человека поддерживать постоянную температуру обусловлена сложными биологическими и физикохимическими...
25334. ОБМЕН БЕЛКОВ 24.5 KB
  В состав белков входят различные аминокислоты к вторые подразделяются на заменимые и незаменимые. Из печени такие аминокислоты поступают в ткани и используются для синтеза тканеспецифичных белков. При избыточном поступлении белков с пищей после отщепления от них аминогрупп они превращаются в организме в углеводы и жиры.
25335. ОБМЕН ЛИПИДОВ 25.5 KB
  Общее количество жира в организме человека колеблется в широких пределах и составляет 1020 массы тела при ожирении оно может достигать 4050. Жировые депо в организме непрерывно обновляются. При обильном углеводном питании и отсутствии жиров в пище синтез жира в организме может происходить из углеводов.
25336. ОБМЕН УГЛЕВОДОВ 23.5 KB
  Избыток глюкозы в печени фосфорилируется и переходит в гликоген. При уменьшении концентрации глюкозы в крови резко снижается физическая работоспособность. Важным производным глюкозы является аскорбиновая кислота витамин С которая не синтезируется в организме человека. При голодании запасы гликогена в печени и концентрация глюкозы в крови уменьшаются.