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.

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


 

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

31767. Сравнительная характеристика специальных налоговых режимов 44.5 KB
  ЕСХН п. При ЕСХН п. Не вправе: 1 организации имеющие филиалы и или представительства; 2 банки; 3 страховщики; 4 негосударственные пенсионные фонды; 5 инвестиционные фонды; 6 профессиональные участники рынка ценных бумаг; 7 ломбарды; 8 организации и ИП занимающиеся производством подакцизных товаров и добычей реализацией полезных ископаемых кроме общераспространенных; 9 занимающиеся игорным бизнесом; 10 нотариусы адвокаты; 11 участники соглашений о разделе продукции; 12 те кто перешел на ЕСХН в соответствии с гл. На ЕСХН...
31769. Страховые в организациях АПК 39.5 KB
  В соответствии со статьей 12 Федерального закона О развитии сельского хозяйства предусмотрены субсидии на компенсацию не менее 50 уплаченной страховой премии страхового взноса по договорам страхования урожая сельскохозяйственных культур заключенные ими со страховыми организациями имеющими лицензию на проведения данного вида страхования. Страховые случаи: Посевы сельскохозяйственных культур и урожая многолетних насаждений считаются застрахованными на случай их уничтожения или повреждения в результате воздействия опасных для производства...
31770. Тарифы страховых взносов во внебюджетные фонды в 2012 году 30 KB
  С 1 января 2012 года вступают в силу изменения внесенные в закон о страховых взносах. Напомним что в текущем году совокупная ставка страховых взносов составляет 34. Начиная со следующего года ставка страховых взносов в ПФР уменьшится с 26 до 22.
31771. Субъекты обязательного аудита 32.5 KB
  Постановлением правительства №1355 и №408 установлено что бухгалтерская и финансовая отчетность экономических субъектов подлежит обязательной ежегодной аудиторской проверке по следующим критериям системе показателей: 1. Подлежат обязательной ежегодной аудиторской проверке экономические субъекты имеющие организационноправовую форму открытого акционерного общества независимо от числа его участников и размера уставного капитала. Обязательной аудиторской проверке подлежат: банки и другие кредитные учреждения; страховые организации и общества...
31772. Сущность и принципы нормативного метода учета затрат 35.5 KB
  Сущность и принципы нормативного метода учета затрат. Варианты организации нормативного учета затрат Сущность нормативного метода учета затрат Нормативный метод учета затрат система производственного учета объединяющая оперативный аналитический и калькуляционный виды учета тесно связанная с планированием нормированием и организацией производства. предполагает установление норм потребления ресурсов и учетных цен этих ресурсоворганизацию учета по установленным нормам нормативам затрат; учет отклонений от норм с установлением их размера...
31773. Сущность системы «директ-костинг» 37.5 KB
  Постоянные расходы не включают в расчет себестоимости изделий а как расходы данного периода списывают с полученной прибыли в течение того периода в котором они были произведены. Маржинальным доходом называется сумма постоянных затрат и прибыли или сумма покрытия. В отчете о финансовых результатах видно изменение прибыли вследствие изменения переменных расходов цен реализации и структуры выпускаемой продукции. Хозяйственная деятельность представляет собой процесс инвестирования финансовых ресурсов с целью получения прибыли.
31774. Сущность‚ роль и функции экономического контроля в управлении экономикой 31.5 KB
  Функционально система управления любого уровня состоит из системы прогнозирования экономического анализа планирования организации оперативного регулирования учета и контроля. Одним из основных вопросов контроля является определение его сущности. Важным звеном единой системы финансовохозяйственного контроля является экономический контроль.
31775. Система «Стандарт-кост» 23.5 KB
  Отличие от нормативного учета – система управления производством в которой не стоит проблема учета а решается задача точного исполнения; более жестко отслеживатся технологический процесс недопускается никаких отклонений. Ситандарткост более гибкая система при всей ее жесткости.