Интерпретация блок-схем
Рефераты >> Программирование и компьютеры >> Интерпретация блок-схем

unsigned char LoadFromFile(char *);// функция для считывания файла

// с диска //Ok

unsigned char SaveToFile(char *); // функция для записи файла на

// диск // Ok

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

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 char; // константа типа char

float float; // константа типа float

double double; // константа типа double

char* string; // константа типа string

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

};

struct SVERTKA

{

unsigned char type; // тип свертки

unsigned char intype; // подтип свертки (номер операции, функции,

// процедуры в списке функций)

struct VARIABLE* variable;// если это не переменная то variable==NULL

// если переменной не существует в таблице

// переменных то variable == NULL

struct CONSTANTA* constanta;//указатель на таблицу констант

// если это не константа то constanta==NULL

// если такой константы не существует в таблице

// констант то constanta == NULL

struct SVERTKA* next; // указатель на следующий элемент свертки


Страница: