Алгоритми
У основі багатьох мов програмування лежать теорія алгоритмів, теорія формальних систем, логіка предикатів. Крім того синтез логіки і комп'ютерів привів до виникнення баз даних і експертних систем, що є важливим етапом на шляху до створення штучного інтелекту — машинної моделі людського розуму.
Кожен алгоритм передбачає наявність деяких початкових або апріорних даних, в результаті застосування яких отримують певний шуканий результат. Далі, застосування кожного алгоритму здійснюється шляхом виконання дискретної послідовності деяких елементарних дій. Ці дії називають кроками, а процес їх виконання називають алгоритмічним процесом.
Таким чином, однією із основних властивостей алгоритму є його дискретність. Іншою істотною рисою алгоритму є його масовий характер, тобто можливість застосування його до широкого класу початкових даних з можливістю варіювання такими початковими даними. Іншими словами, кожен алгоритм покликаний вирішити ту або іншу масову проблему, тобто вирішувати клас однотипних завдань. Неодмінною умовою, якій задовольняє алгоритм є його детермінованість, або визначеність. Це означає, що настанови алгоритму з рівним успіхом можуть бути виконані будь-якою іншою людиною і в будь-який інший час причому результат вийде той же самий. Тобто настанови алгоритму настільки точні і однозначні, що не допускають жодних двозначних тлумачень і жодного свавілля з боку виконавця. Вони єдиним і цілком визначеним шляхом кожний раз приводять до шуканого результату. Це наводить на думку, що виконання тих або інших алгоритмів може бути доручено машині, що широко і робиться на практиці. Кажучи про початкові дані для алгоритму, мають на увазі так звані допустимі початкові дані, тобто такі початкові дані, які сформульовані в термінах даного алгоритму. Серед допустимих початкових даних алгоритму можуть бути такі, до яких він пристосований, тобто відштовхуючих від яких можна отримати шуканий результат, а можуть бути і такі, до яких даний алгоритм непридатний, тобто використання яких не дає шуканого результату. Непридатність алгоритму до допустимих початкових даних може полягати або в тому, що алгоритмічний процес ніколи не закінчиться (у цьому випадку говорять, що він безконечний), або в тому, що його виконання під час одного з кроків потрапляє на перешкоду, заходить в безвихідь (в цьому випадку говорять, що він безрезультатно обривається).
1 Аналіз алгоритмів
1.1 Поняття алгоритму
Процес створення комп’ютерної програми для розв’язку певної інженерної задачі складається із наступних етапів:
формалізація сформованої задачі;
розробка алгоритму розв’язку задачі;
написання налагоджування і тестування програми;
отримання результату розв’язку задачі на ЕОМ.
Центральне місце у цьому процесі займає розробка алгоритму розв’язку технічної задачі.
Алгоритм – це формальний опис обчислювальної процедури, яка отримує початкові дані, які ще називають входом алгоритму, і видає результати обчислень на виході.
Алгоритм вважають правильним, якщо за кінцевий проміжок часу він закінчує роботу і видає очікуваний результат. У такому випадку кажуть, що алгоритм розв’язує дану обчислювальну задачу.
Таким чином, програма, яка написана на основі розробленого алгоритму, при будь-яких початкових даних не повинна здійснювати нескінченні циклічні обчислення.