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

1.2. Визначення алгоритму

За визначенням А.П.Єршова, інформатика – це наука про методи подання, накопичення, передавання та опрацювання інформації за допомогою комп’ютера. Що таке інформація? Вважається, що інформація – це поняття, яке передбачає наявність матеріального носія інформації, джерела і передавача інформації, приймача і каналу зв’язку між джерелом і приймачем інформації.

Основними в загальній інформатиці є три поняття: задача, алгоритм, програма. Відповідно, маємо три етапи в розв’язуванні задач (зазначимо, що, з точки зору інформатики, розв’язати задачу – це отримати програму, тобто, забезпечити можливість отримати рішення за допомогою комп’ютера): постановка задачі, побудова і обґрунтування алгоритму, складання і налагодження програми. Оскільки програма – об’єкт гранично формальний, а тому точний (можливо не завжди прозорий, навантажений неістотними із змістовної точки зору деталями, але недвозначний) то, пов’язані з нею об’єкти також мають бути точними. Алгоритм містить чіткий і ясний спосіб побудови результатів за точно вказаною в постановці задачі залежністю їх від наявних арґументів.

Відповідно до етапів маємо три групи засобів інформатики: специфікація, алгоритмізація і програмування.

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

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

Істотно, що, порівняно з програмою, алгоритм може перебувати на вищому рівні абстракції, бути вільним від тих або інших деталей реалізації, пов’язаних з особливостями мови програмування та конкретної обчислювальної системи. Засоби, прийняті для зображення алгоритмів, за традицією називають алгоритмічною мовою. До речі, так називалися також перші мови програмування високого рівня, наприклад, Алгол – це просто скорочення ALGOrithmic Language – алгоритмічна мова. Але, загалом, жодна мова програмування не може цілком замінити алгоритмічну мову, оскільки консервативна за своєю суттю. Стабільність – один з необхідних компонентів якості мови програмування. Повинні існувати ґарантії, що всі програми, складені вчора, в минулому році, десять років тому, не втратять значення ні сьогодні, ні завтра. Модифікація мови програмування призводить до небажаних наслідків: вимагає перероблення системи програмування, знецінює напрацьоване програмне забезпечення. У той же час алгоритмічна мова може створюватися спеціально для певної предметної області, певного класу задач або навіть окремої задачі. Вона може розвиватися навіть при створенні алгоритму, вбираючи в себе новітні результати.

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

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

Приклад 1.1. Обчислити (x+y)/(a-b)

А= (А1, А2, А3)

А1: х+у

А2: а-b

А3: А1/А2

Слово алгоритм походить від algorithmi – латинської форми написання імені великого математика IX ст. Аль-Хорезмі, який сформулював правила виконання арифметичних дій.

Приклад 1.2. Розглянемо відому задачу про людину з човном (Л), вовком (В), козою (Кз) і капустою (Кп). Алгоритм її розв’язання можна подати так:

{ Л, В, Кз, Кп  } – початковий стан,

пливуть Л, Кз, Кп

{ В  Л, Кз, Кп } – 1-ий крок,

пливуть Л, Кз

{ Л, В, Кз  Кп } – 2-ий крок,

пливуть Л, В

{ Кз  Л, В, Кп } – 3-ій крок,

пливуть Л

{ Л, Кз  В, Кп } – 4-ий крок,

пливуть Л, Кз

{Л, В, Кз, Кп } – кінцевий стан.

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