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
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ő:
- Minden leírás és meghatározása a változó konstans végén pontosvesszővel.
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.
- 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.
ha a> b, majd c: = 1;
ha a> b, majd d: = 2;
ha egy<=b then c:=3;
ha egy<=b then d:=4.
A: = 3;
ha egy<4
majd
kezdődik
Inc (a, 2);
Inc (a, 3);
végén;
Y = sin (x), ha x> = 1
Y = cos (x), ha x <1