АЛГОРИТМІЧНІ МОВИ
Управління ЕОМ програмою
Як було зазначено раніше, по шині даних ЕОМ циркулює інформація як двійкових кодів. Процесор сам інтерпретує їх як дані, які підлягають обробці, або як команди, які необхідно виконувати. На вигляд ці два види інформації нічим один від одного не відрізняються. Розрізнення даних та команд проводить процесор. Наприклад, у ПЗУ знаходиться байт 1FH, який розпізнається (дешифрується) процесором як команда додавання двох чисел.
Тому процес роботи ЕОМ можна уявити як безперервне зчитування з ПЗУ байта чи кількох байт і дешифрація в команди процесору, виконання команди і зчитування чергової команди тощо.
Таким чином, для роботи ЕОМ необхідно, щоб ПЗУ або ОЗУ були завантажені послідовності кодів команд. Ці двійкові послідовності називаються програмою. Саме ці команди у двійкових кодах безпосередньо і розуміє процесор. Всі інші види програм, про які йдеться нижче, потрібно перекладати мовою кодів.
Мови програмування
Машинна мова
Машинна мова - послідовність двійкових кодів, яку розуміє процесор без перекладача. Його переваги – максимальна швидкодія, мінімальний обсяг пам'яті для програми.
Недоліки - низька наочність, складність програмування. Як правило, машинною мовою написані системні програми, що вимагають максимальної швидкодії.
Мова асемблера
Мова асемблера (або просто асемблер) являє собою набір конструкцій, які називаються "мнемоніки". Ці мнемоніки та машинні коди мають взаємно однозначну відповідність. Однак мнемоніки легше запам'ятати, вони можуть бути неодну операцію, а групу однотипних операцій. Однак тепер для підготовки програм необхідний "перекладач" з мови мнемонік машинною мовою. Цей перекладач називається транслятором. Основний процес транслювання програм показано на рис 3.1.
Переваги Ассемблера: як і для машинної мови - максимальна швидкодія і малий обсяг пам'яті. Крім того, легкість написання та модифікації програм. Недоліки: необхідність транслятора, витрати часу на трансляцію, багато команд, необхідне виконання навіть простих операцій.
Мови високого рівня
Мови високого рівня (ЯВУ) є послідовністю операторів, кожен з яких кодує велику кількість елементарних операторів процесора. Ці мови також потребують транслятора (рис. 3.2).
Переваги ЯВУ: висока наочність, висока ефективність написання програм. Недоліки: необхідність транслятора, великий обсяг пам'яті, який займає програма, невисока швидкодія.
Основи алгоритмізації та програмування
Запровадження
Розробка будь-якої програми може бути представлена у вигляді формалізованого процесу, що складається з ряду послідовних перетворень одного опису розв'язуваної задачі в інше.
Починається вона з зазвичай неформального опису завдання замовником і закінчується розробленої програмою, записаної на згадку ЕОМ.
Таких етапів можна виділити дев'ять:
1. Постановка задачі
2. Побудова математичної моделі
3. Вибір та складання алгоритмів рішення
4. Проектування програми
6. Автономне налагодження
7. Комплексне налагодження
8. Передача в експлуатацію
1).Перший етап передбачає опис словесний або за допомогою спеціальних символів умов завдання та бажаного результату. Як правило, постановка завдання подається у вигляді технічного завдання на програму, що розробляється. Технічне завдання представляється замовником і які завжди він може формалізувати чи детально розробити завдання. Це можуть бути хіміки, біологи, медики або інженери, які не мають досвіду у постановці завдань для вирішення їх на ЕОМ.
2). На другому етапі здійснюється побудова математичної моделі того процесу, що описується у постановці задачі. Ті описи його за допомогою математичного апарату - складання рівнянь, знаходження залежностей. На цьому етапі можливе підключення фахівців з математиків або програмістів.
3). На третьому етапі математична модель представляється у вигляді зручному для числової оцінки та вибирається метод розв'язання задачі.
Якщо на попередніх етапах описувалося що необхідно отримати, то тут вирішується, як це зробити, тобто вибирається алгоритм обчислення результату на основі вихідних даних.
4). На четвертому етапі здійснюється проектування програмного комплексу, тобто розробляються специфікації вимог до окремих модулів – частин програми.
5). На п'ятому етапі відбувається кодування алгоритму за допомогою операторів конкретної мови програмування, обраного відповідно до завдання, що розв'язується.
6). Шостий етап полягає у налагодженні кожного окремого модуля, що входить до складу програмного комплексу. Тестується та перевіряється окремо, незалежно від інших кожна програма, що входить до комплексу на виконання саме тих функцій, які повинні в ній виконуватися.
7). Перевірка всього комплексу.
8). На восьмому етапірозроблений комплекс передається в експлуатацію, готується комплект документації посібника з експлуатації.
9). Дев'ятий етап передбачає усунення виявлених під час експлуатації помилок та зміну робочих програм з метою їх удосконалення.
Налагодження - процес виявлення та усунення помилок у тексті програми, виправлення коду.
Тестування - перевірка працюючої програми на спеціально підібраних контрольних прикладах з метою виявлення смислових помилок.
Алгоритм та його властивості
Алгоритм - послідовність дій зі строго певними правилами виконання.
Розробити алгоритм розв'язання задачі означає розбити завдання на певну кількість кроків, що послідовно виконуються. Якщо алгоритм розроблено, його можна вручити до виконання людині (чи ЕОМ) не знайомому з вирішуваним завданням і, точно дотримуючись правил алгоритму, ця людина (чи інший виконавець) отримає правильне рішення.
при заданих значеннях "а", "в" виконати такі дії:
Виконавши наведену послідовність дій, будь-який виконавець отримає значення гіпотенузи прямокутного трикутника в залежності від значень катетів "а", "в".
Кожен алгоритм, що розробляється, повинен мати наступні основні властивості:
1-Дискретність. Ця властивість полягає в тому, що алгоритм повинен представляти рішення задачі як послідовне виконання найпростіших кроків. У цьому виконання кожного кроку алгоритму потрібен кінцевий відрізок часу. Тобто перетворення вихідних даних у результат здійснюється в часі дискретно.
2-Детермінованість (визначеність). Кожне правило алгоритму має бути чітким однозначним, що не потребує додаткових вказівок.
3-Результативність (або кінцівка). Алгоритм повинен призводити до розв'язання задачі за кінцеве число кроків.
4-Масовість. Алгоритм розробляється у загальному вигляді і застосовується для деякого класу однотипних завдань.
Алгоритмізація
Етап розробки програми, результатом якого є розробка алгоритму розв'язання задачі, часто називають алгоритмізацією. Але в широкому значенні алгоритмізація включає вибір методу вирішення задачі і форми подання вихідної інформації з урахуванням конкретної ЕОМ.
Розроблений алгоритм можна зафіксувати кількома способами:
- природною мовою.
- у вигляді схеми (струкутрної схеми).
- спеціальною мовою для запису алгоритмів (алгоритмічною мовою)
Алгоритмічна мова - набір символів та система правил складання та тлумачення конструкцій із цих символів. Струкурна схема може складатися з таких елементів: