ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

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

     

    Інформатика, програмування

    Томський державний університет

    Факультет прикладної математики і кібернетики

    Кафедра програмування

    ДОПУСТИТИ ДО ЗАХИСТУ В ДАК зав. кафедри програмування професор, д.т.н.

    _______________ А. Ю. Матросова

    "____ "________________ 1999

    Соловйов Олександр Станіславович

    Система візуального програмування

    "Блок-схема" на основі мови блок-схем

    (дипломна робота)

    Науковий керівник доцент, к.т . н.

    _________ Н. А. Белоусова

    Автор роботи

    _________ А.С. Соловйов

    Томськ 1999

    Реферат

    Дипломна робота являє собою систему програмування, якаполегшує навчання програмуванню і початків алгоритмізації. Основнаідея, покладена в основу роботи, - це створення системи трансляції з мовиблок - схем.

    Створена система "Блок-схема" має зручний інтерфейс,графічним редактором блок-схем, вбудованим текстовим редактором,інтерпретатором і конвертором на мову програмування Сі. У системіпередбачена можливість одержання інформації (довідок) як про самусистемі, так і про мову блок - схем. Система забезпечена демонстраційнимиприкладами.

    Система створена в двох варіантах:

    . Під операційну систему MS-DOS 3.x і вище;

    . Під операційні системи Windiows 95, Windows 98 і Windows NT.
    У першому випадку, розробка велася за допомогою мови Borland C + + 3.1
    (сумісна з мовою Turbo C 2.0). По друге, за допомогою пакету Borland
    C + + Builder 3.0.

    Зміст

    Введення 4
    1. Мови програмування 6
    1.1. Класифікація 6
    1.2. Порівняльна характеристика мов. 8
    2. Перекладачі 9
    2.1. Класифікація 9
    2.2. Компілятори та інтерпретатори 9
    3. Мова блок-схем 11
    3.1. Правила побудови блок-схем 11
    3.2. Блоки 12
    3.3. Зв'язки 14
    3.4. Мова наповнення блок - схем 14
    4. Система програмування 18
    4.1. Графічний редактор 18
    4.2. Вбудований текстовий редактор 21
    4.3. Інтерпретатор 22

    4.3.1. Етапи трансляції 22

    4.3.2. Лексичний аналіз 24

    4.3.2.1. Завдання лексичного аналізу 24

    4.3.2.2. Сканер 25

    4.3.3. Синтаксичний і семантичний аналіз 27

    4.3.4. Польська інверсна запис (ПолІЗ) 27

    4.3.4.1. Алгоритм Дейкстри формування ПолІЗа 28

    4.3.4.2. ПолІЗ виразів, що містять змінні синтаксису 29

    4.3.4.3. Алгоритм перекладу ПолІЗа в машинні команди 31

    4.3.5. Загальна схема роботи інтерпретатора 34
    4.4. Оболонка системи 35

    4.4.1. Робота з файлами 35

    4.4.2. Знайомство з системою 36

    4.4.2.1. MS-Dos версія системи 36

    4.4.2.2. Windows версія системи 40
    4.5. Внутрішнє подання даних 46
    Висновок 48
    Література 49
    Додаток 50
    Додаток 1: Приклади блок-схем 50
    Додаток 2: Матриці переходів аналізаторів 52
    Додаток 3: Текст основних класів програми 58

    Введення

    Основна проблема, яка постає перед учнями на заняттях зінформатики, це невідчутність досліджуваного предмета. Живучи в матеріальномусвіті людині досить важко і не дуже цікаво розбиратися зневідчутними операторами.

    Найбільш природною формою подання (сприйняття) інформаціїє графічний спосіб - малюнок, креслення, схема і т.д. До цієї формилюдина вдається кожного разу (можливо неявно для себе), коли необхідновирішувати (описувати, формулювати) дійсно складні завдання. Ефективнеоперування наочними образами, швидке встановлення смислової зв'язкуміж ними - є сильною стороною людського мислення.

    Ще за часів становлення програмування, коли програми писалисяна внутрішньому мовою ЕОМ - машинному коді (асемблері), невід'ємною частиноюрозробки програм було використання блок-схем. Як ми всі добре знаємо:
    "Схемою алгоритму називається таке графічне представлення алгоритму, уякому етапи процесу обробки інформації та носії інформаціїпредставлені у вигляді геометричних символів із заданого обмеженогонабору, а послідовність процесу відображена напрямком ліній "[1]. Їхзастосування значно полегшувало сприйняття і аналіз програми. Двовимірнеподання програми більш ясно відображало її структуру. Застосування блок -схем дозволяло швидше і якісніше розробляти і налагоджувати програми,а також полегшувалося їх супровід. Дана властивість блок-схем було
    "Узаконено" і вони стали обов'язковою частиною документації.

    Збереження двох різних форм представлення програм - самого тексту іблок-схеми завжди значною кількістю помилок, оскільки важко постійно підтримуватиїх відповідність. Більш того, багато програмісти ніколи не любиливикреслювати блок-схеми і створювали їх після того, як програма булазакінчена, і лише тому, що блок-схеми були потрібні в якостідокументації. Таким чином, користь, яку могли б принести блок-схеми,була відсутня і саме тоді, коли вона була найбільш потрібна - прирозробці програми.

    Природним розвитком даної ситуації є об'єднання двохпідходів в описі програм: у вигляді тексту і блок-схеми. Результатомтакого об'єднання є поняття візуального програмування. Під нимрозуміється спосіб опису алгоритму розв'язання задачі у графічному вигляді,поєднує якості тексту і блок-схем програм. Що в поєднанні зсучасними графічними можливостями ЕОМ та їх здатністю взяти на себерутинні операції і максимально спростити весь процес програмування,робить цей напрям дуже перспективним.

    Внаслідок всього вище сказаного, становить інтерес реалізаціясистеми візуального програмування, в рамках якої, буде представленаможливість визначення алгоритму в графічному вигляді, подібно до блок-схемі,але з елементами потокового програмування та використанням у повній міріграфічних та інтерактивних можливостей комп'ютера, що в кінцевому підсумкуне тільки полегшує розуміння написаного, але й сильно полегшує процесстворення програм.

    Учень набагато швидше і легше розбереться в якому або мовою, якщойому дати можливість самому скласти блок-схему алгоритму, подивитися яквін (алгоритм) буде виконуватися, простежити зміни значень змінних,а потім подивитися, як виглядає вихідний текст безпосередньо навивчається мовою.

    У 70-х роках були досить успішні спроби створення систем, за допомогоюяких ЕОМ розуміла мову блок-схем (наприклад, ОДА). Але все-таки це булимови блок-схем не в чистому вигляді. У них були присутні Описувачі, за допомогоюяких ЕОМ будувала з алгоритму блок-схему.

    В ідеальному випадку програміст повинен створювати блок-схему,безпосередньо працюючи з планшетом, на якому зображується блок-схема.

    Якщо орієнтувати розроблювану систему на починаючого програміста,який навчається не тільки програмування, скільки початків алгоритмізації,то система повинна бути інтерпретує типу зі зручним інтерфейсом. Цеозначає, що процес інтерпретації повинен відображатися на екрані у формі,що дозволяє користувачеві стежити за цим процесом, переривати його,спостерігати, як змінюються значення змінних.

    1. Мови програмування

    1.1. Класифікація

    У системному програмуванні мовою називається певний набірсимволів і правил (угод), що встановлюють способи комбінацій цихсимволів для запису осмислених повідомлень (текстів).

    Розрізняють, взагалі кажучи, Нестра, природні мови, якимиговорять і пишуть люди в повсякденному житті, і штучні мови,створюються для деяких приватних цілей.

    Штучні мови, призначені для запису програм, називаютьсямовами програмування. Кожна ЕОМ має свою власну мовупрограмування - мова команд або машинний мову і може виконуватипрограми, написані тільки на цій мові. У машинному мовою кожній командівідповідає певна операція, яку може виконувати машина. Однакна машинній мові програмувати важко через надмірну деталізаціїпрограми. Тому вже на ЕОМ першого і другого покоління для підвищенняпродуктивності праці програмістів почали застосовувати мовипрограмування, що не збігаються з машинними мовами. На ЕОМ третьогопокоління машинний мова практично не застосовується для програмуваннязавдань, за ним збереглася лише роль внутрішнього мови ЕОМ.

    В даний час налічується кілька сотень різних мовпрограмування, які класифікуються за різними ознаками. Найбільшзагальною є класифікація за ступенем залежності мови від ЕОМ. З цьогоознакою мови поділяються на дві великі групи:

    . Машинно-залежні мови,

    . Машинно-незалежні мови.

    Машинно-залежні мови, у свою чергу, ділять на машинні та машинно -орієнтовані.

    Машинно-орієнтовані мови іноді називають автокодом. Розрізняють дварівня машинно-орієнтованих мов. До першого рівня відносяться мовисимвольного кодування, інакше звані мнемокодамі, а до другого --макромови.

    Мнемокод відрізняється від машинного мови відповідної ЕОМ заміноюцифрових кодів операцій літерними (мнемонічний), а цифрових адресоперандів - літерними або буквено-цифровими. При перекладі на мову ЕОМкожна команда мнемокода замінюється відповідною командою машинногомови (>).

    Застосування мнемокода дозволяє автоматизувати роботу програміста порозподілу пам'яті, точніше, за привласнення дійсних адрес. Цеособливо корисно при програмуванні для машин зі змінним форматомкоманд. Крім того, мнемокод істотно полегшує роботу по складаннювеликих програм, коли окремі сегменти (модулі) програми складаютьсярізними програмістами і об'єднуються в єдину програму на етапі завантаження.

    Мова другого рівня - Макромова - поряд із символічними аналогамимашинних команд, з яких складається мнемокод, допускає також використаннямакрокоманд, що не мають прямих аналогів у машинному мовою. Під час трансляціїкожна Макрокоманда замінюється групою команд машинної мови (>). Застосування макрокоманд скорочує програму, підвищуєпродуктивність програміста. Програміст, який використовує машинно -орієнтована мова має бути добре знайомим з особливостями будовимашини, для якої складається програма.

    Машинно-незалежні мови також діляться на дві групи за ступенемдеталізації програми. До першої групи належать процедурно -оріентірованнние мови, а до другої проблемно-орієнтовані.

    Процедурно-орієнтовані мови призначені для опису алгоритмів
    (процедур) рішення задач, тому їх також називають алгоритмічними, хочапоняття алгоритмічного мови не збігається з поняттям мовипрограмування. Якщо запис на алгоритмічній мові безпосередня,придатна для введення в ЕОМ і перетворення в готову робочу програму, тотака мова є одночасно мовою програмування. Деякіалгоритмічні мови, строго кажучи, не є мовами програмування,якщо не додати до них спеціальних засобів. Зокрема, алгоритмічниймову Алгол-60 стає мовою програмування після включення в ньогооператорів введення та виведення і конкретизації способів виконання деякихінших операцій управління обладнанням ЕОМ.

    Програма на процедурно-орієнтованої мови майже не залежить відконкретної ЕОМ, на якій буде вирішуватися завдання. Слово "майже" слідрозуміти в тому сенсі, що в більшості випадків програми вирішення однієї ітієї ж задачі для різних ЕОМ відрізняються лише деякими непринциповимидеталями зовнішнього оформлення, які при переході від ЕОМ до ЕОМ замінюютьсямеханічно.

    Структура процедурно-орієнтованих мов ближче до природногомови, наприклад російської чи англійської, ніж до мови ЕОМ. Тому перекладз процедурно-орієнтованої мови на машинний мова здійснюється запринципом «дещо в декілька». Іншими словами, в більшості випадківтут можна встановити відповідність лише між групою елементарнихконструкцій мови і групою команд ЕОМ, подібно до того, як при перекладі занглійської мови на російську мову групи слів або навіть групи пропозиційзамінюють групою слів на іншій мові. Послівний переклад тут не можливий.

    До проблемно-орієнтованим мовам відносять так звані непроцедурногомови, то є такі мови, які не вимагають детальної запису алгоритмурішення задачі. Користувач повинен лише вказати формулювання завдання абоназвати послідовність завдань з заздалегідь підготовленого набору, вказатипочаткові дані і необхідну форму видачі результатів. Ця інформаціявикористовується спеціальною програмою - генератором для генерування робочоїпрограми.

    По відношенню до транслятору всі згадувані вище мови, крім машиннихмов, є вхідними. У процесі трансляції програма на вхідному мовоюперекладається на деякий внутрішню мову, більш зручний для подальшоїроботи транслятора, а потім послідовно відбувається кілька стадійобробки. На кожній стадії транслюється програма представляється вдеякому проміжному мовою. І, нарешті, після обробки трансляторомвиходить програма на вихідному мовою.

    1.2. Порівняльна характеристика мов.

    Машинно-орієнтовані мови універсальні в тій же мірі, в якійуніверсальний мова машини, оскільки в них міститися коштипрограмування і рішення на ЕОМ будь-яких завдань, з якими ЕОМ можевпоратися за своїми технічними можливостями. При програмуванні на цихмовами можна врахувати особливості системи команд і пристрої ЕОМ, щодозволяє створювати високоякісні програми. Однак машинно -орієнтовані мови досить важкі для вивчення, а програмувати наних важко.

    Машинно-незалежні мови ефективні лише для певного класузавдань. Поза цього класу задач застосування більшості мов високого рівнямалоефективно і взагалі непридатне. Ці мови порівняно легко вивчати.
    Програмування на них значно простіше, ніж на машинно-орієнтованихмовами.

    Слід зазначити, що в середовищі мов програмування спостерігаєтьсяпроцес зближення мов за своїми можливостями. Наприклад, Фортрандоповнився операціями над рядковими і символічними даними, всякенововведення в Сі повторюється в Паскалі і т.п.

    2. Перекладачі

    2.1. Класифікація

    Будь-яку програму, яка переводить довільний текст на деякійвхідній мові в текст на іншій мові, називають транслятором. Зокрема,вихідним текстом може бути вхідна програма. Транслятор переводить її ввихідну або об'єктну програму.

    У сенсі цього визначення найпростішим транслятором можна вважати,завантажувач, який переводить програму в умовних адресах, оформлену увигляді модуля завантаження, в об'єктну програму в абсолютних адресах. У цьомувипадку вхідний мова (мова завантажувача) і об'єктна мова (мова ЕОМ) ємовами одного рівня. Однак найчастіше вхідний і об'єктний мови відносяться дорізних рівнях. Звичайно рівень вхідного мови вище рівня об'єктного мови.

    За рівнем вхідного мови транслятори прийнято ділити на асемблери,макроассемблери, компілятори, генератори.

    Вхідним мовою асемблера є мнемокод, макроассемблера --Макромова, компілятора - процедурно-орієнтована мова, а генератора --проблемно - орієнтована мова. У зв'язку з цим вхідний мову називають потипу транслятора: мова асемблера, мова макроассемблера і т.д.

    Програма, отримана після обробки транслятором, абобезпосередньо виконується на ЕОМ, або піддається обробці іншимтранслятором.

    2.2. Компілятори та інтерпретатори

    Зазвичай процеси трансляції і виконання програми розділені в часі.
    Спочатку вся програма транслюється, а потім виконується. Перекладачі,що працюють в такому режимі, називають трансляторами компілюються типу. Якщовхідним мовою такого транслятора є процедурно-орієнтована мовависокого рівня, то транслятор називають компілятором.

    Існують транслятори, в яких трансляція і виконання поєднані учасу, їх називають інтерпретаторами. До складу інтерпретатора входить блоканалізу, що розпізнає оператори вхідного мови, набір підпрограм,відповідають різним операторам, і блок, що керує всією роботоюінтерпретатора.

    За вказівками керуючого блоку, блок аналізу переглядає операторивхідний програми, розпізнає їх тип і визначає можливість негайноговиконання. Інформація про можливість виконання оператора передаєтьсякеруючому блоку, який викликає відповідну підпрограму,виконують дії, визначені оператором.

    Інтерпретатори часто застосовуються в якості оцінних і діалоговихтрансляторів, що забезпечують роботу п?? льзователя з машиною в діалоговомурежимі з дистанційного терміналу. Крім того, інтерпретатори використовуютьдля виконання (інтерпретації) на ЕОМ програм, складених для іншої
    ЕОМ, а іноді в якості останнього блоку транслятора компілюються типу.
    В останньому випадку транслятор складається з двох частин: перша - компілятора,переводить програму на проміжна мова, що є вхідним мовоюінтерпретатора, другий - інтерпретатора, який виконує програму напроміжному мовою.

    У такій схемі компілятор можна зробити дуже простим. Інтерпретатордещо простіше компілятора, оскільки негайне виконання розпізнанихоператорів вхідного мови робить непотрібним дії, пов'язані з компонуваннямоб'єктної програми, оформленням її в єдиний модуль завантаження або у виглядідекількох модулів, якщо вона велика.

    Недолік інтерпретатора полягає в неефективному використаннімашинного часу. Наприклад, при виконанні циклічних програм, один ітой самий оператор доводиться інтерпретувати багато разів. При повторномувиконання програми, інтерпретацію доводиться виконувати заново, у той часяк транслятор компілюються типу дозволяє виконати трансляцію один раз,а потім зберігати програму в машинних кодах. За зазначеної причиниінтерпретатори застосовуються відносно рідко.

    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, ...;< br>Безліч типів у мові блок схем обмежене: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 і С (пріоритетиоперацій дивіться у додатку). Передбачена можливість змінюватипріоритети за допомогою круглих дужок. Кожен вираз має закінчуватисясимволом ";"
    Наприклад:

    "Галуження За умовою" Текст цього блоку повинен являти собоюлогічне умова, після якого ставиться "(". Умова може міститилогічні зв'язки І - & &, АБО - | |, НЕ -!.
    Наприклад:

    "ENTER," У цьому блоці через кому вказуються змінні значенняякі вводить сам програміст з терміналу. Після перерахування всіхзмінних ставиться ";"
    Наприклад:

    "ВИСНОВОК" Текст цього блоку має наступну структуру:
    "Текст", мінлива 1, "текст", мінлива 2, ... , Мінлива N;
    "Текст", мінлива N 1, ...;тобто, текстові константи чергуються через кому зі змінними,які треба вивести на екран монітора. Наприкінці ставиться ";".< br>Наприклад:

    "безумовного переходу на мітку" Вмістом цього блоку є ім'ямітки з ";" на кінці.
    Наприклад:

    "МЕТКА" Визначається аналогічно попередньому блоку.

    "Підпрограма" Міститься ім'я підпрограми з параметрами.
    Наприклад:

    "МУЛЬТІВЕТВЛЕНІЕ" Варіант оператора "switch" мови Сі. В даному блоціміститься ім'я змінної, по якій буде виконуватися розгалуження.
    Наприклад:

    "ГІЛКА" Блок "гілку" може бути присутнім тільки в зв'язці
    "Мультіветвленіе". Окремо не має сенсу. У блоці "гілку" задаєтьсяконстанта, з якою виконується порівняння значення, отриманого в блоці
    "Мультіветвленіе".

    Застосування блоків продемонстровано в прикладах, наведених удодатку.

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

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

    Г.Р. - Це програма, що дозволяє програмісту "малювати" нові йредагувати старі блок-схеми. Користувачеві пропонується в режимі менюнаступні можливості для редагування блок-схем:
    Видалення блоків (
    Установка блоків (
    Розмітка планшета координатної сіткою (
    Скролінг планшета (
    Вибір типу блоків (або стрілки, або самі блоки); < br> Автоматичне з'єднання двох виділених блоків на планшеті;
    Зміна параметрів планшета;
    Зміна палітри планшета (кольорів);
    Можливості редагування за допомогою буфера обміну.
    Усі ці можливості можна вибирати або за допомогою маніпулятора миша, абоза допомогою клавіатури.

    Розглянемо поняття планшет. Назвемо поверхню, на якій виконуєтьсямалювання блок-схеми планшет. Будемо вважати, що розміри планшета НЕобмежені. У кожний поточний момент користувач знаходиться в позиціїпланшета з координатами (X, Y). Координати (X, Y) задаються в Декартовоюсистемі координат, початок координат (0,0) - це середина планшета (саме вцій точці знаходиться користувач при початковому запуску системи "Блок -схема ").

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

    рис.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; це ширина блоку в екранних координатах (

    Далі встановимо відповідність між координатами блоків у координатноїсистемі планшета і координатами блоків у екранної системі.

    Будемо вважати, що існує інша система координат, в якій I ~ I 'і J ~ J ', і, знаючи, що координаті (I, J) відповідає координата (X0, Y0), то,отже, I ~ I '= 0 і J ~ J' = 0. Аналогічно для координат (I + N_X, J + N_Y),знаючи, що їй відповідає, координата (X1-width, Y1-height) будемо мати,що (I + N_X) ~ (I '+ N_X) = N_X і (J + N_Y) ~ (J' + N_Y) = N_Y.

    Таким чином для блоку з координатами (i, j), де (i, j)належить прямокутника [I, J, I + N_X, J + N_Y] буде мати місце наступнеперетворення координат:

    X = X0 + (iI) * width;

    Y = Y0 + (jJ) * height; де X, Y екранні координати блоку (i, j). Коли виконані ціперетворення, здійснюється висновок цієї прямокутної області у вікноредактора. Висновок здійснюється послідовно, перебираючи всі елементиобласті.

    Процедура відображення вікна на планшеті у вікно виводу на дисплеїприсутній практично у всіх функціях графічного редактора. Завдякиїй здійснюється зв'язок користувача з схемою, і відображаються всізміни, вироблені користувачем над схемою.

    Тепер розглянемо інші функції графічного редактора.

    У системі "Блок-схема", як і в будь-який інший інтерактивній системі,задані кодові комбінації клавіш, завдяки яким можна не виконуватиповний набір команди для виконання якої-небудь дії. Для цьогодостатньо натиснути так звані "гарячі" клавіші. Інформацію про них можнаотримати, вибравши відповідний пункт у меню "ДОВІДКА".

    По полю вікна редактора рухається спеціальний графічний покажчик,показує чергову позицію на планшеті. Рух цього покажчикаорганізовується за допомогою клавіш управління курсором або за допомогоюманіпулятора миша. Якщо покажчик пересувається за межі вікна редактора,то здійснюється скролінг вікна по планшету. Організована ця процедуранаступним чином:

    Так як вікно редактора менше планшета, то його (вікно редактора) потрібнопереміщати по планшету - це називається скролінг планшета. При виконанніцієї функції змінюється лише координата (I, J) верхнього лівого кутаобласті, яка відображається у вікні редактора, а потім нова областьзаново виводиться у вікно редактора.

    Виконується ця процедура за допомогою клавіш в MS-Dos:

    - вгору (

    - вниз (

    - вправо (

    - вліво (а також за допомогою маніпулятора миша при виборі відповідних кнопокменю.

    Вибір блоку, який необхідно встановити в дану позицію виконуєтьсячерез пункт "БЛОКИ" або "СТРІЛКИ" в підменю "РЕДАКТОР" головного меню.
    Викинний блок промальовується, коли натиснута клавіша абоодночасно натиснуті ліва і права клавіші маніпулятора миша, а також коливибраний пункт "ВСТАНОВИТИ" в підменю "РЕДАКТОР" головного меню.

    Вибір типу блоків (або стрілки, або блоки) можна здійснюватиза допомогою "гарячих" клавіш:

    - стрілки;

    - блоки. або вибираючи відповідні команди в головному меню.

    Видалення блоків виконується таким чином: c допомогою покажчикавибирається блок, який потрібно видалити, а потім натискається клавіша
    , Або вибирається пункт "ВИДАЛИТИ" в підменю "РЕДАКТОР" головногоменю.

    У Windows варіанті ці можливості можна вибирати за допомогоюманіпулятора миша або аналогічним чином за допомогою клавіатури. Крім того,
    Windows варіант передбачає поєднання двох заданих блоків за допомогоюхвильового алгоритму Лі [10].

    4.2. Вбудований текстовий редактор

    Текстовий редактор необхідний системі для того, щоб наповнювати текстомблоки, що створюються користувачем блок-схеми алгоритму.

    Редактор для середовища Windows за своїми можливостями не поступаєтьсябільшості сучасних текстових редакторів, що надаються фірмою
    Borland. Редактор має наступні можливості:

    . немає обмеження на розмір тексту всередині блоку;

    . допускаються робота з буфером обміну;

    . існує можливість зміни шрифту тексту;

    . два режими набору тексту програми (режими вставки і перезапису);

    . пошук тексту по заданому зразком;

    . заміна заданого зразка тексту на заданий текст.

    Редактор, запропонований в середовищі MS-Dos, є найпростішим варіантомтекстового редактора, в якому можливий лише набір тексту в режимінакладання тексту на текст (режим перезапису), також існує обмеженняна розмір тексту. Він не повинен перевищувати 1104 символу для кожного блокублок-схеми.

    За допомогою клавіш керування здійснюється переміщення курсору по вікнуредактора тексту блоку. А за допомогою клавіш і здійснювативидалення тексту із зсувом рядка.

    4.3. Інтерпретатор

    Що таке інтерпретатор? Як вже говорилося вище - це такийтранслятор, в якому процеси трансляції і виконання алгоритму суміщенів часі. До складу інтерпретатора входить блок аналізу, що розпізнаєоператори вхідного мови, набір підпрограм, що відповідають різнимоператорам і блок, керуючий порядком перегляду операторів і всієї роботиінтерпретатора.

    4.3.1. Етапи трансляції

    Основою будь-якого природного або штучного мови є алфавіт,визначає набір допустимих елементарних знаків (букв, цифр і службовихзнаків). Знаки можуть об'єднуватися в слова - елементарні конструкції мови,що розглядаються в цьому тексті (програму) як неподільні символи, що маютьпевний сенс. Іноді символ позначають одним знаком, що можнатеж вважати словом. Наприклад, у мові С + + словами (символами) єосновні символи, ідентифікатори, числа і деякі обмежувачі, вЗокрема знаки операцій та дужки. Словниковий склад мови - набірдопустимих слів (символів) - разом з описом способів їх

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status