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.

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


 

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

5181. Генетика и биополитический конфликт в 20 веке. Евгеника 50.5 KB
  Евгеника В 1883 году англичанин Фрэнсис Гальтон – кузен Чарльза Дарвина - заложил основы евгеники. Он считал, что большинство признаков у человека являются наследственными, и их можно улучшить путём контролируемых браков. В позитивной гене...
5182. Генетика и человек 241.5 KB
  Почему люди интересуются генетикой? Люди интересуются генетикой давно, правда, не всегда они называли вопросы наследования определенных признаков генетикой. Проще говоря, издревле человека интересовало, почему дети, как правило, похожи на своих роди...
5183. Генетика и эволюция. строение митотической хромосомы. Типы хромосом... 228.5 KB
  Строение митотической хромосомы. Типы хромосом, их число, размер. Кариотип и гиограмма. Хромосомы человека. Денверская классификация хромосом человека. В области первичной перетяжки располагается центромера – это пластинчатая структура, имею...
5185. Моногібридне та аналізуюче схрещування. Дигібридне схрещування. Інші лабораторні роботи 669.3 KB
  Моногібридне та аналізуюче схрещування. Дигібридне схрещування. Полігібридне схрещування. Взаємодія алельних генів. Взаємодія неалельних генів. Генетика статі. Успадкування ознак зчеплених зі статтю...
5186. Предмет генетики та її місце в системі природничих наук 1.24 MB
  Предмет генетики та її місце в системі природничих наук Предмет генетики та її місце в системі природничих наук Основні розділи генетики. Методи генетики. Гібридологічний аналіз, його значення. Історія генетики, її витоки, ет...
5187. Системы скрещивания. Гетерозис. Искусственный отбор 148 KB
  Системы скрещивания. Гетерозис. Искусственный отбор. План лекции: Классификация типов скрещивания. Родственное скрещивание (инбридинг). Неродственное скрещивание (аутбридинг). Отдаленная гибридизация...
5188. Генетика. Биоэкология. Методологические основы генетики. Курс лекций 644.5 KB
  Лекция 1. Методологические основы генетики Предмет генетики Понятие о наследственности и изменчивости Методы генетических исследований Значение генетики для практики Современные проблемы генетики Предмет генетики. Возра...
5189. Предмет і завдання медичної генетики. Роль спадковості в патології людини 150 KB
  Предмет і завдання медичної генетики. Роль спадковості в патології людини Предмет та завдання медичної генетики. Значення генетики для медицини. Питома вага природженої та спадкової патології у структурі захворюваності й смертності...