Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТЕМА 2. ОСНОВИ АЛГОРИТМІЗАЦІЇ. ПОБУДОВА АЛГОРИТ...docx
Скачиваний:
8
Добавлен:
21.11.2019
Размер:
205.02 Кб
Скачать

Тема 2. Основи алгоритмізації. Побудова алгоритмів.

  1. Що таке алгоритм? Властивості алгоритмів.

  2. Використання блок-схем для побудови алгоритмів.

  3. Основи роботи з програмою DiagrammDesigner для графічного відображення алгоритмів.

1. Що таке алгоритм? властивості алгоритмів.

Слово алгоритм походить від імені перського вченого, астронома та математика Аль-Хорезмі. Приблизно 825 до н. е. він написав трактат, в якому описав придуману в Індії позиційну десяткову систему числення. В першій половині XII століття книжка потрапила до Європи в перекладі латинською мовою під назвою Algoritmi de numero Indorum. Вважається, що перше слово в перекладі відповідає невдалій латинізації імені Аль-Хорезмі, а назва перекладу звучить як «Алгорітмі про індійську лічбу».

Перший алгоритм, призначений для виконання на автоматичному обчислювальному пристрої (комп'ютері), описала Ада Лавлейс в 1843 році. Алгоритм мав обчислювати числа Бернуллі й працювати на аналітичній машині Беббіджа. Цей алгоритм вважається першою комп'ютерною програмою, а його розробниця, Ада Лавлейс — першим програмістом.

Рис. 1. Баронеса Ада Лавлейс, яку вважають першим програмістом.

Розглянемо визначення поняття алгоритм.

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

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

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

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

Алгоритми мають ряд важливих властивостей:

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

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

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

  • Вхідні дані. Алгоритм має деяку кількість (можливо, нульову) вхідних даних, тобто, величин, заданих до початку його роботи або значення яких визначають під час роботи алгоритму.

  • Вихідні дані. Алгоритм має одне або декілька вихідних даних, тобто, величин, що мають досить визначений зв'язок із вхідними даними.

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

Виділяють наступні основні способи запису алгоритмів:

  • вербальний - алгоритм описується на природній мові;

  • символьний - алгоритм описується за допомогою набору символів;

  • графічний - алгоритм описується за допомогою набору графічних зображень.

Задача 1. Скласти алгоритм ров’язання квадратного рівняння на комп’ютері та записати його вербальним способом (описати словами). Нагадаємо, квадратне рівняння має вигляд: ax2+bx+c=0.  Розвязання:

  1. Вводимо значення a,b,c.

  2. Обчислюємо дискримінант за фрмулою d=b2-4ac.

  3. Якщо d > 0 обчислити корені x1,x2 за формулою x=(-b±sqrt(d))/2a та вивести їх значення на екран. Інакще, якщо d = 0 – обчислити x1=(-b)/2a і вивести на екран. Інакше вивести на екран «Коренів немає».

  4. Вийти з програми.

Ця ж задача на мові програмування C# має вигляд (символьний запис):

Приклад. Розв'язання квадратного рівняння

1: static void Main(string[] args)

2: {

3: //Оголошуємо змінні

4: double a, b, c, d, x1, x2;

5:  

6: //Вводимо значення змінних з клавіатури

7: Console.WriteLine("Введіть a:");

8: a = Convert.ToDouble(Console.ReadLine());

9: Console.WriteLine("Введіть b:");

10: b = Convert.ToDouble(Console.ReadLine());

11: Console.WriteLine("Введіть c:");

12: c = Convert.ToDouble(Console.ReadLine());

13:  

14: //Знаходимо дискримінант

15: d = b * b - 4 * a * c;

16:  

17: if (d > 0)

18: {

19: x1 = (-b + Math.Sqrt(d)) / (2 * a);

20: x2 = (-b - Math.Sqrt(d)) / (2 * a);

21: Console.WriteLine("x1 = {0}, x2 = {1}", x1, x2);

22: }

23: else

24: if (d == 0)

25: {

26: x1 = -b / (2 * a);

27: Console.WriteLine("x = {0}", x1);

28: }

29: else

30: Console.WriteLine("Коренів не існує.");

31: //Вихід з програми

32: }

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