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.

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


 

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

61672. Линейные, разветвляющиеся и циклические алгоритмы в блок-схемах 26.95 KB
  Ребята здравствуйте сегодня на уроке мы изучим новую тему которая в свою очередь поможет нам закрепить и углубить знания полученные на двух прошлых уроках Но для начала проверим как вы справились с домашним заданием и немного повторим материал...
61673. Множества. Отношения между множествами 31.71 KB
  Цель обобщение и углубление изученного материала; проверка и закрепление знания о понятиях €œмножество и €œэлементы множества; проверка и закрепление умения устанавливать отношения между множествами сравнивать множества по числу элементов в них.
61674. Устройство компьютера 18.52 KB
  Какие виды информации вам известны По форме представления информации различают числовую текстовую звуковую графическую и видеоинформацию Что изучает наука Информатика изучением всевозможных способов передачи хранения и обработки информации занимается...
61677. Лепка спортсмена(или кошки) в музеях хранятся скульптуры известных мастеров 12.62 KB
  Отличие скульптуры от др. видов искусства: язык скульптуры трехмерность объемность пропорции фактура; способы выполнения высекание лепка вырезание отливка; материалы мрамор дерево металл песчаникпенопласт резина воск;значение света можно смотреть с разных точек зрения. По назначению скульптура бывает: Монументальная памятники обычно в городской парковой среде особый жанр монументальной скульптуры мемориальная надгобия Декоративнаяв основном носит прикладной характер украшает архитектурные сооружениядекоративные...
61678. Твои игрушки. Роспись дымковской игрушки 26.7 KB
  Цели и задачи: расписать игрушки в традициях дымковских мастеров; развивать познавательную активность учащихся через проведение исследовательской работы; формировать коммуникативные навыки работы...
61679. Выполнение растительных узоров по шаблону 22.47 KB
  Здравствуйте ребята Д: Здравствуйте Уч: Скажите что нам сегодня понадобится для урока рисования Д: Альбомный лист краски кисточки баночка с водой ластик простой карандаш.
61680. Деревня – деревянный мир 11.79 KB
  Цель урока: Задача урока: научить обучающихся составлять целостную картину/панно на тему «Деревня – деревянный мир» из художественных материалов.