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

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;// указатель на следующий элемент таблицы