Интерпретация блок-схем

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование

терпретации блок-схемы

 

struct VARIABLE* PoiskVar(char* );//поиск переменной по имени//Ok

struct VARIABLE* CreateVar(char*, char,unsigned int,unsigned int*,int);

//создать переменную с параметрами//Ok

struct CONSTANTA* CreateConst(unsigned char,char*);//создание константы//Ok

unsigned char TextBlockToSvertka(char *, int);//функция для построения

// свертки блока//Ok

int ClassSvertka(struct SVERTKA* ,int [][2],int ,int ,int );// класc свертки//Ok

void UnarOperation(struct SVERTKA*);// определяет унарные

// операции которые обозначены как n-арные(+,-)//Ok

struct SVERTKA* Insetr(struct SVERTKA* ,unsigned char);//вставка

// оператора в начала последовательности и после ; //Ok

unsigned char Sintacsis(struct SVERTKA*,int [][2],int,int,int,int*,

int*);// проверка синтаксиса свертки//Ok

struct SVERTKA* SintacsisHelp(struct SVERTKA*,int [][2],int,int,int,

int*,int*);// проверка синтаксиса свертки//Ok

struct SVERTKA* Polis(struct SVERTKA*);//построение полиза//Ok

struct SVERTKA* Stek(struct SVERTKA* ,int);//поиск элемента стека если

// его нет то создание его//Ok

struct SVERTKA* Run(unsigned char,int&,struct SVERTKA*,int,

struct SVERTKA*);//

// выполнение конкретной операции

unsigned char Run(struct SVERTKA* );//функция выполнения

//команд полиза//Ok

unsigned char RunBegin(struct SVERTKA*);//выполнение команд блока начало//Ok

unsigned char Translation1(void);//Первый этап трансляции//Ok

unsigned char Translation2(void);//второй этап трансляции//Ok

unsigned char Translation3(void);//Третий этап трансляции

struct BLOCK* BpFunction(struct BLOCK*);//выполнение связки БП//Ok

float Trigonometria(struct SVERTKA*,int&);

// обработчик тригонометрических функций//Ok

struct SVERTKA* NewSvertka(int&,unsigned char,unsigned char);

// построение новой свертки//Ok

 

// функции поиска блока

 

struct BLOCK *Poisk(struct BLOCK *);// поиск блока по адресу//Ok

struct BLOCK *Poisk(int,int);// поиск блока по заданным координатам//Ok

struct BLOCK *Poisk(unsigned int);// поиск блока по типу блока//Ok

 

// функции создания, добавления, вырезания и удаления блока из схемы

 

void Add(struct BLOCK*);//добавить блок к схеме//Ok

struct BLOCK *Create(unsigned int,int,int,int,int,int,int,char *);

// создать блок по параметрам//Ok

struct BLOCK* Cut(struct BLOCK* );//вырезать блок из схемы//Ok

void DelBlock(struct BLOCK* );//удалить блок из схемы по адресу//Ok

void DelBlock(int ,int );//удалить блок из схемы по координатам//Ok

 

// функции для работы с буфером обмена блоков схемы

 

void CopyBuffer(struct BLOCK*);//скопировать блок в буфер обмена

//по адресу//Ok

void CopyBuffer(int x,int y);//скопировать блок в буфер обмена

//по заданным координатам//Ok

void CutBuffer(struct BLOCK*);//вырезать блок из схемы и занести

//в буффер обмена по адресу //Ok

void CutBuffer(int x, int y);//вырезать блок из схемы и занести

//в буффер обмена по координатам //Ok

void PasteFromBuffer(int, int);//добавить блок в схему в позицию x,y/Ok

 

// функции вычисления размеров планшета(минимальных)

 

void SizeOfPlanhet( void );//Ok

 

// Функции алгоритма Ли

 

void AddNumber(int*,int,int,int,int,int);//добавить число//Ok

int Maximum(int*,int,int,int,int);//найти максимум//Ok

float Rastoanie(int,int,int,int);//Вычислить расстояние//Ok

void Index(int*,int,int,int,int,int,int,int,int &,int &);//Определение

//индекса//Ok

bool Algoritm(int*,int,int,int,int,int,int);//Алгоритм//Ok

int* MatrLee( int&,int&,int,int,int,int);// построение матрицы//Ok

bool StartLee(int,int,int,int);//стартовая функция Ли//Ok

 

// деструкторы

 

~ClassScheme();

};

#endif

 

Файл объявления основных структур программы:

 

Файл описание основных структур используемых интерпретатором

языка блок-схем Basic Block for Windows 95 ver 2.0.

Copyright(c) 1998, Соловьев А.С. 1998/1999 гг.

 

#ifndef __STRUCT_FILE

#define __STRUCT_FILE

 

struct NameOfVar

{

char* name;

struct NameOfVar* next;

};

struct Rects

{

int Left;

int Top;

int Right;

int Bottom;

};

 

struct BLOCK

{

unsigned int type; // тип блока

int x; // координата блока по оси x

int y; // координата блока по оси y

char *text; // текст блока

int true_x; // переход по ИСТИНЕ по оси x на планшете

int true_y; // переход по ИСТИНЕ по оси y на планшете

int false_x;// переход по ЛЖИ по оси x на планшете

int false_y;// переход по ЛЖИ по оси y на планшете

struct BLOCK *next; // указатель на следующий элемент схемы

bool StopRun;// прнизнак точки входа в программу

bool ErrorFlag;// признак наличия ошибок в данном блоке

bool RunBlock;// признак выполнимого блока в текущий момент

struct SVERTKA* Poliz;// полиз текста блока с учетом свертки

};

 

struct VARIABLE

{

AnsiString Hint; // подсказка при индексации

char* name; // имя переменной

char type; // тип переменной

unsigned int Size; // размерность массива если Size == 0,

// то это переменная

unsigned int* SizeN; // массив значений размерностей,

// если это переменная то SizeN == NULL

char* ready; // признак готовности к работе переменной

int* __int; // значение переменной типа int

long int* __long_int; // значение переменной типа long int

char* __char; // значение переменной типа char

float* __float; // значение переменной типа float

double* __double; // значение переменной типа double

struct VARIABLE* next;// указатель на следующий элемент таблицы

// переменной

};

 

struct CONSTANTA

{

unsigned char type;// тип константы

int __long_int; // константа типа long int

int __int; // константа типа int

char __