Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лінійні алгоритми.docx
Скачиваний:
6
Добавлен:
08.05.2019
Размер:
153.01 Кб
Скачать

2. Властивості лінійних алгоритмів

Виконавцями алгоритмів можуть бути як люди, так і машини. На відміну від людей, технічні пристрої у змозі виконувати тільки точно визначені операції. Роботу-виконавцю не скажеш, як, наприклад, мама донці: «Піди в кімнату, там десь ножиці лежать!». Дитині нетреба детально і точно описувати алгоритм, де знайти ножиці і що їх треба принести саме мамі (чого б вона її інакше посилала?). Для робота-виконавця довелось би розробити, наприклад, такий алгоритм: повернутися на 12,7 градусів ліворуч; пересуватися прямо на відстань 4,34 метра; відчинити двері (що потребує свого алгоритму); перелізти через поріг заввишки 2,6 см і завширшки 16,5 см і т.д. Саме тому алгоритми, які виконуються автоматичними пристроями і машинами, повинні мати певні властивості.

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

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

Однозначність алгоритму — це точний опис дій та послідовності їх виконання, відсутність їх неоднозначного тлумачення1.

Таких властивостей часто не мають вказівки, які дають люди один одному. Наприклад, у мультфільмі «Вовка у тридев'ятому царстві» хлопчик дає наказ двом молодцям зі скриньки: «Нарубати і замісити!». І перший молодець почав рубати тісто, а другий місити дрова. Інший приклад: в одному німецькому місті бургомістр вночі зіштовхнувся з перехожим і набив собі гулю. Вранці він написав наказ: «Всім мешканцям міста вночі ходити з ліхтарями». Ввечері він пішов перевірити, як виконується його наказ. І знову набив гулю. «Чому ти без ліхтаря?» — «Ось він». — «Чому він без свічки?» — «Наказу не було». Наступного дня з'явився наказ: «У ліхтарях повинна бути свічка». Знову бургомістр пішов перевіряти виконання свого наказу і знову набив гулю. «Чому без ліхтаря?» — «Ось він». — «Чому ліхтар без свічки?» — «Ось вона». — «Чому вона не запалена?» — «Не було наказу». І тільки на третій день вийшов вичерпний наказ: перехожі в темну пору доби повинні ходити з ліхтарями, у ліхтарях повинна бути свічка, свічка повинна бути запалена.

 Зрозумілість алгоритму означає, що виконавець правильно сприйме кожну команду і зможе її виконати.

Наприклад, алгоритм, розроблений для автоматичної пральної машини, не буде зрозумілим для металообробного верстата з числовим програмним управлінням.

Будь-який алгоритм повинен бути розбитий на послідовність окремих кроків, мати властивість дискретності.

 Алгоритм має властивості дискретності, якщо всі його команди чітко відокремлені одна від одної.

Наприклад, на автомобільних заводах весь технологічний процес розбито на послідовність простих операцій (дискретів), виконання яких доручається машинам. Для машини алгоритм має бути записаний у вигляді послідовності найпростіших команд, які вона зможе послідовно виконувати.

Універсальність (масовість) алгоритму — це можливість використовувати його для розв'язування подібних задач.

Наприклад, наведений вище алгоритм знаходження НСД двох чисел можна застосувати до будь-яких цілих чисел.

 Алгоритм є правильним (результативним), якщо його виконання дає правильні результати розв'язування задачі1.

Алгоритм містить помилки, якщо при виконанні він не завершиться взагалі або отримані результати виявляться неправильними.

 Помилки в алгоритмах поділяють на синтаксичні та логічні. Синтаксичні помилки — це порушення правил запису алгоритму: пропущені дужки, коми, помилки в написанні команд тощо. Наприклад: A++B; X=Y∗(Z–;

Відсутність синтаксичних помилок не гарантує правильної роботи алгоритму. Є більш складні і «замасковані» помилки алгоритму, знайти і виправити які значно важче.

 Логічні помилки — це порушення в логіці алгоритму:помилки у виборі формул, неправильно вказані умовив розгалуженнях тощо.

Наприклад, якщо ми записали в алгоритм обчислення гіпотенузи трикутника за формулою

,

(де а і b — катети), то комп'ютер не помітить помилки і «добросовісно» проведе обчислення. Результат буде неправильним, тому що гіпотенуза обчислюється за формулою

.

Деякі логічні помилки, наприклад, спробу ділення на нуль або обчислення квадратного кореня з від'ємного числа, комп'ютер може знайти, але далеко не всі. Знаходити і виправляти логічні помилки — завдання людини.

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

Причиною цього можуть бути помилки у вибраному методі розв'язування або його неправильна реалізація.