Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка_1_05_ВНУ.doc
Скачиваний:
2
Добавлен:
08.09.2019
Размер:
1.71 Mб
Скачать

Основи алгоритмізації Алгоритми та їх властивості

        Алгоритм – це чітко визначена для конкретного виконавця послідовність дій, які спрямовані на досягнення поставленої мети або розв'язання задачі певного типу.

        У 820 році нашої ери в Бухарі був написаний підручник "Аль-Джабр Ва-аль-Мукабала" ("Наука виключення скорочення"), в якому були описані правила виконання чотирьох арифметичних дій над числами в десятковій системі числення. Автором підручника був арабський математик Мухаммед Бен Муса аль-Хорезмі. Від слова "альджебр" у назві підручника пішло слово "алгебра", а від імені аль-Хорезмі - слово "алгоризм", що пізніше перейшло в слово "алгоритм".

        Властивості алгоритмів:

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

2. Масовість. За допомогою складеного алгоритму повинен розв'язуватися цілий клас задач.

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

4. Правильність. Виконання алгоритму повинно давати правильні результати.

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

6. Дискретність. Алгоритм повинен складатися з окремих завершених операцій, які виконуються послідовно.

7. Ефективність. Алгоритм повинен забезпечувати розв'язання задачі за мінімальний час з мінімальними витратами оперативної пам'яті.

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

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

Блок-схеми

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

        Зображення блоків у алгоритмі, їх розміри, товщина ліній, кут нахилу ліній тощо, регламентуються Державним стандартом "Схеми алгоритмів, програм, даних і систем", а саме: 19.701-90 (ISO 5807-85).

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

        Основні види блок-схем:

   • прості (нерозгалужені);

   • розгалужені;

   • циклічні;

   • з підпрограмами;

   • змішані.

Рис. 1.2. Основні елементи блок-схем

Базові алгоритмічні конструкції

        Базові алгоритмічні конструкції - це способи управління процесами обробки даних. Виділяють три базові алгоритмічні конструкції: 1. лінійні алгоритми;

2. алгоритми розгалуженої структури;

3. алгоритми циклічної структури.

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

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

        Алгоритми циклічної структури (рис.1.5).

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

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