itthon / Internet / Ciklusok és egyéb kezelőszervek. Strukturális programozás. Alapvető irányítási struktúrák Irányítási struktúrák. Általános információk a ciklusokról

Ciklusok és egyéb kezelőszervek. Strukturális programozás. Alapvető irányítási struktúrák Irányítási struktúrák. Általános információk a ciklusokról

A vezérlő utasítások olyan végrehajtható utasítások, amelyek megváltoztatják a programutasítások végrehajtási sorrendjét. A programozási nyelvekben használt összes állítás közül a vezérlő utasítások okozták a legtöbb vitát. A vita fő témája a legegyszerűbb goto control utasítás. Lehetővé teszi a program végrehajtási sorrendjének megváltoztatását, és egy adott helyen kezdődő programvégrehajtásra ugrást, amelyet névvel vagy számmal jeleznek. Ezért ez az állítás nem más, mint egy gépi nyelvi ugrási utasítás közvetlen alkalmazása. Egy ilyen operátor jelenléte a nyelvben magas szint lehetővé teszi a programozók számára, hogy ilyen rendszertelen programokat írjanak1:

goto 40 20 Alkalmazza az Evade eljárást

goto 70 40 if (KryptoniteLevel< LethalDose) then goto 60

60 Alkalmazza a RescueDamsel eljárást 70 ...

mivel ezek a műveletek egyetlen szerkezettel írhatók:

if (KryptoniteLevel< LethalDose)

majd (alkalmazza a RescueDamsel eljárást) másként (alkalmazza az Evade eljárást)

Az ilyen bonyodalmak elkerülése érdekében a modern programozási nyelvek olyan vezérlő utasításokat tartalmaznak, amelyek lehetővé teszik az elágazó struktúrák egyetlen kifejezéssel történő írását. ábrán látható néhány általánosan elfogadott elágazási struktúra és a hozzájuk tartozó vezérlőoperátorok különböző programozási nyelvekben. 5.7. Vegyük észre, hogy az első két szerkezettel már találkoztunk a 4. fejezetben. A mi pszeudokódunkban ezeket if-then-else és while utasítások képviselik. A harmadik struktúra, amelyet választásnak neveznek, az i f-then-el se struktúra kiterjesztésének tekinthető. A különbség köztük az, hogy az if-then-else utasítás két, míg a case utasítás több lehetőség közül tesz lehetővé.

Egy másik gyakori struktúra a for ciklus utasítás (5.8. ábra), hasonlóan a mi pszeudokódunk while utasításához. A különbség köztük az, hogy az inicializálás, a módosítás és a huroklezárási feltétel ellenőrzése egy utasításban egyesül. Egy ilyen operátor kényelmesen használható, ha a hurok törzsét bizonyos számú alkalommal kell végrehajtani - egyszer a számlálóváltozó minden értékéhez egy adott intervallumban. ábrán látható kezelő különösen. 5.8, azt utasítja, hogy a ciklus törzsét többször hajtsák végre: amikor a Count változó értéke 1, akkor amikor értéke 2, és utoljára, amikor az értéke 3.

A fenti példákból arra a következtetésre juthatunk, hogy az elágazó struktúrák kisebb eltérésekkel jelen vannak mind az imperatív, mind az objektumorientált programozási nyelvekben. Az elméleti számítástechnikában van egy olyan feltételezés, hogy minden olyan probléma megoldása, amelynek van algoritmikus megoldása, felírható korlátozott számú struktúrával. Ezt az állítást a 11. fejezetben tárgyaljuk. Addig is meg kell jegyezni, hogy egy programozási nyelv tanulása nem egy végtelen tanulmány. különböző operátorok menedzsment. Valójában a modern programozási nyelvekben használt vezérlőszerkezetek többsége az ebben a fejezetben leírt struktúrák egy változata.


Ízlés kérdése, hogy a programozási nyelvbe mely struktúrák kerüljenek be. Egy nyelv megalkotójának célja egy olyan nyelv kidolgozása, amely nemcsak az algoritmusok olvasható formában történő megírását teszi lehetővé, hanem a programozót is segíti ebben. Ezt a célt a történelmileg hanyag programozáshoz vezető elemek használatának korlátozásával és jól átgondolt elemek bevezetésével érik el. Ennek eredményeként strukturált programozást kaptunk, amely egyesíti a programírás módszereit és a vezérlő utasítások helyes használatát. A cél egy olyan program létrehozása, amely könnyen érthető, és azt csinálja, amit kell.

Hozzászólások

A tapasztalatok azt mutatják, hogy amikor az ember egy nagy programot próbál megérteni, nem annyira fontos, hogy a programozási nyelv mennyire átgondolt, és a funkcióit hogyan használják, mennyire hasznosak vagy éppen szükségesek. további információ normál emberi nyelven bemutatva. Ezért a programozási nyelvek lehetőséget biztosítanak magyarázó megjegyzések (megjegyzések) elhelyezésére a programban. A fordító figyelmen kívül hagyja a megjegyzéseket, így azok jelenléte vagy hiánya nincs hatással a programra a gép szempontjából. A fordító által generált program gépi nyelvű változata változatlan marad, megjegyzésekkel vagy anélkül. De a bennük lévő információ fontos az ember számára. Enélkül lehetetlen lenne megérteni a nagy és összetett programokat.

A Visual Basic egy objektumorientált programozási nyelv. A Microsoft fejlesztette ki olyan eszközként, amellyel a felhasználók operációs rendszer Microsoft Windows saját grafikus felhasználói felületet fejleszthetnek. Valójában a Visual Basic több, mint egy programozási nyelv. Ez egy teljes fejlesztési csomag szoftver, amely lehetővé teszi a programozó számára, hogy meghatározott összetevőkből (például gombok, jelölőnégyzetek, szövegmezők, görgetősávok stb.) felhasználói felületet hozzon létre, és ezeket az összetevőket igényeiknek megfelelően testreszabja, leírva, hogyan kell reagálniuk bizonyos eseményekre. Például egy gomb esetében a programozó leírhatja, hogy mi történjen, ha a gombra kattintanak. Ez a módszer az előre definiált komponensekből szoftverkészítésre a szoftverfejlesztés jelenlegi trendje.

A működés népszerűsége miatt Windows rendszerekés a Visual Basic csomag könnyű használhatósága miatt a Visual Basic nyelv manapság az egyik leggyakoribb programozási nyelvvé vált. Másrészt, mert a Visual Basic csak kompatibilis szoftver eszközök a Microsoft nem ismeri el általános célú programozási nyelvként.

Két fő módja van a megjegyzések és a programszöveg elkülönítésének. Az egyik az, hogy a megjegyzést speciális zárójelek közé kell tenni. Egy másik módszer a megjegyzés kezdetének megjelölése, amely a karaktertől jobbra lévő sor maradékát is elfoglalhatja. C++, C# és Java nyelven a megjegyzések írásának mindkét módja lehetséges. Ezekben megjegyzés helyezhető a /* és */ jelek közé, vagy //-vel kezdődhet. Így a C++, C# és Java nyelvekben mindkét jelölés érvényes:

/* Ez egy megjegyzés. */

// Ez egy megjegyzés.

Néhány szót kell szólni arról, hogy mit kell írni a megjegyzésekben. Kezdő programozók, amikor azt mondják nekik, hogy egy programot megjegyzésekkel kell ellátni, általában olyan kifejezésekhez, mint pl

ApproachAngle - SlipAngle - HyperSpacelncine:

adjon hozzá megjegyzést: "Vonja ki a HyperSpacelncine-t a SlipAngle-ből, és rendeljen értéket az ApproachAngle változóhoz". Az ilyen megjegyzések nem teszik érthetőbbé a programot, hanem csak meghosszabbítják azt. Ne feledje, hogy a kommentár célja a program elmagyarázása, nem pedig az ismétlés. BAN BEN ezt a példát jobb megmagyarázni, hogy miért kerül kiszámításra az ApproachAngl változó értéke (ha ez nem derül ki a programból). Például a következő megjegyzés: "Az ApproachAngle változót később a ForceFiel dJetti sonVel ocity változó értékének kiszámításához használjuk" sokkal hasznosabb, mint az előző.

Ezenkívül a programutasítások közé helyezett megjegyzések néha megnehezítik a program olvashatóságát és megértését. A legjobb, ha egy programblokkról szóló megjegyzéseket egy helyre helyezzük el, például a blokk elejére. Így jön létre a program egy bizonyos része, amely tartalmazza a cél leírását ill Általános jellemzők a program blokkja, ahol a felhasználó megtalálja a szükséges magyarázatokat. Ha ezt a technikát alkalmazzuk a program összes blokkjára, akkor a program egységessé válik: minden blokk magyarázó megjegyzésekből áll, amelyeket a blokk formális bemutatása követ. Ez az egységesség sokkal könnyebben olvashatóvá teszi a programot.

Eljárási egységek

Az előző fejezetekben beszéltünk a nagy programok kis, kezelhető egységekre bontásának előnyeiről. Ebben a részben figyelmünket az eljárás fogalmára összpontosítjuk, amely az imperatív programozási nyelven írt program moduláris megjelenítésének fő eszköze. Az eljárás egy olyan eszköz is, amelyet egy objektumorientált nyelven írt programokban használnak annak leírására, hogy egy objektum hogyan reagáljon a különböző bemenetekre.

Eljárások

Az eljárás egy feladat végrehajtására vonatkozó utasítások halmaza, amelyet más programegységek absztrakt eszközként használhatnak. A vezérlés akkor kerül át az eljárásra (gépi nyelvű ugrási utasítás segítségével), amikor annak műveletei szükségesek, majd az eljárás végrehajtása után ismét visszakerül az eredeti programegységhez (5.9. ábra). A vezérlés eljárásra való átadását eljáráshívásnak nevezzük. Az eljárás végrehajtását kérő programegységet hívó programnak vagy hívó egységnek nevezzük.

Az eljárás sok szempontból egy kis program, amely deklarációs utasításokból, majd végrehajtható utasításokból áll, amelyek meghatározzák az eljárás által végrehajtandó műveleteket. Általában egy eljárásban deklarált változó egy lokális változó, vagyis csak az eljáráson belül használható. Ez a megközelítés kiküszöböli azt a zavart, amely akkor keletkezhet, ha két független rutin azonos nevű változókat használ. Azokat a változókat, amelyek hatása nem korlátozódik a program egyetlen részére sem, globális változóknak nevezzük, és a programban bárhol elérhetők. A legtöbb programozási nyelv helyi és globális változókat is használ.

Az általunk vizsgált programozási nyelveken az eljárás leírása majdnem ugyanaz, mint a mi pszeudokódunkban (lásd a 4. fejezetet). Az eljárás fejlécének nevezett kifejezéssel kezdődik, amely többek között az eljárás nevét is tartalmazza. A fejlécet az eljárást részletesebben definiáló utasítások követik.

Ellentétben azonban a laza pszeudokódunkkal, ahol az eljárás végrehajtását olyan kifejezéssel kértük, mint az "Apply process DeactivateCrypton", a legtöbb modern nyelvek A programozás lehetővé teszi egy eljárás meghívását a nevének egyszerű megadásával. Például, ha a GetNames, SortNames és WriteNames a névlista lekérésére, rendezésére és nyomtatására szolgáló eljárások nevei, akkor a listát lekérő, rendező és kinyomtató program a következőképpen írható:

Alkalmazza a GetNames eljárást. Alkalmazza a SortNames eljárást. Alkalmazza a WriteNames eljárást.

Vegye figyelembe, hogy mivel minden eljárásnak nevet adtunk, amely az eljárás által végrehajtott műveletet jelöli, ez a rövid forma parancsok sorozata, amely tükrözi a program célját.

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

Összetett nyilatkozat

Feltételes operátor

Kiválasztási operátorok

Loop utasítások

nyilatkozattal

1. Összetett operátor

Összetett operátor egy tetszőleges számú utasítás csoportja, amelyeket pontosvessző választ el egymástól, és operátori zárójelekkel van elválasztva, kezdete és vége.

Összetett nyilatkozat formátuma:

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

Függetlenül attól, hogy hány utasítást tartalmaz, az összetett utasításokat a rendszer egyetlen entitásként kezeli. Az összetett utasítás leggyakoribb használata feltételes utasításokban és ciklusutasításokban történik.

Az összetett utasítások egymásba ágyazhatók, és nincs korlátozás az összetett utasítások egymásba ágyazásának mélységére vonatkozóan.

2. Feltételes operátor

Feltételes operátor biztosítja, hogy bizonyos utasítások bizonyos feltételektől függően végrehajtásra kerüljenek vagy nem.

Feltételes nyilatkozat formátuma:

Ha akkor<Оператор1> ;

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

Egy feltételes utasítás akkor írható rövidített formában, ha nincs más szó és utasítás2 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. Ebben az esetben mindegyik más az őt közvetlenül megelőző akkornak felel meg. Mert lehetséges hibákat a feltételes kijelentések egymásba ágyazását kerülni kell.

3.Válassza ki az operátort

Operátor választás 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, amelynek jelentése megegyezik a feltételes utasításban szereplővel.

Válassza ki a nyilatkozat 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 az adott változathoz társított operátortól. A kiválasztási állandók listája a következőkből áll tetszőleges összegértékek és tartományok vesszővel elválasztva. A tartományhatárok két állandóként vannak felírva, amelyeket "..." választ el. Az állandók típusának meg kell egyeznie a választó kifejezés típusával.

A select utasítás a következőképpen hajtódik végre:

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

2. Az opciók szekvenciális áttekintése megtörténik, hogy a választó értéke megfeleljen a megfelelő lista tartományaiból származó állandóknak és értékeknek.

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 select utasítás végrehajtása véget ér.

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

Példa. Válassza ki a nyilatkozatot

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 a megfelelő értéket rendeljük.

>> Vezérlési struktúrák. Általános információ ciklusokról

Tanfolyamok:

vezérlő struktúrák. Általános információk a ciklusokról

Vezérlési struktúrák

Általános információk a ciklusokról

A ciklusok a műveletek ismétlése amíg valamilyen logikai feltétel igaz. Például állítsunk be egy ciklusfeltételt, hogy valamelyik a változó kisebb, mint 10.

A ciklus addig lesz végrehajtva (azaz a benne foglalt utasítások annyiszor lesznek végrehajtva), amíg ez a feltétel nem válik igazzá.

Háromféle hurok létezik: for, do...while, while. Vegyük például a for ciklus konstrukciót.

for (Változó inicializálása; Feltétel; Változóváltás a ciklusutasítások blokkjának minden egyes végrehajtása után)
{
huroktest
}

Nézzünk egy példát a for ciklus használatára (3.1. lista).

Felsorolás 3.1.
Hurokpéldához

Ez a program tíz csillagot jelenít meg egy sorban. A ciklusban nem szükséges inicializálni a számlálóváltozót (a számlálóváltozó olyan változó, amely a ciklustörzs végrehajtásainak számát határozza meg). Tekintsünk egy példát egy olyan programra, amely nem deklarál számlálóváltozót a ciklusban (3.2. lista).

Felsorolás 3.2.
Példa egy programra anélkül, hogy egy ciklusban számlálóváltozót deklarálna

Egynél több számlálóváltozót is használhat, de többet is. Tekintsünk egy példát egy ilyen programra, amely a 3.3-as listában látható.

Felsorolás 3.3.
Példa több számlálóváltozó használatára

Tekintsünk egy while ciklust. Ebben a ciklusban egy feltétel paraméterként van megadva. A feltételt a ciklus végrehajtása előtt ellenőrizzük. A while ciklusnak a következő alakja van.

míg (feltétel)
{
huroktest
}

Vegyünk egy példaprogramot, amely while ciklust használ (3.4-es lista).

Felsorolás 3.4.
Példa a while ciklus használatára

Ez a program tíz csillagot jelenít meg a képernyőn.

Ne feledje, hogy ha elfelejti megadni egy növekményt a feltételben egy változóhoz, vagy egyszerűen csak helytelenül adja meg a feltételt, akkor futásidejű hiba léphet fel, amelyet a fordítási szakaszban nem észlel, és a ciklus korlátlan ideig fut.

Példa egy hibás programra.

Fontolja meg most a do...when ciklust.
Nagyon hasonlít a while ciklushoz, és csak abban különbözik, hogy nem a ciklus következő végrehajtása előtt ellenőrzi a feltételt, hanem annak végrehajtása után. A do...while ciklus alább látható.

Az if , if-else és switch utasítások a C program végrehajtásának szabályozásának legfontosabb eszközei. Ezeket a program általános szerkezetének megvalósítására kell használni. Az alábbiakban tárgyalt három operátorról általában ritkábban esik szó, mert túlzott használatuk rontja a program olvashatóságát, növeli a hibalehetőséget, megnehezíti a módosítást. Niklaus Wirth úgy definiálta a strukturált programozást, mint a gátlás nélküli programozást.

szünet kijelentés

A break utasítást arra használjuk, hogy kilépjünk egy while , do , for , switch utasításból, amely közvetlenül tartalmazza azt. Az irányítás átkerül az azt követő nyilatkozatra, amelyből a kilépés történt. A break utasításnak megvan a formája

while((ch=getchar()) != EOF) /* A ch=getchar() karakter beolvasása. Ha nem egyezik az EOF-fel, akkor a while */ utasítás törzse kerül végrehajtásra ( if(ch=="\n") break; putchar(ch; )

A ciklus teljesen befejeződik, amint a bemeneti karakter " új sor".

nyilatkozat folytatása

A folytás utasítás arra szolgál, hogy kihagyja az azt közvetlenül tartalmazó ciklus folyamatban lévő iterációjának többi részét. Ha új iterációt engedélyeznek a ciklus feltételei, akkor az végrehajtódik, ellenkező esetben a ciklus véget ér. A folytatási nyilatkozat a következő formájú:

while((ch=getchar()) != EOF) /* A ch=getchar() karakter beolvasása. Ha nem egyezik az EOF-val, akkor a while */ utasítás törzse végrehajtásra kerül ( if(ch=="\n") turpināt; putchar(ch; )

A folytatódik utasítással rendelkező verzió egyszerűen kihagyja az újsor karaktereket, és csak az EOF jelző beolvasásakor lép ki a ciklusból.

goto nyilatkozat

A goto utasítás célja, hogy feltétel nélkül átadja a vezérlést a megadott címkével ellátott utasításra. Ennek a következő formája van:

goto címke;

Kernighan és Ritchie a goto kijelentést "rendkívül rossznak" tartja, és azt javasolják, hogy a lehető legkevesebbet vagy a lehető legkevesebbet használják. Íme egy példa az operátor bejegyzésére:

Ahhoz, hogy ez az utasítás megfelelően lehessen végrehajtani, léteznie kell egy másik part1 feliratú utasításnak. Ebben az esetben az utasításbejegyzés egy címkével kezdődik, amelyet kettőspont követ:

part1: printf("ugráspont\n");

Ha nem tudod nélkülözni a goto , break , conse , return utasításokat, akkor goto használatakor menj előre a kódon, és ne vissza.

A break utasítást a legjobb nem arra használni, hogy idő előtt kitörjön egy hurokból, hasznos a switch utasításon belül.

A folytatódik utasítás nem használható a hurkok logikájának módosítására.

Miért nem kívánatos a függvények használata sok return utasítással? A strukturált programozás egyik alapelve, hogy egy programnak egy belépési és egy kilépési pontja legyen. A sok return utasítással rendelkező függvényeket nehezebb olvasni, mint azokat, amelyeknek a függvénytörzs végén csak egy return utasítás található.

A legtöbb egyszerű szerkezet- követve. Így ábrázolható:

Az "a" és "c" modul tartalmazhat egy utasítást és tetszőleges számú, egymás után következő struktúrát, beleértve a struktúrákat is. és alább tárgyaljuk.

A villastruktúra (if-then-else) arra szolgál, hogy kiválassza az algoritmus két lehetséges végrehajtási módja közül az egyiket. Az ellenőrzés az alapja. 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 a szám általában a nyelv leírásában szerepel. A blokkdiagram olvashatóságának biztosítása érdekében a beágyazott struktúrák téglalapokkal helyettesíthetők, és az egyes téglalapok blokkdiagramját külön lapon ábrázoljuk részletesen. Általában minden folyamatábra 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 választhat egyet. Mivel ennek szükségessége elég 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 fontossá válik bármely 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. A Οʜᴎ három típusa létezik: bye-loop, do-loop és counter-loop. A hurok-while működését a következő blokkdiagram mutatja be.

A ciklustörzsnek nevezett utasításblokk első végrehajtása előtt a "P" feltétel ellenőrzése megtörténik, és ha igaz, akkor a ciklustörzs végrehajtásra kerül, és a vezérlés visszakerül a ciklus elejére. Ezután a feltétel újra ellenőrzésre kerül, és így tovább, amíg a hurokfeltétel hamis lesz. Ebben az esetben a hurok megszakad. Addig hajtják végre, amíg a feltétel teljesül.

A do ciklus másképp 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 meg. Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, a ciklustörzs mindig egyszer végrehajtásra kerül, ellentétben ciklus-viszlát, amely soha nem kerül végrehajtásra, ha a hurokfeltétel nem teljesül.

A harmadik típusú hurok a számlálóhurok. 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ó.

Látható belőle, hogy ez a ciklus egy speciális eset ciklus-viszlát, de mivel ez az eset gyakori, a programozási nyelvekben, különösen a VBA-ban, egy speciális operátort vezetnek be a ciklus számlálóval történő leírására.
Házigazda: ref.rf
Emiatt külön struktúrát jelöltünk ki erre a ciklusra.

Példaként vegyünk egy folyamatábrát egy N számból álló táblázat maximális elemének megtalálásához.

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 folyamatábra a következő szerkezeti konstrukciókat tartalmazza: follow, egy while ciklus, amely addig fut, amíg az ellenőrzött szám száma kisebb vagy egyenlő nem lesz, mint a táblázat mérete, valamint egy elágazás, amelyben kiválasztásra kerül a hozzárendelést tartalmazó elérési út. az aktuális számot a táblázatból a Max változóba, ebben az esetben, ha ez a változó kisebb, mint az aktuális szám.

Alapvető vezérlési struktúrák - koncepció és típusok. A „Fő vezetési struktúrák” kategória besorolása és jellemzői 2017, 2018.