Поняття і властивості алгоритму
Один з найважливіших етапів вирішення завдань на ЕОМ - складання алгоритму.
У 1983 році відзначалося 1200-ліття від дня народження одного з найвидатніших учених Середньої Азії і середньовічного Сходу Мухамада ібн Муси аль-Хорезмі. Він написав ряд трактатів з арифметики і алгебри, в тому числі книгу "Арифметика індуськими цифрами" - про рахунок за допомогою десяти цифр і правилах арифметичних дій з числами.
Ім'я вченого аль-Хорезмі перетворилося в поняття algorithmi, спочатку воно означало десяткову систему числення і правила арифметичних дій в цій системі. Звідси і виник сучасний науковий термін "алгоритм".
Кожен з нас щодня використовує різні алгоритми: інструкції, правила, рецепти і т.п. Зазвичай ми це робимо не замислюючись. Наприклад, відкриваючи двері ключем, ніхто не розмірковує над тим, в якій послідовності виконувати дії. Однак щоб навчити кого-небудь відкривати двері, доведеться чітко вказати і самі дії, і порядок їх виконання. Те ж потрібно і при вказівці маршруту поїздки.
Алгоритм відкриття дверей:
Вставити ключ в замкову щілину.
Повернути ключ за годинниковою стрілкою.
Алгоритм «Як їхати в гості»:
Пройти три квартали до автобусної станції.
Сісти на автобус №23 і проїхати до площі Леніна.
Вийти з зупинки.
Порівняємо ці алгоритми. На перший погляд, між ними немає нічого спільного. Одна справа - відкривати двері, інша - їхати в гості. Але якщо придивитися уважно, можна помітити значну подібність між ними. Перш за все, це строгий порядок виконання дій.
Виконавець алгоритму - це той об'єкт, для управління якими складено алгоритм (людина, машина, комп'ютер і т.д.).
Алгоритмічний спосіб діяльності людини полягає в тому, що він або сам розробляє алгоритм, або отримує його в готовому вигляді і потім виконує, строго дотримуючись всіх вказівок, що створює даний алгоритм.
· Дискретність - розчленованість алгоритму на окремі елементарні дії;
· Впорядкованість - строгий порядок виконання дій;
· Масовість - придатність для вирішення не який-небудь однієї, а цілого класу задач;
· Детермінованість (визначеність) - однозначність результату при заданих вихідних даних.
Для спрощення програмування багатьох складних завдань використовуються допоміжні алгоритми.
Допоміжні алгоритми - це алгоритм рішення деякої підзадачі з вихідної (основний) завдання.
Допоміжний алгоритм, записаний на мові програмування, називається процедурою або підпрограмою.