Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
as.doc
Скачиваний:
37
Добавлен:
24.04.2019
Размер:
2.25 Mб
Скачать

1.3. Виконавці алгоритмів

Отже, алгоритм – це абстрактний математичний об’єкт, тому він вимагає абстрактного виконавця. Визначення цього виконавця по суті дає операційну семантику алгоритмічної мови. Модифікація алгоритмічної мови, очевидно, вимагає відповідної зміни іншого математичного об’єкту – виконавця.

Кожен виконавець може виконати певну кількість команд. Ці команди називаються допустимими командами виконавця.

Виконавцем ми будемо називати пристрій, здатний виконувати дії із заданого набору дій. Команду на виконання окремої дії називають оператором або інструкцією. Приклади виконавців: пральна машина, телефон, мікрокалькулятор, магнітофон, комп’ютер тощо. Приклади інструкцій: перемотати плівку, встановити з’єднання із заданим номером, виконати прання бавовняної білизни, зіграти партію у реверсі і т.ін.

Зазначимо особливості виконавців. По-перше, людина далеко не єдиний виконавець алгоритмів. По-друге, будь-який виконавець складається з пристрою керування й «робочого інструменту». По-третє, кожний виконавець алгоритмів має обмежений набір допустимих дій (описати виконавця означає вказати його допустимі дії). Кожний виконавець може розуміти і виконувати якусь порівняно невелику кількість різних елементарних команд. Із цих команд складаються алгоритми. Як із 33 літер українського алфавіту можна написати і шкільний твір, і поему «Мойсей», так і з цієї невеликої кількості команд можна скласти невелику навчальну програму, а можна – і складну програму з тисячами команд.

По-четверте, для розв’язування одних і тих самих задач виконавці з «біднішим» набором допустимих дій вимагають складніших і докладніших алгоритмів. По-п’яте, різні класи задач вимагають різних наборів допустимих дій, різних виконавців.

Розглянемо приклади найпростіших виконавців.

Виконавець «Обчислювач». Він вміє: множити число на 2 (*2); збільшувати число на 1 (+1). Треба скласти алгоритм отримання числа 100 з одиниці. Скільки дій у найкоротшому з таких алгоритмів? Розглянемо простішу задачу отримання з одиниці числа 4. Для її розв’язання можна використати алгоритм вигляду 1 (+1) (+1) (+1) або 1 (*2) (*2). Очевидно, що другий алгоритм коротший. Повернемося до попередньої задачі. Для отримання найкоротшого алгоритму перетворюємо число 100 у 1, використовуючи ділення на 2 і віднімання 1. Маємо

100  50  25  24  12  6  3  2  1.

Отже, для нашого виконавця алгоритм

1 (*2) (+1) (*2) (*2) (*2) (+1) (*2) (*2)

буде найкоротшим і містить 8 дій.

Виконавець «Маляр». «Маляр» може переміщуватися плоским полем, що розбитий на клітинки однакового розміру. Між клітинками поля можуть бути розташовані стіни, деякі клітинки можуть бути зафарбовані. Під час переміщення «Маляр» може зафарбовувати клітинки. Отже, виконавець може виконувати команди:

вгору

вниз

ліворуч

праворуч

зафарбувати.

Треба скласти алгоритм, при виконанні якого «Маляр» переміститься з клітинки А у клітку B і зафарбує клітинки, позначені крапками в полі:

А

.

В

.

.

Алгоритм розв’язування поставленої задачі такий:

вниз  праворуч  зафарбувати  праворуч  зафарбувати  вгорузафарбувати праворуч .

І, нарешті, складання програми для комп’ютера – це кінцевий етап розв’язування задачі. Якщо перший в більшій мірі абстрактно-математичний, то в останньому переважають моменти конкретно-виробничого характеру. Як влучно зазначив А.П.Єршов, «програміст мусить мати здатність першокласного математика до абстракції і логічного мислення в поєднанні з едісонівським талантом до створення чогось із нуля й одиниці» [21].

Якщо алгоритмічну мову вибирають, виходячи з власних бажань, то вибір мови програмування може диктувати певна реальність: замовник, комп’ютер, попередній досвід. У цьому посібнику розглядається одна з найбільш розповсюджених мов програмування – мова Сі. Створена 1972 року як мова для системного програмування, мова Сі дістала поширення у всьому світі. Сьогодні Сі має багатьох наступників серед виробничих мов програмування: C++, Java, C#. Приклади у курсі розглядаються з використанням системи Borland C++ v.3.1.

Іншою мовою, використаною у нашому посібнику, буде мова Паскаль, названа на честь великого французького вченого, який першим в світі 1642 року виготовив автоматичний пристрій для додавання чисел. Мова Паскаль створена у 1969 році Ніклаусом Віртом у Швейцарському технічному інституті у Цюріху спеціально для вивчення програмування. Сьогодні існує декілька варіантів мови Паскаль. Ми будемо дотримуватися версії системи Borland Pascal v.7.0.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]