Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 VB Лекція.Алгоритми.doc
Скачиваний:
3
Добавлен:
08.09.2019
Размер:
162.82 Кб
Скачать

Тема 1. Алгоритми. Алгоритмічна мова|язик|

  1. Алгоритм і його властивості

  2. Поняття алгоритму

  3. Схеми алгоритмів

1.1. Алгоритм і його властивості

Будь-яка людина щодня зустрічається з|із| множиною|безліччю| завдань|задач| від найпростіших і добре відомих до дуже складних. Для багатьох завдань|задач| існують певні правила (інструкції|приписи|), що пояснюють|тлумачать| виконавцеві|виконувачеві|, як вирішувати дану задачу. Ці правила людина може вивчити заздалегідь|наперед| або сформулювати сама в процесі рішення задачі. Чим точніше і зрозуміліше будуть описані правила вирішення задач|задач|, тим швидше людина оволодіє ними і буде ефективніше їх застосовувати.

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

1.2. Поняття алгоритму

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

Слово алгоритм походить від algorithmi - латинської форми написання імені великого математика IХ ст. аль-Хорезми, який сформулював правила виконання арифметичних дій. Спочатку під алгоритмами розуміли тільки правила виконання чотирьох арифметичних дій над багатозначними числами. Надалі це поняття почали використовувати взагалі для позначення послідовності дій, що призводять до рішення поставленої задачі.

Приклад 1. Обчислити значення по формулі

Y = (Ах + В)(Сх - Р), для будь-якого значення х.

Щоб|аби| вирішити цю задачу, досить виконати послідовність наступних|слідуючих| дій:

1) помножити А на х, результат позначити R1;

2) R1 скласти з В, результат позначити R2;

3) помножити С|із| на х, результат позначити Rз|;

4) від R3 відняти Р, результат позначити R4;

5) помножити R2 на R4, вважати результат за значення Y.

Ця послідовність є|з'являється| алгоритмом рішення поставленої задачі. Для людини, що виконує дії, вже необов'язково знати початкову|вихідну| формулу для обчислення|підрахунку| значення Y|біля|. Йому потрібно всього лише чітко слідувати|прямувати| вказаній послідовності|припису|, виконуючи її пункт за пунктом.

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

Принцип розчленовування складного процесу рішення задачі на елементарні дії має важливе|поважне| значення для побудови|шикування| алгоритмів.

Приклад 2. Знайти найбільшого загального дільника двох натуральних чисел m і n.

Складемо алгоритм рішення цієї задачі, заснований на властивості, якщо m>n, то найбільший загальний дільник чисел m, n такий же, як і чисел m-n.

Алгоритм буде таким:

1) якщо числа рівні, то взяти будь-яке з них за відповідь, інакше продовжити виконання алгоритму;

2) визначити більше з|із| чисел;

3) замінити більше число різницею більшого і меншого чисел;

4) почати|розпочинати| алгоритм спочатку.

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

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

За допомогою алгоритмів можна вирішувати|рішати| не тільки|не лише| обчислювальні, але і багато інших завдань|задач|. Приведемо приклад|зразок| алгоритму рішення графічної задачі.

Мал. 1. Алгоритм побудови функції у = а|х|

Приклад 3. Побудувати графік функції = а|х| при а>0.

Алгоритм побудови|шикування| має наступний|слідуючий| вигляд|вид| (мал. 1):

1) накреслити графік функції = ах;

2) стерти частину|частку| графіка лівіше за вісь ординат;

3) симетрично відобразити|відбивати| частину|частку| графіка, що залишилася, щодо|відносно| осі ординат.

Приклади|зразки| алгоритмів показують, що запис алгоритму поділяється на окремі вказівки виконати деяку закінчену дію. Кожна така вказівка називається командою. Команди алгоритму виконуються одна за одною. На кожному кроці виконання алгоритму виконавцеві|виконувачеві| точно відомо, яка команда повинна виконуватися наступною|слідуючою|.

Почергове виконання команд алгоритму за кінцеве|скінченне| число кроків приводить|призводить| до рішення задачі (досягнення мети).

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

Сукупність команд, які можуть бути виконані виконавцем|виконувачем|, називається системою команд виконавця|виконувача|.

Приклад 4. Розглянемо поняття алгоритму: обчислення суми елементів вектора

а = (a1,a2..., аn). тобто S =

Для визначення суми застосуємо алгоритм її накопичення, використовуючи рекурентне співвідношення

Si : = Si-1 + ai; So = 0: i: = 1, 2.....n.

де Si| - поточне значення суми;

Si-1 - попереднє її значення;

S0 - початкове значення суми;

ai - значення поточного елементу вектора.

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

Алгоритм обчислення|підрахунку| суми запишемо у вигляді такої послідовності вказівок:

1. Привласнити S значення 0 і перейти до п. 2.

2. Привласнити i значення 1 та перейти до п. 3.

3. Обчислити|обчисляти| нове значення суми, додавши|добавляти| а, до її попереднього значення, тобто|цебто|, S: = S + ai| і перейти до п. 4.

4. Збільшити значення i на 1, тобто|цебто| i=i+l|, та перейти до п. 5.

5. Порівняти значення i та n: якщо i <= n, то перейти до п. 3, інакше - до п. 6.

6.Вивести результат S, тобто|цебто| суму елементів вектора а.

Алгоритм має такі основні властивості:

  • детермінованість (визначеність) - однозначність результату обчислювального процесу при заданих початкових даних;

  • дискретність - розбиття обчислювального процесу на окремі елементарні кроки, можливість виконання яких не викликає сумніву;

  • масовість - забезпечення рішення будь-якої задачі з класу однотипних;

  • результативність - забезпечення отримання результату через кінцеве число кроків.