Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 1 оп.doc
Скачиваний:
14
Добавлен:
14.08.2019
Размер:
181.76 Кб
Скачать

6. Алгоритмічні мови

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

Для виконання програми на мові високого рівня її потрібно спочатку перекласти мовою машинних команд. Спеціальна програма, що виконує такий переклад, називається транслятором або компілятором. Програма, що відтранслює, потім виконується безпосередньо комп'ютером. Існує також можливість перекладу програми на проміжну мову, не залежну від архітектури конкретного комп'ютера, але проте максимально наближений до мови машинних команд. Потім програма на проміжній мові виконується спеціальною програмою, яка називається інтерпретатором. Можливий також варіант компіляції "на льоту" (Just In Time Compilation), коли виконуваний фрагмент програми перекладається з проміжної мови на мову машинних команд безпосередньо перед виконанням.

Найбільш поширені компільовані мови - це Сі, C++, Фортран, Паскаль. Історично однією з перших мов високого рівня був Фортран. Найуспішніша мова програмування - мова Сі і пов'язана з ним лінія об'єктно-орієнтованих мов: C++, Java, C#.

В даний час переважна частина програм пишеться на мовах Сі і C++. Інтерфейс будь-якої операційної системи (так званий API - Application Program Interface), тобто набором системних викликів, призначених для розробників прикладних програм, як правило, є набір функцій на мові Сі. Нарешті, сучасні об'єктно-орієнтовані мови також засновані на мові Сі. Це мова C++, що займає проміжне положення між традиційними і об'єктно-орієнтованими мовами, а також об'єктно-орієнтовані мови Java і C#.

7. Структурні принципи алгоритмізації

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

Теорема про структуризацію: будь-яка проста програма може бути перетворена у функціонально їй еквівалентну програму, побудовану на основі 3 наступних структур:

  1. Проходження.

  2. Якщо-то-інакше.

  3. Цикл з передумовою.

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

Цілі структурного програмування

  1. Забезпечити дисципліну програмування

  2. Поліпшити читабельність програми

  3. Підвищити ефективність програми

Низхідне проектування

Метод низхідного проектування припускає послідовне розкладання загальної функції обробки даних на прості функціональні елементи ("зверху-вниз").

В результаті будується ієрархічна схема, що відображає склад і взаємозалежність окремих функцій, яка носить назву функціональна структура алгоритму (ФСА) застосування.

Послідовність дій з розробки функціональної структури алгоритму застосування:

  • визначаються цілі автоматизації наочної області і їх ієрархія (мета-підціль);

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

  • уточнюється характер взаємозв'язку застосувань і їх основні характеристики (інформація для вирішення завдань, час і періодичність рішення, умови виконання і ін.);

  • визначаються необхідні для вирішення завдань функції обробки даних;

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

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

Функції введення-виводу інформації рекомендується відокремлювати від функцій обчислювальної або логічної обробки даних.

По частоті використання функції діляться на:

  • одноразово виконувані;

  • що повторюються.

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

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