Разклоняващи алгоритми - 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>.
Структурата на управление може да се появи, ако негъвкав защото предприетите действия могат да бъдат описани само от един оператор. Понякога може да се наложи да изпълнява поредица от изявления. В този случай, аз бих искал да се заключи, цялата последователност в въображаемите скоби. Паскал е предвидено този случай.
Ако операторът трябва да изпълни поредица от изявления, те са в скоби оператор да започне в края. Дизайн започне. Край нарича изявление съединение.
ако <логическое выражение>