Вложени цикли - studopediya

Ако тялото на цикъла е циклична структура, тези цикли се наричат ​​вложени или сложни. Пръстен съдържа различен цикъл, наречен външен. Loop, съдържаща се в тялото на друг цикъл, наречен вътрешен.







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

Съединение цикли условно разделени в нива на въвеждане. По-долу е структурата на вложени цикъла с параметър, за които: външния пръстен 1 е с ниво 0, вътрешният цикъл 2 - ниво 1, вътрешния пръстен 3 - ниво 2.

Възможни цикли гнездене дълбочина (брой нива) е ограничено от наличния капацитет на паметта на компютъра. Имайте предвид, че примката 2 е външен за цикъл 3 и вътрешни за цикъл 1. Параметрите на циклите на различни нива не се променят едновременно. Първоначално всички свои стойности се променят параметрите съкровените цикли контур с фиксирани стойности на параметри с по-ниско ниво - един променящ се цикъл 3. След това в стъпка стойност на следващото ниво (цикъл 2) и отново напълно извършва вътрешна линия и т.н., докато .. цикли, докато параметрите на всички нива, няма да получат всички необходими стойности. Така, ако в една сложна цикъл с разкрой к брой повторения на цикъла във всяко ниво е равно на N0. N1. ..., NK, съответно, от общия брой на повторения на вътрешния контур тялото е:

Фигура 3 - схема на алгоритъм, вложени цикъла

Фиг. 3 изобразява параметър цикъл. Но всичко изложено дотук се отнася и за случаите, когато организацията на цикъла се използват от други циклични структури: контур с предпоставка или postcondition цикъл.

Нека разгледаме конкретна задача, която изисква за техните организационни решение вложени цикли. Тази задача е задачата за табулиране на функциите на няколко променливи.

ПРИМЕР 3 Конструкт алгоритъм и да напише програма за изчисляване на стойностите на функцията Z = защото х + у, където х = хп (НХ) XK и у = ин (хидрокси) YK. Аргументи на функцията X, Y - реални числа.







За да се определи стойността на Z за всички различни двойки (х, у) процес изчисление необходимо да се организира, както следва. Първоначално фиксирана стойност на един от аргументите, например при х = x0, изчисляване на стойностите на Z за целия набор Y: ин. ин + HY. ..., ин. След това, промяна на стойността на х от х + HX, отново отидете на пълен цикъл на променливата у. Това deystviyapovtorit всички дадени х: х н. Xn + НХ. ... хп. При прилагането на този алгоритъм изисква структура вложени цикъла: външния контур - за промяна на стойностите на променливата х и вътрешния контур - за промяна на стойността на променливата у. Освен това, в този проблем вътрешните и външните контури могат да се обърнат, с единствената промяна на последователността на аргументите на функции за изчисление. Тъй като вътрешните и външните контури могат да бъдат използвани с цикли на параметрите, цикли с предпоставка или postcondition.

Фигура 4 - схема на алгоритъм на Пример 3

Алгоритъм за решаване на този проблем, направени с помощта на параметъра цикъл е показан на фиг. 4. програма, съответстваща на този алгоритъм е показано на Обявата 3.

статично невалидни Майн (струнен [] аргументи)

двойно хп, XK, HX, ин, YK, хидрокси, Z;

Console.Write ( "Enter Xn");

Console.Write ( "Enter XK");

Console.Write ( "Enter HX");

Console.Write ( "Enter ин");

Console.Write ( "Enter ук");

Console.Write ( "Enter HY");

за (двойна х = хп х <= xk; x += hx) // Внешний цикл

за (двойни у ​​= ин у <= yk; y += hy) // Внутрений цикл

Console.WriteLine ( "х =" + х + "у =" + у + "Z =" + Z);

Пример 4.Vychislit със стойност грешка е функция Y е = COS (х), при използване на разпадане COS х в един ред, за стойности на х = хп (НХ) XK.

Изчислете стойността на функцията COS х може да бъде, като го разширява в следния ред:

Фигура 5 - схема 4 алгоритъм например

Задача изчисляване у = COS х за фиксирана стойност на х е обсъдени в Пример 1. В този случай, сумата от серия S трябва да се изчислява за всяка стойност на X в диапазона [Xn. XK]. Поради това е необходимо да се използва структурата на вложени цикъла. Както е показано в Схема алгоритъм (Фигура 5.), Външният контур - линия за промяна на стойностите на х (предпоставка цикъл). Вътрешният контур - цикъл за изчисляване суми фиксирана стойност на х, с изчисляване грешка е (като предпоставка цикъл).

Всички по-горе се прилага в програмата, съответстващо на схемата на алгоритъма.

В този случай, сумата от серия S трябва да се изчислява за всяка стойност на X в диапазона [Xn. XK]. Поради това е необходимо да се използва структурата на вложени цикъла. Както е показано в Схема алгоритъм външен контур - линия за промяна на стойностите на х (предпоставка цикъл). Вътрешният контур - цикъл за изчисляване суми фиксирана стойност на х, с изчисляване грешка е (като предпоставка цикъл).

Правилността на програмата се оценява чрез сравняване с изчислява при използване на формулата у = COS (х) стойност на стойността и.

Съответната програма е представена в Обявата 4.

статично невалидни Майн (струнен [] аргументи)

двойно хп, XK, HX, EPS, S, T, Y, F;