Поняття і властивості алгоритму

Один з найважливіших етапів вирішення завдань на ЕОМ - складання алгоритму.

У 1983 році відзначалося 1200-ліття від дня народження одного з найвидатніших учених Середньої Азії і середньовічного Сходу Мухамада ібн Муси аль-Хорезмі. Він написав ряд трактатів з арифметики і алгебри, в тому числі книгу "Арифметика індуськими цифрами" - про рахунок за допомогою десяти цифр і правилах арифметичних дій з числами.

Ім'я вченого аль-Хорезмі перетворилося в поняття algorithmi, спочатку воно означало десяткову систему числення і правила арифметичних дій в цій системі. Звідси і виник сучасний науковий термін "алгоритм".

Кожен з нас щодня використовує різні алгоритми: інструкції, правила, рецепти і т.п. Зазвичай ми це робимо не замислюючись. Наприклад, відкриваючи двері ключем, ніхто не розмірковує над тим, в якій послідовності виконувати дії. Однак щоб навчити кого-небудь відкривати двері, доведеться чітко вказати і самі дії, і порядок їх виконання. Те ж потрібно і при вказівці маршруту поїздки.

Алгоритм відкриття дверей:

Вставити ключ в замкову щілину.

Повернути ключ за годинниковою стрілкою.

Алгоритм «Як їхати в гості»:

Пройти три квартали до автобусної станції.

Сісти на автобус №23 і проїхати до площі Леніна.

Вийти з зупинки.

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

Виконавець алгоритму - це той об'єкт, для управління якими складено алгоритм (людина, машина, комп'ютер і т.д.).

Алгоритмічний спосіб діяльності людини полягає в тому, що він або сам розробляє алгоритм, або отримує його в готовому вигляді і потім виконує, строго дотримуючись всіх вказівок, що створює даний алгоритм.

· Дискретність - розчленованість алгоритму на окремі елементарні дії;

· Впорядкованість - строгий порядок виконання дій;

· Масовість - придатність для вирішення не який-небудь однієї, а цілого класу задач;

· Детермінованість (визначеність) - однозначність результату при заданих вихідних даних.

Для спрощення програмування багатьох складних завдань використовуються допоміжні алгоритми.

Допоміжні алгоритми - це алгоритм рішення деякої підзадачі з вихідної (основний) завдання.

Допоміжний алгоритм, записаний на мові програмування, називається процедурою або підпрограмою.