Що таке алгоритми?
Алгоритми належать до фундаментальних понять інформатики. На понятті алгоритму побудовано основні принципи програмування – складання програм для обчислювальних машин.
Саме слово "алгоритм" походить від імені хорезмського вченого Абу Абдуллах Мухаммеда ібн Муса аль-Хорезмі (алгоритм - аль-Хорезмі). Близько 825 року він написав твір, в якому вперше дав опис придуманої в Індії позиційної десяткової системи числення. На жаль, перський оригінал книжки не зберігся. Аль-Хорезмі сформулював правила обчислень у новій системі і, ймовірно, вперше використав цифру нуль для позначення пропущеної позиції в записі числа (її індійську назву араби переклали як as-sifr або просто sifr, звідси такі слова, як "цифра" та "шифр"). Приблизно в цей час індійські цифри почали застосовувати й інші арабські вчені.
Алгоритми – це сукупність дій із суворо певними правилами виконання. В інформатиці вивчаються різноманітні алгоритми – діалогові алгоритми, алгоритми обробки даних, обчислювальні алгоритми, алгоритми управління роботами, верстатами та іншими технічними пристроями.
Для опису алгоритмів використовують блок-схеми. Блок-схеми наочні. Однак блок-схеми важко малювати, в них складно вносити зміни та виправлення через складність перемальовування рамок та стрілок.
Основні властивості алгоритмів та програм для обчислювальних машин – однозначність, результативність, правильність та масовість. Цими властивостями алгоритми відрізняються від різноманітних розпливчастих і неоднозначних розпоряджень, інструкцій і кулінарних рецептів, які можуть тлумачитися і виконуватися багатьма способами.
Однозначність алгоритмів – це однозначність правил виконання. Алгоритми внаслідок цієї якості гарантують однозначність результатів їх виконання в однакових початкових умовах. Це не завжди вірно для кулінарних рецептів, коли різні виконавці в тих самих умовах можуть надавати різний смак і пікантність одним і тим же стравам.
Результативність – завершення виконання алгоритмів певними результатами. Алгоритми та програми, що не дають результатів або ведуть до збоїв та відмов, нікому не потрібні.
Масовість – це можливість застосування алгоритмів у різних конкретних вихідних умовах. Масові алгоритми особливо важливі для вирішення прикладних завдань, коли алгоритми та програми повинні забезпечити вирішення цілого класу завдань, що відрізняються вихідними даними.
Правильність алгоритмів визначається правильністю результатів, одержуваних з їх допомогою. З цієї причини правильність алгоритмів та програм є відносним поняттям.
