9 Ciklus utasítás a paraméterhez

Ciklus a paraméterrel. A záradék

A for loop utasítás végrehajtja a hurok algoritmikus szerkezetét egy paraméterrel (vagy egy számlálóval). A for loop-ot akkor használjuk, ha a programban a hurok utasítások végrehajtása előtt ismeretes (vagy előre meghatározott) a ciklus lépéseinek száma. A folyamatábrán a nyilatkozat a következőképpen jelenik meg:

9 Ciklus utasítás a paraméterhez

szintaxis:

Ha van egy utasítás a ciklus testében, akkor <> el lehet hagyni. A hurok (számláló) változó paramétere bármilyen numerikus típus lehet. Ezáltal a C ++ hurok univerzális, mint a hurok. A módosítási szakaszban a postfix vagy prefix növekmény (vagy csökkentés) művelet leggyakrabban használatos, de a ciklusparaméter értékét megváltoztató hozzárendelési kifejezés használható. A ciklus a következőképpen működik:

  • Kezdetben a számlálóváltozót deklarálják és inicializálják
  • Ezután ellenőrizze az állapotot: ha a kifejezés igaz. iteráció következik be
  • A hurok test utasításainak végrehajtása után a számláló értéke módosul

Megjegyzés. A C ++-ban az a szabály, hogy leírja a változószámlálót a hurok fejlécében. Ez azonban nem szükséges, különösen akkor, ha több változót kívánunk inicializálni az inicializálási szakaszban, ahogy azt a 9.2. Azonban a változó-számláló leírása a ciklus fejlécében a helyi változó leírását eredményezi, amely automatikusan megsemmisül, amikor a hurok megszűnik. Ezért, extrém szükségesség nélkül, a for-loopon kívüli változószámláló leírását nem szabad előállítani.
A for hurok során nem ajánlott az operandusok megváltoztatása a ciklusfejléc-kifejezésekben - ez mindenféle hibához vezethet! De maguk a változók (vagy konstansok) értékei, beleértve a változóértékeket (számláló) is használhatók. Tekintsünk egy klasszikus példát.

Program 9.1 A természetes N számmal megadva adja ki a szám összes osztóját.

A folytonos utasítás használata a for hurokban

Amikor a for loop-ban a folytatólagos állítást használjuk, figyelembe kell venni a ciklus munkáját:

  • Az utasítások azután folytatódnak. el kell hagyni
  • Ezután a számláló frissül
  • Menj a következő iterációhoz (ellenkező esetben ellenőrizd a feltételt)

Mutassuk meg egy példát:

Megjegyzés. Megjegyzés: bár a számok kimenőjelenkénti kimenetét kihagyjuk, a számláló növelése megtörténik. Ezt a példát csak illusztrációként adtuk meg, a ciklus programozása nem így lenne! Jobb megoldani ezt a problémát az alábbiak szerint:

Többféle kifejezés az inicializálási és módosítási szakaszban

Amint azt a nyilatkozat fejlécében korábban említettük, három szakaszra lenne szükség. Az ebben a szakaszban szereplő kifejezések kihagyhatók, de nem hagyhatók el ";". A végén csak akkor hagyhatsz. Címsor formájában:

a "végtelen" ciklus feje. (A hurok kilépését programozni kell a hurok testén belül).
A C ++ támogatja a kifejezés utasításban lévő inicializálási és módosítási szakaszokban található több kifejezést. Ebben az esetben a ciklus folytatásának feltétele egy!
Például. A probléma feltérképezése: Számolja ki a szám legfeljebb 20 számot.
Program 9.2

Megjegyzés. Ne feledje, hogy a 12 sorban lévő kimeneti áram nem utal a hurok testére! (A címsor végén -;). Így a testben lévő ciklusnak üres kijelentése van, és minden kifejezést a fejlécben értékelnek. A 9.2 program helyesen számolja a 0-tól 20-ig terjedő szám faktoristáját.

A tartományos ciklus (tartomány-alapú)

Egy tömb vagy konténer elemeinek felsorolásához ugyanolyan típusú műveleteket kell végrehajtania, mint egy terjedelmes kódot. A C ++ konténerekkel való munka egyszerűsítése érdekében a hurok speciális formája a hatótávolság-alapú (hurok tartomány vagy tartomány alapján).
szintaxis:

A tartomány-alapú, például egy C tömb használatával:
Program 9.3

Ahhoz, hogy a tömbelemeket megváltoztassuk, az s változó referencia-változó legyen (mint a fenti példában). Ha a változó nem referencia, az adatokat át kell másolni. Az automatikus gépeléshez ebben a hurokban az automatikus specifikátort használják. tartomány-alapú, a dinamikus tömbökkel való együttműködésre korlátozott: nem támogatja a tömb méretének megváltoztatását, mivel tartalmaz egy rögzített végpont-mutatót. Ha fix méretű tömbökkel dolgozik, a tartomány a kiváló és biztonságos alternatíva a szokásos.

Beágyazott hurkok számára

Ugyanúgy, mint más hurokkifejezések, a támogatja a beágyazott hurokstruktúrát. A kétdimenziós tömbök bemeneteinek és kimenetének megszervezéséhez a hurokba ágyazott rendszerek használata sokkal kompaktabbnak tűnik, mint a hurok használata.
Az ilyen tömbök átkerülésének problémáinak megoldásakor azonban el kell kerülni a feltételes nyilatkozat használatát. Gyakran a feladatot racionálisabban lehet végrehajtani az indexek manipulálásával (az i és j ciklus változói). Ez azt jelenti, hogy egy index változását függesszük egy másik értékétől. Nézzünk két példát.
Program 9.4 Az n méretű négyzetmátrixot, amelynek elemei 0-nak felelnek meg. Töltse ki az alatta levő elemeket és a legfontosabb diagonális egységeket.

Program 9.5 Hozzon létre egy programot, amely kitölt egy tömböt a Pascal háromszög számával, és kiadja ezt a tömböt. A Pascal háromszög így néz ki:

9 Ciklus utasítás a paraméterhez

Ebben a háromszögben vannak egységek a tetején és az oldalakon (a 9.5 programban, a háromszög az oldalán van elhelyezve - a háromszög oldalai: az első oszlop és a fő átló). Minden szám megegyezik a fenti két szám összegével. A háromszög vonalai szimmetrikusak a függőleges tengelyhez képest, és tartalmaznak binomiális együtthatókat.

  1. Lehet-e a for loop utasítást kicserélni egy hurok utasítással? Mindig lehetséges ezt megtenni?
  2. Mikor kényelmesebb a for utasítás használata a hurkok megszervezéséhez? míg?
  3. Az utasítás utasítás fejlécében a következő állítások lehetségesek:
  4. Az i változó a külső hurok paramétere, és j a beágyazott paraméter. A j változó elérhető a külső hurokban? i a beágyazott hurokban?
házi feladat
  1. Ass. 29. Írj egy olyan programot, amelyben az a és b természetes számokat be kell mutatni. és a kijelzőn az a-b tartományban lévő összes prímszám látható (a 8.5 program algoritmusa)
  2. Ass. 30. A tökéletes szám az összes osztójának összege, kisebb mint önmagában (például a 6 = 1 + 2 + 3). Írjon egy olyan programot, amely egy természetes N számot vezet be, és meghatározza, hogy az N szám tökéletes.
  3. Írj egy olyan programot, amely n x n méretű négyzetszám-táblát jelenít meg. amely az alábbi formában van n = 10 értékkel.
irodalom

Kapcsolódó cikkek