Ágyazott hurkok - studopediya

Ha a test a ciklus egy gyűrűs szerkezetet, az ilyen ciklusok nevezzük beágyazott vagy komplex. Gyűrű, amely egy másik ciklus, az úgynevezett külső. Hurok foglalt a szervezet egy másik ciklus, az úgynevezett belső.







A belső és a külső gyűrű lehet bármely három tekinthető típusok: Cycles paraméter ciklus feltétele, a utófeltétel ciklus. Építésekor ágyazott hurkok szükségesek ahhoz, hogy a következő további feltételeknek: az összes belső hurok üzemeltetők kell lennie teljesen a test a külső hurok, a ciklus minden esetben nem lehet átlépni.

Vegyület ciklusok feltételesen osztva beágyazódási szintekkel. Az alábbiakban a szerkezet a beágyazott hurok egy paraméterrel, amelyre: a külső gyűrű 1-nek a szint 0, a belső ciklusban 2 - egy 1. szintű, a belső gyűrű 3 - 2. szint.

Lehetséges ciklus fészkelő mélység (szintek száma) korlátozza a rendelkezésre álló memória kapacitását egy számítógép. Megjegyezzük, hogy a hurok 2 külső a ciklus 3. és belső ciklus 1. A ciklus paramétereitől eltérő szinten nem változik egyszerre. Kezdetben minden érték paraméter változatlan legbelső hurok ciklus rögzített paraméterek értéke alacsonyabb szinten - a változó ciklus 3. Ezután a lépés értéke a következő szintre (2. ciklus), és újra teljesen elvégezve belső hurok, stb, amíg .. ciklusban a paramétereket minden szinten nem kapja meg az összes szükséges értéket. Így, ha egy komplex ciklusban az egymásba k ismétlések számát a ciklusok minden szinten egyenlő N0. N1. ..., Nk, illetve a teljes iterációk számát a belső hurok test:

3. ábra - reakcióvázlat algoritmus beágyazott hurok

Ábra. A 3. ábra egy ciklus paraméter. De a fentiekre is vonatkozik azokra az esetekre, amikor a szervezet a ciklusok által használt más gyűrűs szerkezetek: hurkot előfeltétele vagy utófeltétel ciklusban.

Nézzük egy konkrét feladat, amely megköveteli, megoldási szervezet ágyazott hurkok. Ez a feladat a feladat táblázatkészítési funkciók több változó.

3. példa Construct algoritmus és a levelet programot, hogy kiszámolja a függvény értékei z = cos x + y, ahol x = xn (hx) xk és y = yn (HY) yk. Függvényargumentumok x, y - valós szám.







Ahhoz, hogy meghatározzuk a Z értékek minden a különböző párokat (x, y) számítási eljárást kell, hogy gondoskodjon a következőképpen. Kezdetben, egy rögzített érték az egyik érv, például az x = x0, kiszámítjuk a Z értékek az összes beállított y: yn. yn + hy. ..., yn. Ezután, a változó értéke x-x + hx, ismét megy egy teljes ciklust y változó. Ezek deystviyapovtorit minden adott x: xn. xn + hx. ..., xn. Végrehajtja ezt algoritmus megköveteli szerkezet ágyazott hurkok: külső hurok - változtatni az értékeket az x változó és a belső hurok - módosíthatjuk a változó értékét y. Sőt, ez a probléma a külső és belső körös lehet fordítani, az egyetlen változás a szekvenciáját érvek a számítási műveleteket. Mivel a külső és belső körös használható paraméter ciklusok, ciklusok előfeltétele vagy utófeltétel.

4. ábra - program algoritmus a 3. példa

Algoritmus, hogy megoldja ezt a problémát, készült a ciklus paraméter ábrán látható. 4. A program ennek megfelelő algoritmus a 3. listában.

static void Main (string [] args)

kettős xn, xk, HX, yn, yk, hy, z;

Console.Write ( "Enter xn");

Console.Write ( "Enter xk");

Console.Write ( "Enter hx");

Console.Write ( "Enter in");

Console.Write ( "Enter yk");

Console.Write ( "Enter hy");

A (double x = xn; X <= xk; x += hx) // Внешний цикл

A (kettős y = yn; y <= yk; y += hy) // Внутрений цикл

Console.WriteLine ( "x =" + x + "y =" + y + "z =" + Z);

Példa 4.Vychislit egy hibaértéket e függvény az y = cos (x), felhasználva bomlás cos x egy sorban, az értékek az x = xn (hx) xk.

A értékét a függvény cos x lehet bővül ez a következő sorrendben:

5. ábra - a 4. reakcióvázlaton algoritmus pl

Feladat számítási y = cos x egy fix x értékét vitatták az 1. példa Ebben az esetben, az összeg a sorozat S kell kiszámítani minden egyes értékére x tartományban [xn. xk]. Ezért szükséges, hogy egy szerkezet ágyazott hurkok. Reakcióvázlatból látható, abban algoritmus (5. ábra), A külső hurok - hurok változtatni x értékei (előfeltétele ciklus). A belső hurok - ciklus kiszámítására összegeket egy fix érték X, egy hiba kiszámítása e (előfeltételeként ciklus).

Az összes fenti megvalósított program, amely megfelel a rendszer az algoritmus.

Ebben az esetben, az összeg a sorozat S kell kiszámítani minden egyes értékére x tartományban [xn. xk]. Ezért szükséges, hogy egy szerkezet ágyazott hurkok. Reakcióvázlatból látható, abban algoritmus külső hurok - hurok változtatni x értékei (előfeltétele ciklus). A belső hurok - ciklus kiszámítására összegeket egy fix érték X, egy hiba kiszámítása e (előfeltételeként ciklus).

A helyességét a program összehasonlításával értékeltük azt az s érték képlet szerint kiszámított y = cos (x) értéket.

A megfelelő programot mutatjuk a 4. listában.

static void Main (string [] args)

kettős xn, xk, HX, eps, s, t, Y, F;