МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Интерпретация блок-схем

    |1| | | |1|1| |1|1|1|1|1|1|1|1|1|1|1|1|1| |1|1| | |

    |1|0|0|0|-|-|1|-|-|-|-|1|-|-|-|-|-|-|-|-|0|-|-|0|0|

    |2| | | |1|1|3|1|1|1|1|1|1|1|1|1|1|1|1|1| |1|1| | |

    |1|-|-|-|-|0|-|0|0|0|0|-|0|0|0|-|0|0|0|0|-|-|-|0|-|

    |3|1|1|1|1| |1| | | | |1| | | |1| | | | |1|1|1| |1|

    |1|0|0|0|-|-|-|-|-|-|-|1|-|-|-|-|-|-|-|-|0|-|-|0|0|

    |4| | | |1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1| |1|1| | |

    |1|0|0|0|-|-|0|-|-|1|0|1|-|-|-|-|-|-|-|-|0|-|-|0|0|

    |5| | | |1|1| |1|1|6| |1|1|1|1|1|1|1|1|1| |1|1| | |

    |1|0|0|0|-|-|-|-|-|-|-|1|-|-|-|-|-|-|-|-|-|-|-|0|-|

    |6| | | |1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1| |1|

    |1|0|0|0|-|-|0|-|-|-|1|1|-|-|-|-|-|-|-|-|0|-|-|0|0|

    |7| | | |1|1| |1|1|1|6|1|1|1|1|1|1|1|1|1| |1|1| | |

    |1|0|0|0|-|-|0|-|-|-|-|1|-|1|-|-|-|-|-|-|0|-|-|0|0|

    |8| | | |1|1| |1|1|1|1|1|1|9|1|1|1|1|1|1| |1|1| | |

    |1|0|0|0|-|-|0|-|-|-|-|-|-|-|0|-|-|-|-|-|0|-|-|0|0|

    |9| | | |1|1| |1|1|1|1|1|1|1| |1|1|1|1|1| |1|1| | |

    |2|0|0|0|-|-|-|-|-|-|-|1|-|-|0|-|-|-|-|2|0|-|-|0|0|

    |0| | | |1|1|1|1|1|1|1|1|1|1| |1|1|1|1|1| |1|1| | |

    |2|0|0|0|-|-|0|-|-|-|-|-|-|-|0|-|-|-|-|-|0|-|-|0|0|

    |1| | | |1|1| |1|1|1|1|1|1|1| |1|1|1|1|1| |1|1| | |

    |2|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|

    |2| | | | | | | | | | | | | | | | | | | | | | | | |

    |2|0|0|0|-|-|-|-|-|-|-|1|-|-|0|-|-|-|-|-|0|-|-|0|0|

    |3| | | |1|1|1|1|1|1|1|1|1|1| |1|1|1|1|1| |1|1| | |

    |2|0|0|0|-|-|0|-|-|-|-|1|-|-|-|-|-|-|-|-|0|-|-|0|0|

    |4| | | |1|1| |1|1|1|1|1|1|1|1|1|1|1|1|1| |1|1| | |

    Матрица синтаксических переходов блока “НАЧАЛО”

    |сост|Иден|Конс|Int |Long|Char|Floa|Doub|, |; |[ |] |NULL|( |

    |ояни|тифи|тант| | | |t |le | | | | | | |

    |е |като|а | | | | | | | | | | | |

    | |р | | | | | | | | | | | | |

    |0 |-30 |-31 |2 |1 |2 |2 |2 |-32 |-32 |-32 |-32 |Е |-32 |

    |1 |-30 |-31 |2 |-30 |-30 |-30 |-30 |-32 |-32 |-32 |-32 |-32 |-32 |

    |2 |3 |-33 |-33 |-33 |-33 |-33 |-33 |-32 |-32 |-32 |-32 |-32 |-32 |

    |3 |-32 |-32 |-32 |-32 |-32 |-32 |-32 |2 |0 |4 |-32 |-32 |-32 |

    |4 |-34 |5 |-34 |-34 |-34 |-34 |-34 |-34 |-34 |-34 |-34 |-34 |-34 |

    |5 |-34 |-34 |-34 |-34 |-34 |-34 |-34 |4 |-34 |-34 |6 |-34 |-34 |

    |6 |-34 |-34 |-34 |-34 |-34 |-34 |-34 |2 |0 |-34 |-34 |-34 |-34 |

    Матрица синтаксических переходов блока “ВВОД”

    |Состояние |идентификатор |[ |, |; |( |NULL |

    |0 |1 |-35 |-35 |-35 |-35 |-35 |

    |1 |-35 |1 \ 0 |0 |2 |-35 |-35 |

    | | |\-36 | | | | |

    |2 |1 |-35 |-35 |-35 |-35 |Выход |

    Матрица синтаксических переходов индексации массивов 1

    |1 |. |. |. |2\0|. |. |3 |3 |. |. |3 |3 |3 |3 |3|. |Е |. |.|

    |2 |. |. |. |. |. |. |3 |3 |. |. |3 |3 |3 |3 |3|. |Е |. |.|

    |3 |1 |. |2 |. |. |. |. |. |. |. |. |. |. |. |.|1\1 |. |. |.|

    |4 |1 |. |2 |. |. |. |. |. |. |. |. |. |. |. |.|1\1 |. |. |.|

    Матрица синтаксических переходов индексации массивов 2

    |1 |. |. |. |2\0|Е |0 |3 |3 |. |. |3 |3 |3 |3 |3|. |. |. |.|

    |2 |. |. |. |. |Е |0 |3 |3 |. |. |3 |3 |3 |3 |3|. |. |. |.|

    |3 |1 |. |2 |. |. |. |. |. |. |. |. |. |. |. |.|5\1 |. |. |.|

    |4 |1 |. |2 |. |. |. |. |. |. |. |. |. |. |. |.|5\1 |. |. |.|

    |5 |. |. |. |. |Е |0 |3 |3 |. |. |3 |3 |3 |3 |3|5\1 |. |. |.|

    Матрица синтаксических переходов функции strlen

    |состояни|Идентифи|[ |) |( |NULL |( |Констант|

    |е |-катор | | | | | |а |

    |0 |. |. |. |. |. |2 |. |

    |1 |. |3 \ 0 |Выход |. |. |. |. |

    |2 |1 |. |. |. |. |. |4 |

    |3 |. |. |Выход |. |. |. |. |

    |4 |. |. |Выход |. |. |. |. |

    Матрица синтаксических переходов блока “ВЫВОД”

    |сос|Кон|Кон|1 |2 |5 |Clo|Str|, |( |[ |; |Иде|( |NUL|) |

    |тоя|ста|ста| | | |ck |len| | | | |нти| |L | |

    |ние|нта|нта| | | | | | | | | |фик| | | |

    | |str| | | | | | | | | | |ато| | | |

    | | | | | | | | | | | | |р | | | |

    |0 |1 |2 |5 |. |4 |6 |2\2|. |2\3|. |. |9 |. |. |. |

    |1 |. |. |. |. |. |. |. |0 |. |. |10 |. |. |. |. |

    |2 |. |. |. |3 |. |. |. |0 |. |. |10 |. |. |. |. |

    |3 |. |2 |. |. |4 |6 |2\2|. |2\3|. |. |9 |. |. |. |

    |4 |. |. |. |. |. |. |. |. |2\3|. |10 |. |. |. |. |

    |5 |. |2 |. |. |4 |6 |2\2|. |2\3|. |. |9 |. |. |. |

    |6 |. |. |. |. |. |. |. |. |7 |. |. |. |. |. |. |

    |7 |. |. |. |. |. |. |. |. |. |. |. |. |. |. |8 |

    |8 |. |. |. |3 |. |. |. |0 |. |. |10 |. |. |. |. |

    |9 |. |. |. |3 |. |. |. |0 |. |2\0|10 |. |. |. |. |

    |10 |1 |2 |5 |. |4 |6 |2\2|. |2\3|. |. |9 |. |Е |. |

    Матрица синтаксических переходов блока “Автоматические действия”

    |Сос|Кон|Кон|Иде|( |[ |; |1 |2 |3 |5 |Clo|Get|Kbh|Str|) |( |NUL|

    |тоя|ста|ста|нти| | | | | | | |ck |ch |it |len| | |L |

    |ние|нта|нта|фик| | | | | | | | | | | | | | |

    | |str| |. | | | | | | | | | | | | | | |

    |0 |. |. |1 |. |. |. |. |. |. |. |. |. |. |. |. |. |. |

    |1 |. |. |. |2\0|. |. |. |3 |. |. |. |. |. |. |. |. |. |

    |2 |. |. |. |. |. |. |. |3 |. |. |. |. |. |. |. |. |. |

    |3 |. |4 |5 |4\3|. |. |6 |. |. |8 |13 |10 |13 |4\2|. |. |. |

    |4 |. |. |. |. |. |9 |. |7 |. |. |. |. |. |. |. |. |. |

    |5 |. |. |. |. |4\0|9 |. |7 |. |. |. |. |. |. |. |. |. |

    |6 |. |4 |5 |4\3|. |. |. |. |. |8 |13 |. |13 |4\2|. |. |. |

    |7 |. |4 |5 |4\3|. |. |. |. |. |8 |13 |. |13 |4\2|. |. |. |

    |8 |. |. |. |4\3|. |. |. |. |. |. |. |. |. |. |. |. |. |

    |9 |. |. |1 |. |. |. |. |. |. |. |. |. |. |. |. |. |Е |

    |10 |. |. |. |11 |. |. |. |. |. |. |. |. |. |. |. |. |. |

    |11 |. |. |. |. |. |. |. |. |. |. |. |. |. |. |12 |. |. |

    |12 |. |. |. |. |. |9 |. |. |. |. |. |. |. |. |. |. |. |

    |13 |. |. |. |14 |. |. |. |. |. |. |. |. |. |. |. |. |. |

    |14 |. |. |. |. |. |. |. |. |. |. |. |. |. |. |4 |. |. |

    Матрица синтаксических переходов математического выражения

    |сост|иден|Конс|Конс|1 |2 |5 |Cloc|Strl|( |[ |) |( |NULL|

    |ояни|тифи|тант|тант| | | |k |en | | | | | |

    |е |като|а |а | | | | | | | | | | |

    | |р |str | | | | | | | | | | | |

    |0 |1 |. |3 |4 |. |5 |6 |3\2 |3\3 |. |. |. |. |

    |1 |. |. |. |. |2 |. |. |. |. |3\0 |Е |. |. |

    |2 |1 |. |3 |. |. |5 |6 |3\2 |3\3 |. |. |. |. |

    |3 |. |. |. |. |2 |. |. |. |. |. |Е |. |. |

    |4 |1 |. |3 |. |. |5 |6 |3\2 |3\3 |. |. |. |. |

    |5 |. |. |. |. |. |. |. |. |3\3 |. |. |. |. |

    |6 |. |. |. |. |. |. |. |. |7 |. |. |. |. |

    |7 |. |. |. |. |. |. |. |. |. |. |3 |. |. |

    Матрица синтаксических переходов блока “Подпрограмма”

    |Состоя|Конста|иденти|[ |; |, |2 |Progra|( |NULL |

    |ние |нта |фикато| | | | |mm | | |

    | |str |р | | | | | | | |

    |0 |. |1 |. |. |. |. |4 |. |. |

    |1 |. |. |2 \ 0 |. |. |3 |. |. |. |

    |2 |. |. |. |. |. |3 |. |. |. |

    |3 |. |. |. |. |. |. |4 |. |. |

    |4 |6 |5 |. |. |. |. |. |. |. |

    |5 |. |. |. |. |4 |. |. |. |. |

    |6 |. |. |. |7 |. |. |. |. |. |

    |7 |. |. |. |. |. |. |. |. |Выход |

    Матрица синтаксических переходов блоков “Метка” и “Безусловный переход”

    |Состояние |Константа |; |( |NULL |

    |0 |1 |. |. |. |

    |1 |. |2 |. |. |

    |2 |. |. |. |Выход |

    Матрица синтаксических переходов блока “Ветвление по условию”

    |состо|Конст|Конст|Идент|( |[ |! |4б |; |( |NULL |

    |яние |анта |анта |ифика| | | | | | | |

    | |str | |тор | | | | | | | |

    |0 |. |1 |2 |3 \ 4|. |4 |. |. |. |. |

    |1 |. |. |. |. |. |. |5 |6 |. |. |

    |2 |. |. |. |. |3 \ 0|. |5 |6 |. |. |

    |3 |. |. |. |. |. |. |5 |6 |. |. |

    |4 |. |. |2 |. |. |. |. |. |. |. |

    |5 |. |1 |2 | 1 \ |. |4 |. |. |. |. |

    | | | | |4 | | | | | | |

    |6 |. |. |. |. |. |. |. |. |. |Выход|

    Вспомогательная матрица синтаксических переходов блока

    “ Ветвление по условию ”

    |состо|Конст|Конст|идент|( |[ |! |4б |) |( |NULL |

    |яние |анта |анта |ифика| | | | | | | |

    | |str | |тор | | | | | | | |

    |0 |. |1 |2 |3 \ 4|. |4 |. |. |. |. |

    |1 |. |. |. |. |. |. |5 |Выход|. |. |

    |2 |. |. |. |. |3 \ 0|. |5 |Выход|. |. |

    |3 |. |. |. |. |. |. |5 |Выход|. |. |

    |4 |. |. |2 |. |. |. |. |. |. |. |

    |5 |. |1 |2 |1 \ 4|. |4 |. |. |. |. |

    Матрица синтаксических переходов блока “Стрелка”

    |состояние |true |false |; |( |NULL |

    |0 |1 |1 |. |. |Выход |

    |1 |. |. |2 |. |. |

    |2 |. |. |. |. |Выход |

    Матрица синтаксических переходов блока “Мультиветвление”

    |Состояние |Идентификатор |; |( |NULL |

    |0 |1 |. |. |. |

    |1 |. |2 |. |. |

    |2 |. |. |. |Выход |

    Матрица синтаксических переходов блока “Конец”

    |состояние |Return |; |( |( |NULL |

    |0 |1 |. |. |. |. |

    |1 |. |3 |2 \ 3 |. |. |

    |2 |. |3 |. |. |. |

    |3 |. |. |. |. |Выход |

    Приложение 3: Текст основных классов программы

    Описание класса блок-схемы алгоритма:

    файл описание класса ClassScheme (класс схемы)

    разработан для языка блок схем, который используется

    в интерпретаторе Basic Block for Windows 95 ver. 2.0.

    Copyright(c) by Соловьев А.С., 1998 г., ТГУ, ФПМК,

    кафедра программирования

    #ifndef __CLASS_SCHEME

    #define __CLASS_SCHEME

    #ifndef __STRUCT_FILE

    #include "struct.h"

    #endif

    // подключаемые библиотеки

    #include

    #include

    #include

    #include

    // описатели типов блоков

    #define BEGIN_BLOCK 0// блок типа начало

    #define END_BLOCK 1// блок типа конец

    #define IF_BLOCK 2// блок типа если

    #define INPUT_BLOCK 3// блок типа ввод

    #define OUTPUT_BLOCK 4// блок типа вывод

    #define PP_BLOCK 5// блок типа подпрограмма

    #define AD_BLOCK 6// блок типа автоматические действия

    #define LABEL_BLOCK 7// блок типа метка

    #define BP_BLOCK 8// блок типа безусловный переход на метку

    #define MULTI_BLOCK 9// блок типа мультиветвление

    #define VETV_BLOCK 10// блок типа ветвь

    #define UP_BLOCK 11// блок стрелка вверх

    #define DOWN_BLOCK 12// блок стрелка вниз

    #define UP_RIGHT_BLOCK 13// блок стрелка вверх и направо

    #define UP_LEFT_BLOCK 14// блок стрелка вверх и налево

    #define DOWN_LEFT_BLOCK 15// блок стрелка вниз и налево

    #define DOWN_RIGHT_BLOCK 16// блок стрелка вниз и направо

    #define LEFT_BLOCK 17// блок стрелка налево

    #define RIGHT_BLOCK 18// блок стрелка направо

    #define RIGHT_UP_BLOCK 19// блок стрелка направо и вверх

    #define LEFT_UP_BLOCK 20// блок стрелка налево и вверх

    #define LEFT_DOWN_BLOCK 21// блок стрелка налево и вниз

    #define RIGHT_DOWN_BLOCK 22// блок стрелка направо и вниз

    // описатели типов стрелок

    class ClassScheme

    {

    public:

    bool TypeOfProgramm;// тип программы (подпрограмма==true)

    char *FileNameScheme;// имя файла с которым мы работаем

    struct BLOCK* HeapBlock;// указатель на вершину списка блоков схемы

    struct SVERTKA* SvertkaBlock;// указатель на свертку блока

    struct BLOCK* Buffer;// указатель на блок сидящий в буффере

    struct VARIABLE* HeapVariable;// указатель на вершину таблицы

    переменных

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

    struct Rects RectPl;// параметры планшета схемы

    struct CONSTANTA* MultiConst;// свертка блока мультиветвления

    bool FlagRun;// признак выполняется программа или нет

    // вспомогательные функции

    int Poisk_Function(char *,int ,char* []);//поиск функции//Ok

    void DeleteVariable(struct VARIABLE* );//удалить таблицу

    переменных//Ok

    void DeleteSvertka(struct SVERTKA*);//удалить свертку//Ok

    void DeleteConst(struct CONSTANTA* );//удалить таблицу констант//Ok

    int ClassSimbol(const char&);//класс символа//Ok

    int LenTextBlock(char*);//длинна текста блока// Ok

    void DeleteScheme(struct BLOCK*); //Удалить схему// Ok

    void CopyStrToStr(char *,char *); //Копировать строку в строку//Ok

    int AddStringToTextBlock(struct BLOCK *,char *);//Добавить строку к

    //тексту блока//Ok

    void GetsStringFromFile(FILE *,char *);//Прочитать строку из

    файла//Ok

    // конструкторы

    ClassScheme();

    // функции для чтения записи схемы

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

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

    };

    #endif

    -----------------------

    ‘a’;

    Переменная1;

    сортировка1(x, y, z);

    метка1;

    “Переменная y=”,y;

    “Переменная x=”,x;

    a<=x && (x != f || f == z );

    a=b*(c+d)-w;

    f=g;

    f, s, a;

    метка1;

    Int x,y,max;

    x,y;

    x

    max=y;

    max=x;

    “max=”,max;

    конец

    Входная программа

    . Поиск блока “начало”

    . Построение свертки текста блока

    . Проверка синтаксиса блока “начало”

    . Выделение памяти под переменные

    . Построение сверток всех блоков

    . Проверка синтаксиса блоков

    . Построение ПолИЗа

    . Установка связей между блоками

    . Проверка правильности связей

    . Трансляция и выполнение

    . Пошаговая трансляция

    При переводе на вутренний язык тран-слятора сначала вы-полняется лексиче-

    ский анализ, а затем синтаксический

    Этап семантического анализа

    Входная программа

    Сканер

    Класс символов

    L,T

    4 2 3 1 0 -1

    Формиро-вание кода ошибки

    L-служебное слово ?

    Занесение в таблицу имен

    Занесение в таблицу констант

    Формирование дескриптора

    Конец входной программы ?

    Конец

    Синтаксический анализ

    +

    x

    3

    +

    -

    1. Выборка очередного символа из обратной польской записи

    2.

    S – операнд ?

    3. CO[i]=S;

    i=i+1;

    4. S – знак операции ?

    8.

    конец ?

    5. Определение минимального номера рабочей переменной

    6. Выполнение подпрограммы формирования машинных команд

    7. CO[i-k]=rl;

    i=i-k+1;

    j=l+1;

    9. Занесение в таблицу ошибок.

    10. i==2 &&

    CO[l]= rl?

    Выход

    Входная программа

    Анализ

    Трансляция

    Оптимизация

    Программа на внутреннем языке

    Анализ

    Трансляция

    Оптимизация

    Программа на объектном (машинном) языке

    Страницы: 1, 2, 3, 4, 5, 6


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.