elágazás algoritmusok

Eddig már használt lineáris algoritmus, azaz a algoritmusok, amelyben minden szakaszában feladatok megoldásában végzik szigorúan egymás után. Ma fog találkozni elágazást algoritmusok.

Definíció. Az elágaztatást nevezett egy algoritmus, ahol a kiválasztott egy a számos lehetséges kiviteli alakjai a számítási folyamatot. Minden ilyen út egy ága az algoritmus.

Bejelentkezés elágazási algoritmus jelenlétében feltételek ellenőrzési feladatokat. Kétféle feltételek - egyszerű és összetett.

Egyszerű feltételek (attitűd) kifejeződése, amely két aritmetikai kifejezések vagy két szöveges érték (egyébként nevezik őket operandusok) kapcsolódó egyik jele:

<- меньше, чем.
> - legfeljebb.
<= - меньше, чем. или равно
> = - nagyobb, mint. vagy egyenlő
<> - nem egyenlő
= - egyenlő

Például az egyszerű összefüggések a következők:

x-y> 10; k<=sqr(c)+abs(a+b); 9<>11; „Anya”<>„Apa”.

Ezekben a példákban az első két kapcsolatok magukban változókat, ezért a helyességét e kapcsolatok lehet megítélni csak helyettesítésével bizonyos értékek:

  • ha x = 25, y = 3, akkor az arány x-y> 10 igaz lesz, mert 25-3> 10
  • ha x = 5, y = 30, akkor az arány x-y> 10 hibás lesz, hiszen 5-30<10
  • Ellenőrizze a hűség, a második kapcsolat helyettesítve a következő:

    Definíció. Expression, helyettesítésével, amelyben egyes változók, azt mondhatjuk róla igaz (true) vagy hamis (helytelenül) nevű logikai (logikai) kifejezéseket.

    Megjegyzés. A név „logikai” származik a neve matematikus George Boole kidolgozott a XIX században, Boole algebra és a logika.

    Definíció. A változó, amely az egyik szerint két érték: True (igaz) vagy False A (hamis) nevezzük logikai (logikai) változó. Például,

    Feladat. Számítsuk ki a értéke a modul és a négyzetgyöke az expressziós (x, y).

    A probléma megoldására már ismert szabványos funkciók a megállapítás a négyzetgyök - térnél és a modul - Abs. Ezért, ha már írni a következő hozzárendelés nyilatkozatai:

    Ebben az esetben a program fog kinézni:

    Program Znachenia;
    felhasználások
    crt;
    var
    x, y. integer;
    Koren, Modul. igazi;
    kezdődik
    ClrScr;
    write ( „Add meg a változók értékeit az x és y, szóközzel elválasztva”);
    readln (x, y);
    Koren: = SQRT (x-y);
    Modul: = Abs (x-y).
    levelet ( „értéke a négyzetgyöke (x-y) egyenlő”);
    levelet ( 'modulus értékét (x-y) egyenlő');
    readln;
    Vége.

    Úgy tűnik, hogy a probléma megoldódott. De nem veszi figyelembe a tűrési tartomány megtalálásához négyzetgyöke a modult. Természetesen a matematika, amit tudnod kell, hogy megtalálja bármennyi a modul, de az értéke a négyzetgyöke a kifejezést kell lennie, nem negatív (nagyobb vagy egyenlő nullával).

    Ezért a program a megengedett adattartalommal. Találunk ezen a területen. Erre írunk egyenlőtlenség x, y> = 0 és megoldására megkapjuk x> = y. Tehát, ha a felhasználó a programunk olyan számok, hogy a helyettesítési érték ezen egyenlőtlenség egyenlő True, akkor a négyzetgyöke kifejezés (x, y) kerül bevezetésre, hogy távolítsa el a dobozt. És ha a egyenlőtlenség értéke False, a végrehajtás a program végén rendellenesen.

    Feladat. Írja be a szöveget a program. Vizsgáljuk meg a programot az alábbi változók értékeit, és következtetéseket levonni.

    Minden program, amennyire lehetséges, figyelemmel kell kísérnie a jogszerűségét is érintett mennyiség a számítások során. Itt állunk szemben egy ága Algoritmusunk a körülményektől függően. Hajtsák végre az ilyen feltételes elágazások Pascal használat szereplők if és az else, és az üzemeltető független transzfert Goto.

    Tekintsük az üzemeltető Ha.

    Mert mi a probléma, meg kell vypolit a következő algoritmus:

    ha x> = y,
    majd kiszámítja a négyzetgyök,
    egyébként egy üzenetet jelenít meg a gyakori hibákat.

    Írunk azt az if. Úgy fog kinézni.

    ha x> = y
    majd
    Koren: = térnél (x-y)
    más
    write ( 'érvénytelen bevezetett változók');

    Most, attól függően, hogy a bemeneti változók értékét az x és y a feltételeket, vagy nem tartja.

    Általában a teljes formájában feltételes szerkezete a következő:

    ha <логическое выражение>
    majd
    <оператор 1>
    más
    <оператор 2>

    A feltételes operátor dolgozik a következő algoritmust.

    Első logikai kifejezésnek értékelte érték mögött található Office Word IF. Ha az eredmény igaz. teljesített <оператор 1>, után helyezkedik THEN és akciók után ELSE kimarad; ha az eredmény hamis, éppen ellenkezőleg, az intézkedések után a THEN kimarad, majd mást végrehajtott <оператор 2>.

    Az irányítási struktúra is megjelenhet, ha rugalmatlan, mivel az intézkedés lehet leírni egyetlen üzemben. Néha szükség lehet végezni sorozata nyilatkozatok. Ebben az esetben szeretnék kötni az egész sorozat a képzeletbeli zárójelben. Pascal előírt ebben az esetben.

    Ha az üzemeltető, hogy végre egy sor állítást, azok üzemeltetője zárójelben kezdődik végén. Tervezd hozzákezdene. Vége nevezett vegyületet nyilatkozatot.

    ha <логическое выражение>
    majd
    kezdődik
    1 üzemben;
    üzemben 2;
    .
    vég
    más
    kezdődik
    1 üzemben;
    üzemben 2;
    .
    végén;

    Definíció. Vegyület nyilatkozata - össze több operátorokat egy csoportban. Csoport utasításon belüli a vegyület az operátor konzol (kezdődik-end).

    kezdődik
    1 üzemben;
    üzemben 2;
    végén;

    Mivel a megszerzett tudás átalakítja a programot.

    Program Znachenia;
    felhasználások
    crt;
    var
    x, y. integer;
    Koren, Modul. igazi;
    kezdődik
    ClrScr;
    write ( „Add meg a változók értékeit az x és y, szóközzel elválasztva”);
    olvasni (x, y);
    ha x> = y
    majd
    kezdődik
    Koren: = térnél (x-y)
    Modul: = Abs (x-y)
    levelet ( „értéke a négyzetgyöke (x-y) egyenlő”);
    levelet ( 'modulus értékét (x-y) egyenlő');
    vég
    más
    write ( 'érvénytelen bevezetett változók');
    readln;
    Vége.

    Composite operátor operátor és

    A „” jel ebben az esetben osztja az értékadás S: = 0, üres operátor.

    Egy üres kijelentés nem jelent semmilyen intézkedést, és semmilyen módon nem jelezte a rekord programot.

    Például egy olyan vegyületet, nyilatkozat

    Ez magában foglalja egyetlen üres nyilatkozatot.

    Ha észrevette, a program Pascal mindig tartalmaz egy összetett utasítás - részben a program operátorok.

    Figyelem! Mielőtt hivatalos szó Else szeparátor (pontosvessző) nincs bekötve.

    Megjegyezzük, hogy a legtöbb szolgáltató Pascal programok pontosvesszővel végződnek, de nem pontosvessző után kerül egyes szolgáltatók. Megfogalmazzuk az általános szabályok alkalmazásával a pontosvessző:

    1. Minden leírás és meghatározása a változó konstans végén pontosvesszővel.
  • Minden szereplő a szervezet a program befejeztével pontosvesszővel, kivéve, ha ezt követően azonnal nem követ fenntartott szavakat End mást amíg.
  • Miután egy bizonyos fenntartott szavakat, mint például Aztán Else, Var, Const, kezd, soha résztől.
  • Tekintsük egy másik példát.

    Feladat. A kijelző a nagyobb két adott számmal.

    Ön is használja a rövidített (hiányos) feltételes lapon. Ezt a formát használja, ha a feltételek abban az esetben, ha nem tesznek mást.

    Hiányos forma feltételes utasítás a következő.

    ha <логическое выражение>
    majd
    <оператор>

    Ezután, ha a kifejezés mögött található hivatalos szó IF. ami egy igazi, intézkedéseket hajtottak végre, miután a THEN nyilatkozatot, különben ezek a lépések kimaradnak.

    Feladat. Írjunk programot, amely, ha a megadott szám negatív változást a másik.

    1. Ha a egész szám, M jelentése osztható egy n egész szám, majd jelenítse meg a hányadosa Division, egyébként egy üzenetet jelenít M és N nem osztható egyenletesen.
  • Record feltételes utasítás, amelyben a változó értékét számítjuk a képletben a + b, és ha - és páratlan a * b, és ha - még.
  • A értékét a függvény:
  • Írjunk programot, amely összeg számít az egyetlen pozitív a három megadott számokat.
  • Mivel három számot. Írja program megszámoljuk a zéró sajátértékek.
  • Írj programot, egyszerűsítve a következő kódrészlet:
    ha a> b, majd c: = 1;
    ha a> b, majd d: = 2;
    ha egy<=b then c:=3;
    ha egy<=b then d:=4.
  • Mi lesz a változó értékét, majd az utasítások végrehajtását:
    A: = 3;
    ha egy<4
    majd
    kezdődik
    Inc (a, 2);
    Inc (a, 3);
    végén;
  • Find száma pozitív (negatív) számok közül a négy egész számok, A, B, C, D.
  • Készítsen programot, amely csökkenti a bevitt első öt alkalommal, ha ez nagyobb, mint a második megadott szám abszolút.
  • Egy adott X érték számított érték a funkciót, amely a következőképpen definiálható:
    Y = sin (x), ha x> = 1
    Y = cos (x), ha x <1
  • Annak eldöntésére, hogy a megadott szám páros.
  • A számítógép megkérdezi: „Mi csak annyit kell?” és ha a számítógép választ kap, azt mondja: „Nos, természetesen a számítógép!”, vagy „Ez azért is szükséges, az összes, de szüksége van egy számítógép!”
  • Írj programot, amely a számítógép üdvözlendő lenne csak a tulajdonos, de amikor megpróbálja megadhat egy másik nevet kért volna: „Hol vannak (például), Bob?”
  • Írj programot, amely meghatározza, hogy van egy tört része bevezetése a számot.
  • Írj egy programot risuyuschuyu kört a bevezetése esetén a felhasználó-1 és a négyzet minden más esetben.
  • Kapcsolódó cikkek