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

Нажав на пункт свойства, перед Вами появится следующее диалоговое окно:

Закладка “Планшет” отвечает за свойства планшета. Закладка “Редактор” отвечает за свойства текстового и графического редакторов. Закладка “Интерпретатор” отвечает за параметры интерпретатора.

Для того, чтобы посмотреть значения переменных, надо в меню “Окно” выбрать пункт “ таблица переменных ”. Выглядеть на мониторе компьютера это будет так:

Здесь отображаются переменные и их значения. Кроме того, существует возможность редактирования списка переменных.

Чтобы закончить работу с системой нужно выбрать команду “выход” в меню “файл” или нажать клавиши: <Alt><X>.

4.5. Внутреннее представление данных

Перечислим основные структуры данных, используемые в системе “Блок схема”.

Блок-схема алгоритма представляется как список структур следующего вида:

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

int result; // счетчик числа операндов операций или функции

};

Заключение

Данная работа представляет собой транслятор с языка блок схем.

Система состоит из оболочки, графического редактора блок-схем, встроенного текстового редактора, интерпретатора, пошагового отладчика и конвертора на язык Си.

Система отлажена и протестирована на серии примеров. Система реализована в двух вариантах:

· Под операционную систему MS-Dos,

· Под операционные системы Windows NT, Windows 95, Windows 98.

Размер исполняемого файла в среде MS-Dos 300 Кбайт, в среде Windows 900 Кбайт.

Результаты данной работы были представлены на 6ой международной научно-практической конференции “Новые информационные технологии в университетском образовании”, которая проходила в городе Новосибирске с 17 по 19 марта 1999 года. На конференции был сделан доклад (тезисы опубликованы).

Система создавалась с целью обучения студентов первого курса ФПМиК основам программирования. Предполагается её активное использование.

Литература

1. Лебедев В.Н. Введение в системы программирования. - М: Статистика, 1975.-315с.

2. Грис Д. Конструирование компиляторов для цифровых вычислительных машин, - М: Мир, 1975.-544с.

3. Касьянов В.Н. , Поттосин И.В. Методы построения трансляторов.- Новосибирск: Наука, 1986. -343с.

4. Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции в 2-х томах. - М: Мир, 1978.

5. Соловьёв А.С. Интерпретатор языка блок-схем. // Материалы научно-практической конференции “Новые информационные технологии в университетском образовании”. - Новосибирск: Издательство ИДМИ, 1999.-227с.

6. Демин А.Ю., Гусев А.В. Визуальное программирование программ на основе блок-схем. // Материалы научно-практической конференции “Новые информационные технологии в университетском образовании” Новосибирск: Издательство ИДМИ, 1999.-227с.

7. Паронджанов В.Д. Язык программирования “ДРАКОН” // Программирование. – 1995. - №3.

8. Паронджанов В.Д. Учись рисовать ясные блок-схемы. - М: “Радио и связь”, 1995.

9. Рейсдорф Кент, Хендерсон Кен Освой самостоятельно Borland C++Builder. - Москва: ЗАО “Издательство БИНОМ”, 1998.-704с.

10. Lee C.Y. An algorith for path connetion and its applications. // “IRE Trans.”, V.EC-10 - № 3.

Приложение

Приложение 1: Примеры блок-схем

MS-Dos версия:

Windows версия:

Пример 1. Нахождение максимума из двух чисел.


Страница: