МЕНЮ


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

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


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

    входной программы, распознает их тип и определяет возможность немедленного

    выполнения. Информация о возможности выполнения оператора передается

    управляющему блоку, который вызывает соответствующую подпрограмму,

    исполняющие действия, предписанные оператором.

    Интерпретаторы часто применяются в качестве отладочных и диалоговых

    трансляторов, обеспечивающих работу пользователя с машиной в диалоговом

    режиме с дистанционного терминала. Кроме того, интерпретаторы используют

    для исполнения (интерпретации) на ЭВМ программ, составленных для другой

    ЭВМ, а иногда в качестве последнего блока транслятора компилирующего типа.

    В последнем случае транслятор состоит из двух частей: первой – компилятора,

    переводящего программу на промежуточный язык, являющимся входным языком

    интерпретатора; второй – интерпретатора, исполняющего программу на

    промежуточном языке.

    В такой схеме компилятор можно сделать очень простым. Интерпретатор

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

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

    объектной программы, оформлением её в единый модуль загрузки или в виде

    нескольких модулей, если она велика.

    Недостаток интерпретатора заключается в неэффективном использовании

    машинного времени. Например, при выполнении циклических программ, один и

    тот же оператор приходится интерпретировать многократно. При повторном

    выполнении программы, интерпретацию приходится выполнять заново, в то время

    как транслятор компилирующего типа позволяет выполнить трансляцию один раз,

    а затем хранить программу в машинных кодах. По указанной причине

    интерпретаторы применяются относительно редко.

    3. Язык блок-схем

    В настоящее время огромное распространение получила тенденция к

    визуализации процесса программирования. Таким образом, создание транслятора

    с языка блок-схем является логическим продолжением развития технологии

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

    обучения программированию.

    Такой язык является неформальным описанием алгоритма, он обладает

    повышенной наглядностью и обозримостью. Язык блок-схем используется при

    разработке системного математического и информационного обеспечения, а

    также при описании процессов функционирования отдельных блоков или

    устройств.

    “Схемой алгоритма называется такое графическое представление алгоритма,

    в котором этапы процесса обработки информации и носители информации

    представлены в виде геометрических символов из заданного ограниченного

    набора, а последовательность процесса отражена направлением линий ” [1].

    Приведенная в данной работе система трансляции с языка блок-схем

    включает следующие подзадачи:

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

    текстовых редакторов (например: Page Maker, Corel Draw, Word и т.д.) нужны:

    1. Свой графический редактор, так как настройка на внутренние форматы

    файлов этих систем приводит к неэффективному использованию ресурсов

    ЭВМ, Поэтому необходим эффективный, графический редактор,

    ориентированный только на объекты типа блоков.

    2. Текстовый редактор, работающий в графическом режиме для

    редактирования текста внутри блоков.

    Во-вторых, кроме редакторов (графического и текстового) необходимо

    создать интерпретатор, так как на его основе можно легко создать систему

    отладки алгоритмов.

    Как уже говорилось выше у любого транслятора существует свой входной

    язык. В данной системе входной язык транслятора состоит из двух языков:

    1. Язык блок-схем (“Графический” язык),

    2. Язык функционального наполнения блок-схем.

    Ниже приводится пример блок-схемы, реализующей выбор наибольшего числа

    из двух чисел. На рисунке 1 приводится пример блок схемы поиска

    максимального из двух значений.

    3.1. Правила построения блок-схем

    Блок-схема алгоритма описывает какой-то процесс или, точнее будет

    сказано, последовательность действий. Отсюда следует, что она должна иметь

    начало и конец. Особо следует отметить, что начало (блок начала программы)

    может быть только один, а выходов (блок конца программы) несколько.

    У каждого символа, из которого строится блок-схема (далее будем

    называть блоки), своя функциональная нагрузка. В соответствии с ней блоки

    должны заполняться текстом.

    Блоки в блок-схеме алгоритма соединяются стрелками в соответствии с

    последовательностью действий, которые реализуют этот алгоритм.

    Необходимо придерживаться последовательности блоков в таких связках,

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

    поговорим в параграфе 3.3.

    Рис.1. Пример блок - схемы алгоритма нахождения максимального из двух

    значений.

    3.2. Блоки

    Блок это минимальная единица интерпретации в языке блок-схем. Как

    было сказано выше, из блоков строится блок-схема алгоритма. Все они

    отличаются не только графическим изображением, но и действиями,

    выполняемыми во время выполнения каждого блока.

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

    алгоритмов.

    таблица 1.

    |Графический символ действия|Идентификатор |Наименование действия |

    | | | |

    | | | |

    | |BEGIN |блок начала программы |

    | | | |

    | |END |блок конца программы |

    | | |блок автоматических |

    | |AD |действий |

    | | | |

    | |PP |Блок вызова подпрограммы|

    | | | |

    | |IF |блок условного перехода |

    | | | |

    | |INPUT |блок ввода данных |

    | | | |

    | |OUTPUT |блок вывода данных |

    | | | |

    | |CASE |блок ветвь |

    | | | |

    | |SWITCH |блок мультиветвления |

    | | | |

    | |LABEL |метка |

    | | | |

    | |GOTO |Безусловный переход на |

    | | |метку |

    Рассмотрим функциональное назначение каждого блока.

    “НАЧАЛО” С этого блока начинается исполнение блок-схемы. Присутствие

    этого блока обязательно. Необходимо заметить, что блок “НАЧАЛО” в блок

    схеме должен быть один.

    “КОНЕЦ” После того, как обрабатывается этот блок, исполнение блок-схемы

    завершается. Присутствие данного блока также обязательно, но в отличие от

    предыдущего, блоков “КОНЕЦ” может быть несколько.

    “АВТОМАТИЧЕСКИЕ ДЕЙСТВИЯ” Присутствие данного блока, как и всех

    последующих блоков, в схеме не обязательно. В блоке действий могут

    выполняться:

    любые математические действия, согласно правилам математики;

    стандартные функции, предоставленные системой “Блок-схема”;

    инициализация переменных.

    “ПОДПРОГРАММА” В этом блоке происходит вызов подпрограммы, которую

    составил сам пользователь.

    “ВЕТВЛЕНИЕ ПО УСЛОВИЮ” В этом блоке проверяется заданное условие на

    истинность. И в зависимости от результата осуществляется ветвление.

    “ВВОД / ВЫВОД” При помощи этих блоков организуется интерфейс

    пользователя с исполняемой схемой, то есть вводится и выводится информация.

    “МЕТКА” Помечает позицию блока, на который происходит переход во время

    выполнения связки “БП”. В этом блоке указывается соответствующая метка.

    Данный блок является частью связки - “БП”.

    “БЕЗУСЛОВНЫЙ ПЕРЕХОД НА МЕТКУ” В этом блоке указывается метка, на

    которую будет происходить переход. Этот блок является частью связки - “БП”.

    Использование этих двух блоков не обязательно. Эти блоки введены с

    целью повышения наглядности блок-схем, так как в результате ввода этих

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

    (исчезает загромождённость схемы стрелками).

    “МУЛЬТИВЕТВЛЕНИЕ” В этом блоке находится переменная, по которой будет

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

    с аналогичным названием (описание связок смотрите далее).

    “ВЕТВЬ” Блок “ветвь” является частью связки “мультиветвление”. В блоке

    “ветвь” задается константа, с которой выполняется сравнение значения,

    полученного в блоке “мультиветвление.”

    3.3. Связки

    Связка - это такая последовательность блоков в блок- схеме, которой

    необходимо придерживаться при создании блок-схемы алгоритма.

    Язык блок-схем располагает всего двумя связками:

    . “БП” - безусловный переход;

    . “Мультиветвление” – мультиветвление.

    “БП” - представляет собой связку из двух блоков: “БЕЗУСЛОВНЫЙ ПЕРЕХОД

    НА МЕТКУ” и “МЕТКА”. Входящие в связку блоки должны содержать одну и ту же

    метку.

    “МУЛЬТИВЕТВЛЕНИЕ” представляет собой связку из последовательности

    блоков, которая начинается с блока “мультиветвление”. Далее идет

    последовательность блоков “ветвь”. Заканчивается данная связка тогда, когда

    встречается блок отличный от блока “ветвь”.

    3.4. Язык наполнения блок – схем

    В данном параграфе мы рассмотрим, как следует заполнять текстом блоки в

    предложенной версии языка блок-схем. В основу этого языка положены два

    языка:

    С (его упрощенный вариант);

    Pascal (его упрощенный вариант).

    “НАЧАЛО” С этим блоком связывается описание переменных. Переменные

    описываются следующим образом:

    тип переменная 1, переменная 2, ... , переменная N;

    тип переменная N+1, ...;

    Множество типов в языке блок схем ограничено:

    int - целое ;

    long_int - длинное целое ;

    float - вещественное ;

    char - символьное .

    Имя переменной - стандартный идентификатор имени в языке C, Pascal. Длина

    имени не ограничена.

    “КОНЕЦ” Содержимое этого блока не просматривается.

    “АВТОМАТИЧЕСКИЕ ДЕЙСТВИЯ” Здесь задаются выражения, строящиеся из

    переменных, констант, математических знаков, математических и стандартных

    функций:

    + сложение,

    - вычитание,

    * умножение,

    / деление,

    = присвоение,

    sin синус,

    cos косинус,

    tg тангенс,

    ctg котангенс,

    arcsin арксинус,

    arccos арккосинус,

    arсtg арктангенс,

    arcctg арккотангенс,

    ln натуральный логарифм,

    lg десятичный логарифм,

    abs абсолютное значение числа (модуль),

    exp функция экспоненты,

    mod взятие целой части при делении,

    div взятие дробной части при делении,

    ^ возведение в степень,

    sqrt нахождение квадратного корня,

    sh гиперболический синус,

    ch гиперболический косинус,

    th гиперболический тангенс,

    а также, стандартные функции, предоставляемые системой "Блок-схема":

    randomize() инициализация датчика случайных чисел,

    random() получение случайного числа,

    clock() получение времени,

    getch() получение кода нажатой клавиши,

    kbhit() получение значения была ли нажата клавиша,

    strlen() получение длины строки,

    и т.д.

    Список функций будет пополняться (полный список смотрите в приложении).

    Приоритет операций соответствует приоритетам языков Pascal и С (приоритеты

    операций смотрите в приложении). Предусмотрена возможность изменять

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

    символом “;”

    Например:

    “ВЕТВЛЕНИЕ ПО УСЛОВИЮ” Текст этого блока должен представлять собой

    логическое условие, после которого ставится “(”. Условие может содержать

    логические связки И - &&, ИЛИ - ||, НЕ - !.

    Например:

    “ВВОД” В этом блоке через запятую указываются переменные значения

    которые вводит сам программист с терминала. После перечисления всех

    переменных ставится “;”

    Например:

    “ВЫВОД” Текст этого блока имеет следующую структуру:

    “текст”, переменная 1, “текст”, переменная 2, ... , переменная N;

    “текст”, переменная N+1, ...;

    то есть, текстовые константы чередуются через запятую с переменными,

    которые надо вывести на экран монитора. В конце ставится “;”.

    Например:

    “БЕЗУСЛОВНЫЙ ПЕРЕХОД НА МЕТКУ” Содержимым этого блока является имя

    метки с “;” на конце.

    Например:

    “МЕТКА” Определяется аналогично предыдущему блоку.

    “ПОДПРОГРАММА” Содержится имя подпрограммы с параметрами.

    Например:

    “МУЛЬТИВЕТВЛЕНИЕ” Вариант оператора “switch” языка Си. В данном блоке

    содержится имя переменной, по которой будет выполняться ветвление.

    Например:

    “ВЕТВЬ” Блок “ветвь” может присутствовать только в связке

    “мультиветвление”. Отдельно не имеет смысла. В блоке “ветвь” задается

    константа, с которой выполняется сравнение значения, полученного в блоке

    “мультиветвление”.

    Применение блоков продемонстрировано в примерах, приведённых в

    приложении.

    4. Система программирования

    4.1. Графический редактор

    Г.Р. - это программа, позволяющая программисту “рисовать” новые и

    редактировать старые блок-схемы. Пользователю предлагается в режиме меню

    следующие возможности для редактирования блок-схем:

    Удаление блоков(

    Установка блоков(

    Разметка планшета координатной сеткой(

    Скроллинг планшета(

    Выбор типа блоков (либо стрелки, либо сами блоки);

    Автоматическое соединение двух выделенных блоков на планшете;

    Изменение параметров планшета;

    Изменение палитры планшета (цветов);

    Возможности редактирования с помощью буфера обмена.

    Все эти возможности можно выбирать либо посредством манипулятора мышь, либо

    с помощью клавиатуры.

    Рассмотрим понятие ПЛАНШЕТ. Назовём поверхность, на которой выполняется

    рисование блок-схемы ПЛАНШЕТОМ. Будем считать, что размеры планшета не

    ограничены. В каждый текущий момент пользователь находится в позиции

    планшета с координатами (X,Y). Координаты (X,Y) задаются в Декартовой

    системе координат, начало координат (0,0) - это середина планшета (именно в

    этой точке находится пользователь при начальном запуске системы “Блок-

    схема”).

    Планшет может быть размечен координатной сеткой (рис.2.).

    [pic]

    рис.2.

    Шаг на планшете выбран так, чтобы в клетку планшета вписывался один элемент

    блок-схемы.

    В связи с тем, что всё пространство, на котором выполняется

    редактирование блок-схемы, невозможно отобразить на экране, то на экране в

    окне редактора выводится прямоугольная область, параллельная осям

    координат, размером N_X на N_Y, где N_X - количество шагов по оси X, а N_Y

    - количество шагов по оси Y.

    Окном редактора называется та часть экрана, которая отводится для

    изображения этой прямоугольной области. Связь между областью планшета и

    окном редактора представляет схема 1.

    Y

    X0 X1 640

    Y0

    J

    N_Y

    Y1

    J+N_Y

    N_X

    X

    I I+N_X

    480

    схема 1.

    Рассмотрим процедуру размещения элементов блок-схемы в окне редактора.

    Так как разрабатываемая система опирается на графический драйвер,

    поддерживающий разрешение 640 на 480 pixel, а координатные оси на экране

    расположены так, как показано на схеме 1, то окно редактора - это

    прямоугольная область экрана с координатами верхнего левого угла (X0,Y0) и

    с координатами нижнего правого угла (X1,Y1).

    Тогда, для того, чтобы отобразить некоторую часть планшета в окне

    редактора, необходимо выполнить преобразование координат планшета в

    экранные координаты. Они осуществляются следующим образом:

    height =(Y1-Y0)/N_Y; это высота блока в экранных координатах(

    width =(X1-X0)/N_X; это ширина блока в экранных координатах(

    Далее установим соответствие между координатами блоков в координатной

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


    Приглашения

    09.12.2013 - 16.12.2013

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

    09.12.2013 - 16.12.2013

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




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