Словесно представяне на алгоритмите

При словесното представяне алгоритъмът се записва с използването на естествен език и някои общоприети математически означения.

Примери за словесно описание на алгоритми:

 Задача 1 Нека а, b и c са дължини на страни на триъгълник. Да се опише словесно алгоритъм за пресмятане периметъра (обиколката) на тригълника.

Решение:

1. Въведете и запомнете числата а, b и c.

2. p:=a+b+c.

3. Съобщете стойността на р като резултат.

4. Прекратете работата.

Забележка със знака := се означава присвояване, т. е. на променливата р се присвоява сумата на числата а, b и с.

 

Задача 2  Да се опише словесно алгоритъм за намиране лицето на триъгълник по дадени дължини на трите страни, като се използва Хероновата формула за намиране на лице на триъгълник

където      е полупериметър на триъгълника.

 

Задача 3 Да се опише словесно алгоритъм чрез който с помощта на линийка и пергел да се раздели отсечката АВ на две равни части.

1. Построяваме окръжност k1(A, AB)

2. Построяваме окръжност k2(B, AB). Нека C и D са пресечни точки на k1 и k2.

3. Построяваме правата, определена от точките C и D. Пресечната точка Х на правите АВ и CD разделя АВ на две равни части (AX=BX)

4. Прекратяваме работата.

 

Задача 4. Да се опише словесно алгоритъмът на Евклид за намиране на най-голям общ делител (НОД) на две естествени числа a и b. (Алгоритъм на Евклид с изваждане)

1. Въведете и запомнете числата а и b.

2. Ако а≠b, изпълнете стъпка 3, в противен случай – стъпка 5.

3. Ако а>b, то намалете стойността на а с b, в противен случай намалете с а стойността на b.

4. Изпълнете стъпка 2.

5. Съобщете стойността на а като резултат.

6. Пректарете работата.

Забележка: Стъпка 3 може да се запише и така: “Ако а>b, a:=a-b, в противен случай b:=b-a”

Алгоритъмът на Евклид притежава всички основни свойства на алгоритмите – яснота, изпълнимост и т.н.

Алгоритъмът е масов, защото може да бъде изпълнен за всяка двойка естествени числа а и b;

краен – защото винаги води до намирането на НОД на а и b след краен брой стъпки.

Например при начални а=2 и b=6 последователно ще се получат следните двойки (a, b): (2, 6), (2, 4) и (2, 2). Така след краен брой стъпки, получаваме че НОД на 2 и 6 е числото 2. Алгоритъмът е цикличен

В алгоритъма на Евклид се предполага, че входните числа са естествени (цели и положителни), а в горното описание този момент не намира отражение. Следователно, ако на стриктен изпълнител (например компютър) като входни данни се подадат числата 3 и -3, той не би имал основания да ги отхвърли (като неподходящи). В този случай изпълнението на алгоритъма никога няма да завърши (защо?). За да бъде краен, горният алгоритъм трябва да се допълни с предварителна проверка на входните данни, която да не допуска те да не са естествени числа.

 

Задача 5. Да се опише словесно алгоритъм чрез който де се построи ъглополовяща на ъгъл ВАС на триъгълника АВС.

Решение: Решаването на тази класическа задача при използване на линийка и пергел, както ни е добре известно, се свежда до следните операции:

1. Построяваме окръжност k(А, r), r < АВ и r < АС.

2. Означаваме: В1 = k∩АВ, като В1 е между A и В.

3. Означаваме: С1 = k∩АС, като С1 е между А и С.

4. Построяваме окръжност k1(В1, r1),

 

5. Построяваме окръжност k2 (С1 , r1).

6. Означаваме: А1=k1∩k2 (A1 е едната от двете пресечни точки на окръжностите k1 и k2).

7. Построяваме АА1 (тя е симетрала на В1С1 и ъглополовяща на ъгъл ВАС).

8. Край на построението.

 


Описаната последователност от операции представлява алгоритъм за построяване на ъглополовящата на даден ъгъл. Нарича се символично построение. Графичното построение е дадено на следващата фигура.

Словесният начин за описание на алгоритми не е особено популярен. Основната причина за това е нееднозначността в тълкуването на много думи от естествените езици. В практиката се използват и други начини за описания на алгоритми – чрез блок-схеми и чрез т. нар. езици за програмиране.

Задачи за самостоятелна работа:

Задача 1. Опишете словесно алгоритъм за пресмятане и извеждане лицето на правоъгълник със страни а и b.

Задача 2. Опишете словесно алгоритъм за намиране и извеждане на по-голямото от две числа а и b.