Menü
Ingyenes
bejegyzés
itthon  /  Oktatás/ Hurok és egyéb vezérlők. Strukturált programozás

Hurok és egyéb vezérlők. Strukturált programozás

Fiókkezelő

Az elágazás operátor (feltételes elágazás) lehetővé teszi bizonyos programutasítások végrehajtását a logikai feltételek függvényében. A Visual Basicben az elágazás operátor kétféle változatban használható: inline és block.

hallgatói dolgozatok online cseréje ">

1. példa

Például, ha a> b Akkor max = a Különben max = b.

Ha több utasítást kell végrehajtania, azokat kettősponttal kell elválasztani.

2. példa

Például, ha a> 0, akkor b = a + 1: c = a \ 2.

A blokk szintaxis erősebb, strukturáltabb és olvashatóbb.

Blokk szintaxis:

A feltétel egy logikai kifejezés, amely értéket vehet fel Igaz(igaz), Hamis(hamis) ill Nulla ami egyenlő azzal Hamis... Egy blokk elágazási utasítás végrehajtásakor a feltétel ellenőrzésre kerül, és ha igaz, akkor a következő utasítás Azután... Ha a feltétel nem igaz, akkor ellenőrizni kell feltétel2 következő ElseIf... Ha valódi értéket talál, az operátor_of_igaz2 végrehajtásra kerül, ami ezt követi Azután, ami után a program túlmutat EndIf(azaz későbbi ElseIf, ha vannak, nincsenek bejelölve). Ha a valós feltételek ElseIf nem található, az under_of_condition operátor végrehajtásra kerül.

3. ábra Példa blokk szintaxisra. Author24 - hallgatói dolgozatok online cseréje

Kiválasztás operátor

Esetkiválasztó operátor bizonyos operátorokat hajt végre a tesztelt kifejezés vagy változó értékkészletétől függően. Válassza ki az utasítás szintaxisát:

4. ábra: A select utasítás szintaxisa. Author24 - hallgatói dolgozatok online cseréje

Az érték egy változó vagy kifejezés, amelyet egy vagy több feltétel alapján tesztelnek. Az értékek listája vesszővel van megadva, az értéktartomány pedig egy szolgáltatásszó segítségével Nak nek(például 5-től 9-ig).

3. példa

Az év hónapjának száma mellett jelenítsen meg egy üzenetet arról, hogy a megadott hónap melyik évszakhoz tartozik.

Strukturált operátorok - ezek bizonyos szabályok szerint más üzemeltetőktől épített építmények. A strukturált operátorok közé tartoznak:

Összetett operátor

Feltételes operátor

Operátorok kiválasztása

Hurok operátorok

Nyilatkozattal

1. Összetett operátor

Összetett operátor egy tetszőleges számú operátor csoportja, amelyek egymástól pontosvesszővel vannak elválasztva, és az operátorok kezdete és vége operátori zárójelben vannak elválasztva.

Összetett operátor formátum:

kezdődik<Оператор1>; ... ; <ОператорN>;

A benne szereplő operátorok számától függetlenül az összetett operátort egészként érzékeljük. A leggyakrabban használt összetett operátor a feltételes és ciklusutasítások.

Az összetett operátorok egymásba ágyazhatók, az összetett operátorok beágyazási mélységére vonatkozó korlátozások nélkül.

2.Feltételes operátor

Feltételes operátor bizonyos kijelentéseket érvényesít vagy nem tesz eleget, bizonyos feltételek betartásától függően.

Feltételes operátorformátum:

Ha azután<Оператор1> ;

A feltétel egy logikai kifejezés. Az operátor a következőképpen működik: ha a feltétel igaz (igaz értéke van), akkor az operátor1 kerül végrehajtásra, ellenkező esetben az operátor2. Mindkét operátor lehet összetett.

A feltételes utasítás rövidített formában írható, ha az else szó és az utasítás2 hiányzik utána.

Az ágak három vagy több irányba történő rendezéséhez több, egymásba ágyazott feltételes utasítást is használhat. Sőt, mindegyik megfelel az akkor közvetlenül megelőzőnek. Az esetleges hibák miatt kerülje a feltételes utasítások egymásba ágyazását.

3. Üzemeltető kiválasztása

Operátor választott a feltételes operátor általánosítása, és lehetővé teszi, hogy tetszőleges számú elérhető opció közül válasszon. Ez az állítás egy ún választó, opciók listája és egy opcionális else ág, aminek ugyanaz a jelentése, mint egy feltételes utasításban.

Válassza ki az operátor formátumát:

ügy<Выражение-селектор>nak,-nek

<Список1> : <Оператор1>;

<СписокN> : <ОператорN>

Kiválasztó kifejezés sorszámúnak kell lennie. Mindegyik változat konstanslista, kettősponttal elválasztva a megfelelő operátortól. A kiválasztási állandók listája tetszőleges számú értékből és tartományból áll, vesszővel elválasztva. A tartományhatárokat két konstansba írjuk, amelyeket a ".." elválasztó választ el egymástól. Az állandók típusának meg kell egyeznie a választó kifejezés típusával.

A kiválasztási utasítás végrehajtása a következőképpen történik:

1. A szelektor kifejezés értéke kiértékelésre kerül.

2. Az opciókat egymás után pásztázzák a választó értékének egybeesésére a megfelelő lista tartományaiból származó állandókkal és értékekkel.

3. Ha ez a keresés sikeres a következő változatnál, akkor ennek a változatnak az operátora kerül végrehajtásra. Ezt követően a kiválasztási utasítás végrehajtása véget ér.

4. Ha minden ellenőrzés sikertelen volt, akkor az else szó utáni operátor végrehajtásra kerül (ha van ilyen).

Példa. Kiválasztás operátor

esetszámNapja

1..5: strDay: = "Munkanap";

6..7: strDay: = "Szünnap"

else strDay: = "";

A hét napjának számát tartalmazó NumberDay egész változó értékétől függően a strDay karakterlánc-változóhoz hozzárendeljük a megfelelő értéket.

Fejezet 6. VEZÉRLÉSI SZERKEZETEK Hozzárendelés operátor Egyszerű és összetett operátorok Feltételes operátor Többválasztásos operátor Előfeltételes hurok operátor Utófeltételes hurok operátor Paraméteres hurok operátor és feltétel nélküli ugrási eljárások


2 Ch. 6. VEZÉRLÉS STRUKTÚRÁK Hozzárendelési operátor Az operátor egy programozási nyelvi konstrukció, amellyel egy műveletet vagy műveletsorozatot állíthatunk be egy programban adatokon. A programoperátorok halmaza a benne rejlő algoritmust valósítja meg. Bármely kezelő bizonyos műveleteket igényel. Azt a folyamatot, amikor egy értéket "nyomnak" a változóba, hozzárendelésnek nevezik (az első hozzárendelést inicializálásnak nevezik). A hozzárendelés speciális konstrukcióval történik - a hozzárendelési operátor: változó azonosító: =: = kifejezés Var W, H: Integer; Kezdje W: = 23; H: = 17; W: = W*H; Vége.


3 Ch. 6. SZABÁLYOZÁSI SZERKEZETEK Egyszerű és összetett állítások Két egymást követő utasítást pontosvesszővel kell elválasztani (amely az utasítás végét jelenti): a: = 11; b: = a * a; Írd (a, b); Az összetett állítás egyetlen állításként kezelt állítások sorozata. Formázása a kezdet és a vége lefoglalt szavak használatával történik (zárójelben). A program operátora egyetlen oszthatatlan utasítás, amely egy műveletet hajt végre. Egy egyszerű operátor nem tartalmaz más operátort (hozzárendelés operátor, eljáráshívás, ...). kezdődik a: = 11; b: = a * a; Írd (a, b) végét;


5, majd kezdődik X: = X + 5; Y: = 1 vége különben Y: = -1; A feltételes operátort az ágak programozására használjuk, pl. olyan helyzetek, amikor bizonyos feltételek mellett szükségessé válik a "title =" (! LANG: 4 Ch. 6. CONTROL STRUCTURES) végrehajtása Feltételes utasítás, ha K> 5 akkor kezdődik X: = X + 5; Y: = 1 end else Y: = - 1 ; A feltételes operátort ágak programozására használjuk, vagyis olyan helyzetekben, amikor bizonyos feltételek mellett szükségessé válik a végrehajtás" class="link_thumb"> 4 !} 4 Ch. 6. SZABÁLYOZÁSI SZERKEZETEK Feltételes utasítás, ha K> 5, akkor kezdődik X: = X + 5; Y: = 1 vége különben Y: = -1; A feltételes operátort az ágak programozására használjuk, pl. olyan helyzetek, amikor bizonyos körülmények között szükségessé válik különféle műveletek végrehajtása. A feltételes operátor szerkezete: ha logikai kifejezés, akkor operator else operátor Minden ágba csak egy operátor írható. 5, majd kezdődik X: = X + 5; Y: = 1 vége különben Y: = -1; A feltételes operátort az ágak programozására használjuk, pl. helyzetek, amikor bizonyos feltételek mellett szükségessé válik a "> 5 végrehajtása, majd kezdődik X: = X + 5; Y: = 1 vége else Y: = -1; A feltételes operátort az elágazások programozására használják, azaz olyan helyzetekben, amikor szükséges bizonyos feltételek a különféle műveletek végrehajtásához A feltételes operátor szerkezete: if logikai kifejezés akkor operátor else operátor Minden ágban csak egy operátor írható "> 5 akkor kezdődik X: = X + 5; Y: = 1 vége különben Y: = -1; A feltételes operátort az ágak programozására használjuk, pl. olyan helyzetek, amikor bizonyos feltételek mellett szükségessé válik a "title =" (! LANG: 4 Ch. 6. CONTROL STRUCTURES) végrehajtása Feltételes utasítás, ha K> 5 akkor kezdődik X: = X + 5; Y: = 1 end else Y: = - 1 ; A feltételes operátort ágak programozására használjuk, vagyis olyan helyzetekben, amikor bizonyos feltételek mellett szükségessé válik a végrehajtás"> title="4 Ch. 6. SZABÁLYOZÁSI SZERKEZETEK Feltételes utasítás, ha K> 5, akkor kezdődik X: = X + 5; Y: = 1 vége különben Y: = -1; A feltételes operátort az ágak programozására használjuk, pl. olyan helyzetekben, amikor bizonyos feltételek mellett szükségessé válik a végrehajtás"> !}




6 Ch. 6. SZABÁLYOZÁSI SZERKEZETEK Többválasztós operátor A választási operátor több alternatív műveleti opció megvalósítására szolgál, amelyek mindegyike megfelel valamilyen paraméter saját értékének. konstans / range else utasítások case kifejezése: end utasítás; A és értéknek az egyik sorszámú típusnak kell lennie (kivéve a LongInt). Az értéktől függően kerül kiválasztásra az operátor, amelyet a számított értékkel megegyező kiválasztási állandó előz meg (az alternatíva az else utáni operátorok). Az állandó értékeknek minden halmazban egyedinek kell lenniük, pl. csak egy változatban jelenhetnek meg.


7 Ch. 6. SZABÁLYOZÁSI SZERKEZETEK az (I: Word) 1 I. esete: X: = X +1; 2,3: X: = X +2; 4..9: kezdődik Írás (X); X: = X + 3 (mb ";") vége (mb ";") különben X: = X * X; Writeln (X) (mb ";") end;


8 Ch. 6. VEZÉRLŐSZERKEZETEK A "While" ciklus operátor (előfeltétellel), míg a feltételes kifejezés do operátora (ciklustörzs) a do függvényszó után ciklikusan kerül végrehajtásra mindaddig, amíg a logikai feltétel teljesül, pl. míg az érték True. Ahhoz, hogy egy hurok valaha is véget érhessen, a törzs tartalmának befolyásolnia kell a hurok állapotát. A feltételnek a ciklustörzs első végrehajtása előtt meghatározott érvényes kifejezésekből és értékekből kell állnia. VarF, N: LongInt; (10. számítás Begin F:= 1; N:= 1; while N !}


9 Ch. 6. SZABÁLYOZÁSI SZERKEZETEK "Before" ciklus operátor (utófeltétellel) Az ismétlődő és addig szavak közötti állítások alkotják a ciklus törzsét. Ha igaz, a hurok véget ér. Loop "While" - "amíg a feltétel igaz, hajtsa végre a törzs utasításait." Loop "Before" - "végrehajtja a ciklus törzsét, amíg a feltétel igaz nem lesz"; ismételje meg a False-ig; operátor ismétlése feltételes kifejezésig;


10 Ch. 6. SZABÁLYOZÁSI SZERKEZETEK A paraméteres hurokoperátor (loop over a counter) egy sorszámú változó, az értékek és értékeknek azonos típusúnak kell lenniük. Az érték növekvő (a fenntartott szó használatakor) vagy csökkenő (lefelé) sorrendben változik értékről értékre, állandó lépéssel, amely megegyezik a két legközelebbi érték közötti intervallummal abban a típusban, amelyhez tartozik (egész típusú típusok esetén, ez 1, karaktertípusoknál, egyik karakterről a másikra, amikor a kódot 1-gyel növeljük stb.). A For ciklusok beágyazhatók, ha egyik beágyazott ciklus sem használ vagy módosít változókat - a külső hurkok paramétereit. "Szigorú" ciklusok szervezésére szolgál, amelyeket meghatározott számú alkalommal kell elvégezni. for r ciklusparaméter: = 1. kifejezés 2. kifejezésre do downto utasítás


12 Ch. 6. VEZÉRLŐSZERKEZETEK Feltétel nélküli elágazás operátor Egy címke a programban bárhol megjelenhet az operátorok között, és a második operátortól kettősponttal ":" választja el. A feltétel nélküli ugrás operátorok hatóköre szigorúan lokalizált. A goto operátor által az eljárások között, valamint a fő blokk és az eljárás között tilos áttérni. A feltétel nélküli ugrás operátor a végrehajtás vezérlését a címke segítségével megjelölt programhelyre adja át (a strukturált programozás elmélete szempontjából "felesleges"). goto label Címke előjel nélküli egész szám; címkeazonosító, szintaktikai diagramok és: LabelL1, L2; Kezdje ... goto L1; ... L1: goto L2; ... L2: End.


13 Ch. 6. SZABÁLYOZÁSI SZERKEZETEK Feltétel nélküli ugrási eljárások Nem strukturális vezérlésátviteli eljárások ciklikus struktúrákkal végzett munka során: Break - bármilyen típusú hurokból való kilépést valósít meg; Continue – a ciklus következő iterációjára lép, figyelmen kívül hagyva a ciklustörzs végéig fennmaradó utasításokat. A kilépési és leállítási eljárásokat kifejezetten a programblokkok (eljárások, funkciók, főprogramblokk) kilépésére tervezték. A Halt () kilép a programból a megadott kilépési kód visszaküldésével az operációs rendszernek. Az Exit feltétel nélkül kilép az alprogramból. Ha az eljárást a fő blokkban használjuk, akkor ugyanúgy hajtjuk végre, mint a Halt.

Loop utasítások A hurokutasítások ismétlődő számítások szervezésére szolgálnak. A hurok szervezéséhez egy hurokparaméternek nevezett változóra vagy egy hurokvezérlő változóra van szükség. Bármely ciklus a következőkből áll: kezdeti beállítások vagy a ciklusparaméter inicializálásának blokkja; a ciklus törzse, vagyis azok az utasítások, amelyek többször végrehajtásra kerülnek; ciklus paraméter módosítás blokk; a hurokból való kilépési feltétel ellenőrzése, amely akár a hurok törzse elé helyezhető, majd előfeltételes hurokról beszélnek, vagy a törzs után ...


Ossza meg munkáját a közösségi médiában

Ha ez a munka nem felelt meg Önnek, az oldal alján található a hasonló művek listája. Használhatja a kereső gombot is


2. téma Operátorok vezérlése

2.1 A strukturált programozás alapvető konstrukciói

V programozási elméletbebizonyosodott, hogy egy tetszőleges bonyolultságú probléma megoldására szolgáló program csak három struktúrából, ún. szekvenálás, elágazás és hurkok. Felhívták őket alaptervekstrukturált programozás.

Következő egy olyan konstrukció, amely két vagy több (egyszerű vagy összetett) operátor szekvenciális végrehajtása.

Elágazó az egyik vagy a másik operátor végrehajtását határozza meg, egy feltétel teljesülésétől függően.

Ciklus az utasítás többszöri végrehajtását adja meg.

Az alapstruktúrák sajátossága, hogy bármelyiknek csak egy bemenete és egy kimenete van, így a struktúrák tetszőleges módon egymásba ágyazhatók.

2.1. ábra - A strukturált programozás alapvető konstrukciói

Az alapkonstrukciók használatának célja egy egyszerű szerkezetű program beszerzése. Egy ilyen program könnyen olvasható, hibakereshető, és ha szükséges, módosítható rajta.

Minden pontosvesszővel végződő kifejezést utasításként kezelünk, amelynek végrehajtása a kifejezés kiértékeléséből áll.

2.2 Relációs és logikai műveletek

Kapcsolati műveletek(<, <=, >,> =, ==,! =) hasonlítsa össze az elsőt operandus a másodikkal. Operandusok lehet aritmetikai típusú vagy mutatók. A művelet eredménye az érték igaz vagy hamis ... Az egyenlőség és egyenlőtlenség összehasonlítása alacsonyabb prioritású, mint más összehasonlítások. Például: x> = 0, y! = 10, z == 0.

FIGYELEM! Jegyezze meg a különbséget az egyenlőségi teszt között (== ), melynek eredménye az igaz vagy hamis , és a hozzárendelési művelet (= ), ami a bal oldali operandushoz rendelt értéket eredményezi.

Logikai műveletek(&&, ||, ^). Operandusok logikai műveletek ÉS (&&), VAGY (|| ), KIZÁRÓLAG VAGY (^ ) olyan típusúnak kell lennie, amely típussá konvertálható bool, az operandusokkal egy műveletben különböző típusúak lehetnek. A művelet eredménye az igaz vagy hamis.

A művelet eredménye logikai ÉS igaz csak akkor, ha mindkét operandus érvényes igaz ... A művelet eredménye a logikai VAGY igaz ha legalább az egyik operandusnak van értéke igaz ... A művelet eredményelogikai KIZÁRÓLAGOS VAGY igaz ha az egyik operandus az igaz, a második pedig hamis. Logikai tagadás ( !) értéket eredményez hamis, ha az operandus igaz, és igaz, ha az operandus hamis. Operandus aritmetikai típusú lehet. Ebben az esetben,implicit konverzió bool beírásához ... A logikai műveleteket balról jobbra hajtjuk végre. Ha az első operandus értéke elegendő a művelet eredményének meghatározásához, a második az operandus nincs kiértékelve.

Az ÉS, VAGY, KIZÁRÓLAGOS VAGY, NEM műveletek eredménytáblázata

(A és B operandusok)

A && B

A || B

A^B

Példák logikai műveleteket tartalmazó kifejezésekre:

x> 0 && y<=10

(a< -1 && b >0) || c = 100

Feltételes működés(? :). Ez az egyetlen benne C ++ hármas művelet (három operandusa van), formátuma a következő:

operandus_1? operandus_2: operandus_3

Operandusok balról jobbra számítják. Az első operandus kiértékelésének eredményének olyan típusúnak kell lennie, amely típussá konvertálható bool ... Ha az eredmény az igaz , akkor a teljes feltételes művelet végrehajtásának eredménye a második operandus értéke lesz, ellenkező esetben a harmadik operandus értéke. Típusuk eltérő lehet.

Példa: tegyük fel, hogy valamilyen egész értéknek 1-gyel kell növekednie, ha az értéke nem haladja meg n , egyébként az 1 értéket vette fel. Ez egyetlen sornyi kóddal írható:

i = (i< n) ? i + 1: 1;


2.3 Elágazó operátorok. Feltételes if utasítás

Feltételes if utasításA számítási folyamat kétirányú elágazására szolgál. Algoritmus diagram operátort a 2.1. ábra mutatja. Kezelői formátum:

if (kifejezés) utasítás_1; [else nyilatkozat_2;]

Először egy kifejezést értékelünk ki, amely lehet aritmetikai vagy mutató típusú. Ha nem egyenlő nullával, pl. egyenlő igaz , akkor az első utasítás végrehajtásra kerül, ellenkező esetben a második. Ezt követően a feltételes vezérlést követően az irányítás átkerül a kezelőhöz. Lehet, hogy az egyik ág hiányzik.

Ha egy ágon több utasítást kell végrehajtani, akkor azokat egy blokkba kell zárni. Egy blokk bármilyen utasítást tartalmazhat, beleértve a leírásokat és egyéb feltételes utasításokat is.

Példák:

Ha egy< 0) b = 1;

Ha egy< b && (a >d || a == 0))

B ++;

más

(b * = a; a = 0;)

Ha egy< b)

Ha egy< c )

M = a;

más

M = c;

más

Ha (b< c )

M = b;

más

m = c;

1. példa ág hiányzik más ... Az ilyen konstrukciót "üzemeltetői kihagyásnak" nevezik, mert feladat vagy végrehajtásra kerül, vagy kihagyásra kerül attól függően, hogy a feltétel teljesül-e.

Ha több feltételt is ellenőriznie kell, ezeket jelekkel kombináljáklogikai műveletek... Például a kifejezés a 2. példában akkor lesz igaz, ha a feltétel a< b и одно из условий в скобках. Если опустить внутренние скобки, будет выполнено сначала логическое И, а потом – ИЛИ.

Operátor a 3. példában három változó legkisebb értékét számítja ki.

Operátori szintaxis szerint ha fiókjaiban legfeljebb egy operátor lehet. Ha több van belőlük, akkor ezeket egy blokkba kell egyesíteni a segítségével göndör fogszabályozó vagy azzal vesszőműveletek (,).

Példa. Egy lövést adnak le a képen látható célpontra 3.2. ábra. Határozza meg a pontok számát!

3.2. ábra - Cél

#beleértve

fő int ()

float x, y;

int kol;

Printf ("\ n Adja meg a felvétel koordinátáit ");

Scanf ("% f", & x);

Scanf ("% f", & y);

Ha (x * x + y * y< 1)

Kol = 2;

Más

Ha (x * x + y * y< 4)

kol = 1;

más

kol = 0;

printf ("\ n Pontok:% d", kol);

2.4 Elágazó operátorok. Többválasztós operátor kapcsoló

Kapcsoló nyilatkozatA számítási folyamat több irányba történő elágazására szolgál. Kezelői formátum:

kapcsoló (kifejezés)

Esetkonstans_kifejezés_1: operátorok 1;

Esetkonstans_kifejezés_2: utasítások 2;

...

Eset állandó_kifejezés_n: utasítások n;

Az utasítás végrehajtása ezzel kezdődikkifejezés értékelése(egész számnak kell lennie ), majd a vezérlés átadásra kerülügy -label - konstans kifejezéssel jelölt operátorokra, amelyek értéke egybeesik a számított értékkel, ezután az összes többi ág szekvenciálisan végrehajtódik, ha a kilépés nincs kifejezetten megadva kapcsoló.

Minden állandó kifejezésnek különböző jelentéssel kell rendelkeznie, de azonosnak kell lennieegész típusú... Egymás után több címke következhet. Ha nincs egyezés, akkor a szó utáni utasítások végrehajtásra kerülnek alapértelmezett (és ennek hiányában az irányítás átkerül a következőre switch utasítás).

Ha valamelyikbenügy - a címkékből hiányzik az operátor szünet , majd az operátorok a következőbenügy -label és így tovább, amíg az operátort meg nem találják valahol szünet.

Példa (a program a legegyszerűbb számológépet valósítja meg 4 művelethez):

#beleértve

fő int ()

int a, b, res;

char op;

printf ("\ n Írja be az 1. operandust: ");

scanf ("% d", & a);

printf ("\ n Írja be a művelet jelét: ");

scanf ("% c", & op);

printf ("\ n Írja be a 2. operandust: ");

scanf ("% d", & b);

bool f = igaz;

Kapcsoló (op)

"+" eset: res = a + b; szünet;

"-" eset: res = a - b; szünet;

"*" eset: res = a * b; szünet;

"/" eset: res = a / b; szünet;

alapértelmezett: printf ("\ n Ismeretlen művelet"); f = hamis;

ha (f)

printf ("\ n Eredmény:% d", res);

Lépjen ki a kapcsolóból általában operátorokkal történik szünet vagy vissza.

2.5 Loop utasítások

Hurok operátorok ismétlődő számítások szervezésére szolgálnak.

A ciklus szervezéséhez egy változót, az úgynevezett hurok paraméter ill hurokvezérlő változó... Bármely ciklus a következőkből áll:

  • kezdeti beállítások vagy hurokparaméter inicializálási blokk;
  • huroktestek , vagyis azok az utasítások, amelyek többször végrehajtásra kerülnek;
  • ciklus paraméter módosítás blokk;
  • ellenőrizze a kilépési állapotot egy hurokból, amely akár korábban is elhelyezhető huroktestek (akkor a ciklusról beszélnek előfeltétellel), vagy a hurok törzse után (utófeltételes hurok).

3.3. ábra - Kétféle ciklus

A hurok egyik menetét hívják ismétlés ... Az egész ciklus paraméterei mindegyiken egy egész számmal változnak iterációkat hívunk ciklusszámlálók.

A vezérlést nem lehet átvinni kívülről a hurok belsejébe. A hurokból való kilépés a kilépési feltétel teljesülésekor és operátorok által is lehetséges szünet, visszaadás ill feltétel nélküli ugrás menj.

2.6 Hurok előfeltétellel (miközben)

Hurok előfeltétellel algoritmussémát valósítja meg

while (kifejezés) operátor;

Például:

A kifejezés határozza meg az ismétlési feltételt huroktestek egyszerű vagy összetett operátor képviseli. Ha a kifejezés nem 0 (igaz), akkor a ciklus utasítás végrehajtásra kerül, majd a kifejezés újra kiértékelésre kerül. Ha az első ellenőrzéskor a kifejezés 0 (hamis), akkor a ciklus még egyszer sem kerül végrehajtásra. A kifejezés típusának aritmetikusnak vagy konvertálhatónak kell lennie.

függvényértékek y = x 2 +1 a megadott tartományban):

#beleértve

fő int ()

úszó Xn, Xk, Dx;

úszó X = Xn; // a ciklus kezdeti beállításai

Míg (X<= Xk) //проверка условия выхода

Printf ("\ n% 5.2f% 5.2f", X, X * X + 1); // test

X + = Dx; //módosítás

2.7 Hurok utófeltétellel (do while)

Hurok utófeltétellel algoritmussémát valósítja meg alább látható, és így néz ki:

do nyilatkozat, míg kifejezés;

Egy egyszerű illösszetett operátoramely a ciklus törzsét alkotja, majd a kifejezés kiértékelésre kerül. Ha nem egyenlő 0-val (igaz), a ciklus törzse újra végrehajtásra kerül, és így tovább, amíg a kifejezés egyenlővé nem válik nullával (hamis) vagy valamilyentranszfer operátor... A kifejezés típusának aritmetikusnak vagy konvertálhatónak kell lennie.

Példa (a program ellenőrzi a bemenetet):

#beleértve

fő int ()

char válasz;

printf ("\ n Vegyél elefántot!");

scanf ("% c", & válasz);

while (válasz! = "y");

2.8 for loop

A hurokhoz az alábbi algoritmussémát valósítja meg, és a következő formában van:

számára (inicializálási blokk; állapotellenőrző blokk; módosítási blokk)

Hurok test;

Példa:

Inicializálási blokka ciklusban használt értékek deklarálására és inicializálására szolgál. Ebben a részben több operátort is írhat, vesszővel elválasztva.

Állapotellenőrző blokkmeghatározza a ciklus végrehajtásának feltételét: ha nem egyenlő 0-val (igaz), akkor a ciklus végrehajtásra kerül.

Módosítás blokkmindegyik után végrehajtva iterációk ciklus, és általában a ciklus paramétereinek megváltoztatására szolgál. A módosítások részében több operátor is írható vesszővel elválasztva.

Egyszerű vagy összetett operátor képviseli huroktest ... A kezelő bármely része számára elhagyható (de a pontosvesszőt hagyjuk a helyükön!). Bármely részben használhatja a vessző műveletet (szekvenciális számítás), például:

for (int i = 1, s = 0; i<= 100; i++)

S+ = i; // számok összege 1-től 100-ig

Példa (a program kiírja a táblázatotfüggvényértékek y = x 2 +1 a megadott tartományban):

#beleértve

fő int ()

úszó Xn, Xk, Dx;

printf ("Adja meg az argumentum megváltoztatásának tartományát és lépését:");

scanf ("% f% f% f", & Xn, & Xk, & Dx);

For (úszó X = Xn; X<= Xk; X += Dx)

Printf ("\ n% 5.2f% 5.2f", X, X * X + 1);

2.9 Beágyazott hurkok

Mindegyik ciklusoperátor tetszőleges sorrendben beágyazható bármely másikba. A hurkok fészkelési mélysége nincs korlátozva. Csak a megoldandó probléma algoritmusa határozza meg.

Az alábbiakban bemutatunk egy példát a beágyazott hurkokra számára

Ez a programrészlet a következőképpen működik. A külső hurok paraméterének egy értékéhez i (például i = 1 ) a belső hurok paramétere j a minimumtól a maximumig terjedő tartományban változik (1-től M ). Csak akkor a paraméterén eggyel nő. Így a hurok törzse végrehajtásra kerül N * M-szer.

A beágyazott hurkok más változatai is hasonló módon működnek: a külső hurok paramétere lassan, a belsőé pedig gyorsan változik. Javasoljuk, hogy saját maga sajátítsa el őket. Ehhez a belső hurok algoritmus blokkja helyett a ciklus teljes törzsét illessze be.

2.10 Vezérlés átviteli operátorok

C ++ nyelven öt operátor van, amely megváltoztatja a számítás természetes sorrendjét:

  • a cikluskilépési utasítás, és megszakító kapcsoló;
  • ugráskezelő a következő ciklus iterációjának folytatása;
  • függvény visszatérési utasítás Visszatérés;
  • operátor feltétel nélküli ugrás menj;
  • dob operátor dobás.

Szünet nyilatkozat azonnali felmondásra használják ciklus utasítás vagy kapcsoló ... A végrehajtás átkerül a következő utasításra a befejezett után.

Tekintsük a használatát egy példával.nyitott iteratív hurok számára ... Például 1 és 100 közötti számok összegének kiszámítása.

int i = 1, összeg = 0;

mert (;;)

Ha (i> 100) szünet;

összeg + = i;

i ++;

Ugrás a következő iterációs operátorra hurok folytatása kihagyja az összes fennmaradó állítást a végére huroktestek , és átadja a vezérlést a ciklus paramétereinek módosításához (ciklus esetén számára ) és a következő eleje iterációk.

Tekintsük a használatát az összeg kiszámításának példáján 1 / x ha x a [-5, 5] tartományban változik.

#beleértve

fő int ()

float X, Összeg = 0;

(X = -5; X<= 5; X++)

Ha (X == 0)

Folytatni;

Összeg = Összeg + 1/X;

Printf ("\ n Sum =% f", Sum);

Funkcióvisszaadási operátor Visszatérés befejezi a funkciót, és átadja a vezérlést arra a pontra, ahol meghívták. A kapcsolódó témakör jellemzőivel együtt kitérünk rá.

Feltétel nélküli ugráskezelő A goto formátuma:

goto címke;

Ugyanazon függvény törzsének pontosan egy alakkonstrukciót kell tartalmaznia:

címke: kezelő;

Goto nyilatkozat átadja az irányítást a megjelölt kezelőnek. Címke Rendszeres azonosító,hatályamely funkciója a szervezetben történik.

Használat feltétlen ugrás operátorkét esetben indokolt:

  • kényszerített kilépés a program szövegéből többrőlbeágyazott hurkokvagy kapcsolók;
  • áttérés egy függvény több helyéről egyre (például ha mindig végre kell hajtania valamilyen műveletet, mielőtt kilép egy funkcióból).

Más esetekben alkalmasabb eszközök is vannak bármely algoritmus rögzítésére.

Kivételes helyzet(vagy csak kivétel ) vagy a programozó generálja az operátor segítségével dobás vagy maga a futásidő. Ez akkor fordul elő, ha hiba történik a program végrehajtása során, például nullával való osztás vagy túlcsordulás. Gépezet kivételkezelésben valósították meg C ++ , lehetővé teszi, hogy válaszoljon az ilyen hibákra, és így elkerülje a program rendellenes leállását. Egy másik topikban lesz szó róla.

További hasonló művek, amelyek érdekelhetik Önt Wshm>

2784. Feltétel és kiválasztási operátorok 16 KB
Ha állapot operátor. Ezért már a következő hozzárendelési utasításokat is megírhatja: Koren: = Sqrtxy; Modul: = bsxy. Az ilyen feltételes ugrások Pascal nyelvben való megvalósításához az If és az Else utasításokat, valamint a Goto feltétel nélküli ugrás operátort használjuk. Tekintsük az If kijelentést.
2750. Nyilatkozatok írása és írása 12,34 KB
Írj eng. A WriteLn operátor ugyanezt a műveletet hajtja végre, de mivel ennek is van az Ln sor végződése eng. Általános nézet: Kifejezéslista írása WriteLn kifejezéslista A Write és WriteLn eljárások nemcsak az eredmény megjelenítésére szolgálnak, hanem különféle üzenetek vagy kérések megjelenítésére is.
6706. Strukturált lekérdezési nyelv - SQL: előzmények, szabványok, alapvető nyelvi operátorok 12,1 KB
Az SQL strukturált lekérdezési nyelv a változó sorokat tartalmazó relációs számításon alapul. Az SQL nyelvet táblákkal, létrehozással, törléssel, szerkezetváltással és táblák adataival, kijelöléssel, módosítással, hozzáadással és törléssel, valamint néhány kapcsolódó művelet végrehajtására tervezték. Az SQL nem procedurális nyelv, és nem tartalmaz utasításokat a bemeneti/kimeneti rutinok stb. szervezésének szabályozására.

A legegyszerűbb szerkezet a következő. Így ábrázolható:

Az "a" és "b" modul tartalmazhat egy operátort vagy tetszőleges számú, egymás után következő struktúrát, beleértve a és alább tárgyaljuk.

A villastruktúra (ha - akkor - egyébként) az algoritmus két lehetséges végrehajtási módja közül az egyik kiválasztását szolgálja. Ellenőrzésen alapul. A villa így néz ki:

Az IF-THEN-ELSE struktúrákat például így lehet egymásba ágyazni.

A beágyazott struktúrák számát a PC és a rá telepített szoftver képességei korlátozzák. Ez az összeg általában a nyelvi leírásban szerepel. Az olvashatóság érdekében a beágyazott struktúrák téglalapokra cserélhetők, illetve az egyes téglalapok blokkdiagramja külön lapon részletesen megjeleníthető. Általában minden blokkdiagram vagy program jobban olvasható, ha teljes egészében egy oldalon van elhelyezve.

Az utolsó blokkdiagramon látható struktúra lehetővé teszi a három út egyikének kiválasztását. Hasonlóképpen, beágyazott struktúrák használatával tetszőleges számú elérési út közül egy kiválasztását megszervezheti. Mivel ennek szükségessége gyakran megjelenik, egy speciális struktúra került bevezetésre - egy választás, amely így néz ki

Itt a "P" szimbólum továbbra is azt a feltételt jelöli, amelynek teljesülése alapján a lehetséges útvonalak egyike kerül kiválasztásra.

Az algoritmusok kidolgozásakor gyakran rendkívül fontos egy művelet vagy műveletcsoport megismétlése. Az algoritmus ilyen töredékeinek megjelenítéséhez speciális struktúrákat biztosítanak - ciklusokat. Οʜᴎ Három típusa van: bye-loop, by-loop és by-count ciklus. A ciklus munkáját a következő folyamatábra mutatja be.

Az utasításblokk első végrehajtása előtt, amelyet általában a ciklus törzsének neveznek, a "P" feltétel ellenőrzésre kerül, és ha igaz, akkor a ciklus törzse végrehajtódik, és a vezérlés visszatér a ciklus elejére. hurok. Ezután a feltétel ismét ellenőrzésre kerül, és így tovább, amíg a hurokfeltétel hamis lesz. Ebben az esetben a ciklus végrehajtása megszakad. Addig hajtódik végre, amíg a feltétel teljesül.

A Cycle-do másként van megszervezve.

A hurokfeltétel valódiságának ellenőrzése a huroktest végrehajtása után, az abból való kilépés pedig a feltétel igaza esetén történik. Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, a ciklus törzse mindig egyszer kerül végrehajtásra, ellentétben ciklus-viszlát, amely még egyszer sem kerül végrehajtásra, ha a ciklusfeltétel nem teljesül.

A ciklus harmadik típusa a számlálóciklus. Olyan esetekben használják, amikor rendkívül fontos a hurok törzsének bizonyos számú megismétlése. Szerkezete a következő blokkdiagrammal ábrázolható.

Ez azt mutatja, hogy ez a ciklus egy speciális eset ciklus-viszlát, de mivel ez az eset gyakran előfordul, a programozási nyelvekben, különösen a VBA-ban, egy speciális operátort vezetnek be a számlálóval ellátott hurok leírására.
Feladva a ref.rf
Emiatt külön struktúrát jelöltünk ki erre a ciklusra.

Példaként vegyünk egy blokkdiagramot a maximális elem megtalálására egy N számot tartalmazó táblázatban.

Itt Max a maximális szám, i a számok száma a számtáblázatban X, N a táblázat mérete. A blokkdiagram a következő szerkezeti felépítéseket tartalmazza: follow, loop-bye, amely addig fut, amíg az ellenőrzött szám száma kisebb vagy egyenlő nem lesz, mint a tábla mérete, valamint egy elágazás, amelyben kiválasztásra kerül egy elérési út, amely tartalmazza a az aktuális szám hozzárendelése a táblából a Max változóhoz, abban az esetben, ha ez a változó kisebb, mint az aktuális szám.

A fő irányító struktúrák fogalmak és típusok. A „Fő vezérlőszerkezetek” kategória besorolása és jellemzői 2017, 2018.