Алгоритм – деякий скінченний порядкований набір дій, послідовне виконання яких через скінченну кількість кроків приводить до розвязку задачі.
Термін алгоритм походить від імені арабського математика Мухаммеда аль-Хорезмі, який запропонував порядок виконання арифметичних дій над числами.
Властивості алгоритмів дискретність визначеність виконуваність результативність масовість формальність
Хто або що може бути виконавцем алгоритму? Кожен алгоритм будується з розрахунку на деякого виконавця, із врахуванням системи вказівок, які він здатен виконати. Виконавець алгоритму – пральна машина Виконавець алгоритму - промисловий автомат Виконавець алгоритму – комп'ютер
Хто або що може бути виконавцем алгоритму? Якщо алгоритм має зазначені властивості, то робота за таким алгоритмом повинна здійснюватися виконавцем формально. Кожен алгоритм описується з урахуванням можливостей конкретного виконавця. Для того, щоб алгоритм був виконуваним, до нього не можна включати вказівки, які виконавець не зможе виконати. У кожного виконавця є певний набір вказівок, які він може виконати. Така сукупність вказівок називається системою вказівок, або системою команд виконавця алгоритмів.
Способи подання алгоритмів Письмовий – записаний чи надрукований. Усний – сказаний вголос. Схематичний – представлений у вигляді схеми чи креслення. Графічний – намальований малюнком чи знаками. Кодований – у зашифрованому виді, зрозумілому для виконавця.
Які існують форми подання алгоритмів? Словесне подання Словесний спосіб подання алгоритму є найбільш прийнятним для опису інструкцій побутового характеру, дій на випадок надзвичайної ситуації, фармакологічних чи кулінарних рецептів, тощо. Рецепт "Піца нашвидкуруч": 1. В рівних пропорціях змішайте сметану з томатною пастою, за бажанням додайте орегано чи інші спеції. 2. Отриманий соус намажте на хліб. 3. Зверху викладіть порізані на шматочки помідори та болгарський перець, половинки маслин. Або інші улюблені варіанти начинки. 4. Натертий чи нарізаний скибочками сир покласти зверху. 5. На кілька хвилин поставити отримане в духовку, аерогриль чи мікрохвильовку. Графічне подання.
Формулою Записом алгоритму можна вважати формулу, тому що з неї випливає порядок здійснення обчислень для здобуття числового результату. Якщо виконується серія розрахунків за однаковими формулами, то для запису алгоритму іноді використовується розрахункова таблиця, де визначаються всі етапи обчислень і фіксуються проміжні результати.
Алгоритмічна мова Для одновиглядового запису алгоритму на папері придумано – Навчальну Алгоритмічну Мову (НАМ). НАМ визначає способи запису алгоритмів та правила інтерпретації записаних команд виконавцем. В НАМ є прості команди (вказівки) для виконавця і службові слова, які служать для оформлення алгоритму і не можуть вживатися де-небудь.
Навчальна алгоритмічна мова Алгоритм записаний НАМ повинен мати назву. Послідовність кількох команд, що виконуються одна за одною називають серією. Запис будь-якого алгоритму починається із заголовка. АРГ Величини, що є вхідними для алгоритму називаються АРГументами, а результуючі величини – РЕЗультатами.
Блок-схеми Поширеним способом наочного подання алгоритму є блок-схема. Вона складається з геометричних фігур, які зєднані напрямленими лініями. Зміст дій описується всередині геометричних фігур. Порядок виконання дій задається лініями. Для подання алгоритму застосовуються геометричні фігури двох видів - прямокутники та ромби. У прямокутниках записують дії, які мають виконуватися, в ромбах - умови, які треба перевіряти. Перевірка умов потрібна для вибору тих чи інших подальших дій. Якщо прямокутник має один вхід і один вихід, то у ромба вхід один, а виходів - два. Коли перевіряється умова, записана в ромбі, то існує два можливих варіанти: умова або виконується, або ні. На ці випадки ("так" і "ні") і є два виходи з ромба, які спрямовують подальші дії виконавця алгоритму залежно від результату перевірки умови.
Основні блоки алгоритму
Алгоритм поданий мовою програмування
Приклад. Задача: Обчислити середнє арифметичне 3-х чисел.
Словесно-формульна форма подачі алгоритму Алгоритм 1. Ввести А 2. Ввести В 3. Ввести С 4. Обчислити SA:=(A+B+C)/3 5. Вивід SA 6. Кінець
Графічний спосіб подачі алгоритму Початок Ввести А,В, С SA:=(A+B+C)/3 Вивід SA Кінець
Опис алгоритму на навчальній алгоритмічній мові Алг Середнє_арифметичне арг А, В, С: ціл рез SA: дійсн Поч Ввести А Ввести В Ввести С SA:=(A+B+C)/3 Вивід SA Кін
Програма Program Ser_Arifm; Var А, В, С: integer; SA: real; Begin ReadLn(A); ReadLn(B); ReadLn(C); SA:=(A+B+C)/3; Write(SA); End.
Що означає побудувати алгоритм? 1 Здійснити аналіз запропонованого завдання, предметної області чи інформаційної моделі, визначити проблему тощо 2 Продумати план майбутньої діяльності щодо розв'язування завдання, вирішення проблеми чи досягнення поставленої мети 3 Зафіксувати його за допомогою деякої системи позначень, так званою формальною мовою
У чому полягають ідеї і методи послідовного уточнення алгоритму? Ступінь деталізації вказівок залежить від набору операцій, які може виконати виконавець алгоритму. Якщо він не може виконати деяку із простіших операцій, на які розкладено розглядувану вказівку, така простіша вказівка знову подається у вигляді скінченного впорядкованого набору вказівок про виконання ще простіших операцій. Така деталізація продовжується, поки не буде одержано набір операцій, кожну з яких обраний виконавець зможе сприйняти та виконати. Об'єднуючи операції виконання окремих дій до єдиної сукупності вказівок, що виконуються в певному порядку, одержують алгоритм виконання вихідного завдання.
Якщо передбачається, що виконавцем буде комп'ютер, то для виконання вказівок алгоритму в пам'яті комп'ютера повинні бути всі відповідні вказівки, записані мовою комп'ютера (машинною мовою) чи скінченні впорядковані набори таких вказівок (програм).
Розглянутий метод складання алгоритму називають спадаючим методом конструювання алгоритмів, або методом зверху вниз. Спочатку задачу розглядають як єдине ціле. На кожному етапі розв'язування за необхідності задачу поділяють на простіші підзадачі, кожну підзадачу в разі потреби поділяють на ще простіші, і так діють до тих пір, поки не будуть одержані такі підзадачі, які легко описуються вибраною формальною мовою або для виконання яких вже є відповідні вказівки чискінченні впорядковані набори вказівок.
Покрокова деталізація На кожному кроці побудови алгоритму розв'язування задачі в разі потреби уточнюються все нові і нові деталі (відбувається покрокова деталізація), тому цей метод ще називають методом покрокової деталізації. Метод покрокової деталізації застосовується при будь-якому конструюванні складних об'єктів – поступове заглиблення в деталі конструкції.
Метод знизу вверх Під час побудови алгоритмів користуються методом знизу вверх, за яким прості підзадачі послідовно об'єднують у єдину сукупність підзадач, що виконуються в певному порядку.
Які існують класи алгоритмів? Обчислювальні алгоритми Алгоритми, які реалізовують скінченну сукупність обчислювальних дій над простими видами даних Інформаційні алгоритми Характерні для процедур із великими обсягами даних, що передбачають пошук, заміну, сортування Управляючі алгоритми Являють собою набір вказівок, які залежать від даних, що надходять до них від зовнішніх процесів, якими вони керують.