Дані, які надходять в комп'ютер, називаються вхідними даними. Результат роботи комп'ютера - вихідні дані. Таким чином, алгоритм перетворює вхідні дані у вихідні.
Тепер можна поставити питання: а чи може людина обробляти інформацію?
Звичайно, може. Як приклад можна привести звичайний шкільний урок: вчитель задає питання (вхідні дані), учень відповідає (вихідні дані). Найпростіший приклад: учитель дає завдання - помножити 6 на 3 і результат написати на дошці. Тут числа 6 і 3 - вхідні дані, операція множення - алгоритм, результат множення - вихідні дані.
1.3 Види алгоритмів
Види алгоритмів як логіко-математичних засобів відображають зазначені компоненти людської діяльності і тенденції, а самі алгоритми залежно від мети, початкових умов завдання, шляхів її вирішення, визначення дій виконавця підрозділяються наступним чином:
Механічні алгоритми, чи інакше детерміновані, жорсткі (наприклад, алгоритм роботи машини, двигуна і т.п.);
Гнучкі алгоритми, наприклад стохастичні, тобто імовірнісні та евристичні.
Механічний алгоритм задати?? певні дії, позначаючи їх в єдиній і достовірної послідовності, забезпечуючи тим самим однозначний необхідний або шуканий результат, якщо виконуються ті умови процесу, завдання, для яких розроблений алгоритм.
Імовірнісний (стохастичний) алгоритм дає програму рішення задачі кількома шляхами або способами, що призводять до ймовірного досягненню результату.
Евристичний алгоритм (від грецького слова еврика) - це такий алгоритм, у якому досягнення кінцевого результату програми дій однозначно не визначено, так само як не позначена вся послідовність дій, що не виявлені всі дії виконавця. До евристичним алгоритмам відносять, наприклад, інструкції та приписи. У цих алгоритмах використовуються універсальні логічні процедури і способи прийняття рішень, засновані на аналогії, асоціаціях та минулому досвіді вирішення схожих завдань.
Лінійний алгоритм - набір команд (вказівок), виконуваних послідовно в часі один за одним.
Розгалужуються алгоритм - алгоритм, який містить хоча б одна умова, в результаті перевірки якого ЕОМ забезпечує перехід на один з двох можливих кроків.
Циклічний алгоритм - алгоритм, який передбачає багаторазове повторення одного і того ж дії (одних і тих же операцій) над новими вихідними даними. До циклічним алгоритмам зводиться більшість методів обчислень, перебору варіантів.
Цикл програми - послідовність команд (серія, тіло циклу), яка може виконуватися багаторазово (для нових вихідних даних) до задоволення деякого умови.
Допоміжний (підлеглий) алгоритм (процедура) - алгоритм, раніше і цілком використовується при алгоритмізації конкретного завдання.
У деяких випадках при наявності однакових послідовностей вказівок (команд) для різних даних з метою скорочення запису також виділяють допоміжний алгоритм.
На всіх етапах підготовки до алгоритмізації завдання широко використовується структурний подання алгоритму.
Структурна (блок-, граф-) схема алгоритму - графічне зображення алгоритму у вигляді схеми пов'язаних між собою за допомогою стрілок (ліній переходу) блоків - графічних символів, кожен з яких відповідає одному кроку алгоритму. Усередині блоку дається опис відповідної дії.
Графічне зображення алгоритму широко використовується перед програмуванням завдання внаслідок його наочності, тому зорове сприйняття зазвичай полегшує процес написання програми, її коригування при можливих помилках, осмислення процесу обробки інформації.
Можна зустріти навіть таке твердження: Зовні алгоритм являє собою схему - набір прямокутників та інших символів, усередині яких записується, що обчислюється, що вводиться в машину і що видається на друк і інші засоби відображення інформації. Тут форма подання алгоритму змішується з самим алгоритмом.
Принцип програмування зверху вниз вимагає, щоб блок-схема поетапно конкретизувалася і кожен блок розписувався до елементарних операцій.
Але такий підхід можна здійснити при вирішенні нескладних завдань. При вирішенні скільки-небудь серйозного завдання блок-схема розповзеться до такої міри, що її неможливо буде охопити одним поглядом.
Блок-схеми алгоритмів зручно використовувати для пояснення роботи вже готового алгоритму, при цьому в якості блоків беруться дійсно блоки алгоритму, робота яких не вимагає пояснень. Блок-схема алгоритму повинна служити для спрощення зображення алгоритму, а не для ускладнення.
При вирішенні завдань на ком...