Разклоняващи алгоритми - studopediya

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







Определение. Разклоняването нарича алгоритъм, където избрано едно от няколко възможни изпълнения на изчислителен процес. Всеки такъв път се нарича клон на алгоритъма.

Знак на разклоняване алгоритъм е наличието на условия операции за проверка. Има два вида условия - прости и сложни.

Прости условия (отношението) е израз, съставен от две аритметични изрази или две текстови стойности (в противен случай те се наричат ​​операнди), свързани с един от знаците:

<= - меньше, чем. или равно

> = - голяма от. или равно на

Например, простите отношения са както следва:

X-Y> 10; к<=sqr(c)+abs(a+b); 9<>11; "Мама"<>"Татко".

В тези примери, първите две отношения включват променливи, така че точността на тези отношения може да се съди само чрез заместване на някои стойности:

ако х = 25, у = 3, тогава съотношението на х-у> 10 ще бъде вярно. защото 25-3> 10

ако х = 5, у = 30, тогава съотношението на х-у> 10 ще бъде неправилно, тъй 5-30<10

Проверете верността на втория връзката чрез заместване на следното:

б) к = 65, а = 10, б = -3, с = 2

Определение. Израз, чрез заместване в които някои от променливите, можем да кажем за него е вярно (истина) или лъжа (неправилно), наречена Булева (логически) изрази.

Забележка. "Boolean" Името произлиза от името на математик Джордж Бул, разработена през XIX век, Булева алгебра и логика.

Определение. Променлива, която може да бъде в една от следните две стойности: True (вярно) или невярно The (фалшиво) се нарича Булева (логика) променлива. Например,

Задача. Изчислява се стойността на модула и квадратния корен на експресия (х, у).

За да реши този проблем, който вече познатите стандартни функции за намиране на корен квадратен - пл и модул - Abs. Поради това, че вече може да пише следните твърдения за присвояване:







В този случай, програмата ще изглежда така:

Корен, Modul. недвижими;

напиши ( "Въвеждане на стойностите на променливите х и у, разделени с интервал);

напиши ( "стойност на корен квадратен от (X-Y) е равен на");

напиши ( "модул стойност на (X-Y) е равен на");

Тя ще изглежда, че проблемът е решен. Но ние не се вземат предвид допустимите граници за намиране на корен квадратен от модула. Разбира се в областта на математиката, което трябва да знаете, че можете да намерите на произволен брой на модула, но стойността на корен квадратен от израза трябва да е неотрицателна (по-голямо или равно на нула).

Ето защо, нашата програма има своя допустим диапазон от входни данни. Ние намираме тази област. За това ние напише неравенство X, Y> = 0 и да го решите получаваме х> = ш. Така че, ако потребителят на нашата програма са числа, така че стойността на замяна на това неравенство е равна на True, а след това ще бъде въведена на корен квадратен от израза (X, Y), за да се отстрани на кутията. И ако стойността на неравенството е False, изпълнението на програмата завършва необичайно.

Задача. Въведете текста на програмата. Тествайте програмата със следните стойности на променливи, както и да се направят изводи.

а) х = 23, у = 5; б) х = -5, у = 15; в) х = 8, у = 8.

Всяка програма, доколкото е възможно, трябва контрол върху допустимостта на количествата, включени в изчисленията. Тук сме изправени пред клон на нашия алгоритъм, в зависимост от условията. За изпълнение на тези условни клонове в операторите на Паскал се използва, ако и останалите и оператор безусловно прехвърляне на Гото.

Помислете оператора If.

За наш проблем, ние трябва да vypolit следния алгоритъм:

след което се изчислява корен квадратен,

в противен случай се показва съобщение за често срещаните грешки.

Ние го напиша с твърдението Ако. Тя ще изглежда така.

пиша ( "невалиден въведени променливи");

Сега, в зависимост от входните стойности на променливите х и у, условията могат да бъдат или да не притежават.

Като цяло пълната форма на условна структура е както следва:

ако <логическое выражение>

Условният оператор работи по следния алгоритъм.

Първо логически израз оценена стойност намира зад офис думата АКО. Ако резултатът е вярно. извършва <оператор 1>, намира след думата тогава, и действията след друго, се пропускат; ако резултатът е верен, а напротив, действията след думата изхвръкнах, а след друго е екзекутирани <оператор 2>.

Структурата на управление може да се появи, ако негъвкав защото предприетите действия могат да бъдат описани само от един оператор. Понякога може да се наложи да изпълнява поредица от изявления. В този случай, аз бих искал да се заключи, цялата последователност в въображаемите скоби. Паскал е предвидено този случай.

Ако операторът трябва да изпълни поредица от изявления, те са в скоби оператор да започне в края. Дизайн започне. Край нарича изявление съединение.

ако <логическое выражение>