Az 5. fejezet hurokját követi a nyilatkozat üzemeltetője egészen addig

5. fejezet: A következő állapotú ciklus. Az ismétlődő nyilatkozat. amíg.

1. Egy későbbi feltétel (post-feltétel) egy hurok-üzemeltető hasonló ahhoz a hurok operátorhoz, amelynek előfeltétele, de az állapotot a hurok testét alkotó állítások végrehajtása után értékelik és ellenőrzik.

A hurok üzemeltető általános állapota:

ahol s1, s2, s3. - a ciklus testének üzemeltetői; <условие> - logikai kifejezés.

Fordított: ismételje meg - ismételje, amíg - amíg.

Amint láthatja, egy ilyen ciklus a hurok belsejében lévő állítások végrehajtásával kezdődik, majd az állapotban írt kifejezést értékelik.

Ha a kifejezés értéke igaz, akkor kilép a hurokból, ha az érték hamis, akkor a hurok folytatódik, és az operátorok újra végrehajtásra kerülnek

Rögtön meg kell jegyeznünk, hogy ellentétben a hurokkal. tennie. az ismétlődő körben. amíg. kezelői zárójelek kezdődnek. a vég nem használható, bár a károsodás használata nem hozza meg. Más szavakkal mondhatjuk, hogy a hurok utasítás ismétlődik. unti l. nem igényli a kezdő kezelői zárójeleket. végén.

Vegyük fontolóra ennek a kezelőnek a működését.

1. példa. Keresse meg a legkisebb természetes számot, amely a maradék 1, 2, 3, 4, 5 értéket adja, amikor 2, 3, 4, 5, 6-el osztja.

A probléma így fog megoldódni: a legkisebb természetes számot egységként vesszük, és a maradékokat 2, 3, 4, 5 és 6-el osztjuk; ha a maradványok egyenlő lesz 1, 2, 3, 4 és 5, majd a számot kívánatos, szükséges, hogy a képernyő és a teljes program, egyébként meg kell tennie a következő természetes szám - 2. és nézd meg, és így tovább.

A program. Ez az ötlet összeállítva nagyon egyszerű:

writeln ('A szükséges egész szám', n)

Egy másik példa, amely bemutatja a ciklus munkáját posztteremmel.

2. példa. A balról jobbra, jobbról balra és balról jobbra olvasható számokat palindromoknak nevezik. Például a 42324 vagy 1331 számok palindromok. Készíts egy programot, amely számokat talál - a palindromokat egy adott intervallumból.

A program kidolgozásának logikája a következő.

Sorszámok átrendezése és összehasonlítása a számmal az adott számmal.

Korábban a számok számának permutálására irányuló program, melyet előfeltételes ciklus alkalmazásával hajtottak végre

Hogyan épül fel a program egy része a számok permutációjáról egy ciklus használatával?

Tegyük fel, hogy egy adott szám a. akkor bemutatunk egy másik változót b. amelyhez a változó értéke a lesz hozzárendelve (amit később megtudunk): b: = a;

Egy új a1 változót állítunk be az új számra, amelyen a számok átrendeződnek.

A változó kezdeti értéke nulla: a1: = 0;

Miért van ez a változó nulla értéke a programból?

Ezután szervezze meg az ismétlődő hurkot. amelyben a b számjegyeinek permutációja lesz:

a1: = a1 * 10 + b mod 10;

Tehát egy hurokban, és egy időben hurokban. tennie. az utolsó számjegy elválik:

b mod 10; (például 343 mod 10 = 3); az a1 változóhoz az érték:

a1: = a1 * 10 + b mod 10; 0 * 10 + 3 = 3;

"az adott szám utolsó számjegyét elvetik" az egész osztási művelet:

b: = b div 10; 343 div 10 = 34;

a feltétel ellenőrzése: b = 0, 34 = 0, az állapot nem teljesül, akkor a ciklus folytatódik.

Az új szám utolsó számjegye elválik:

b mod 10 = 34 mod 10;

az új a1 szám, amely már 3-mal egyenlő, megszorozva 10-gyel és a következő számjegyet adják hozzá az eredményhez - 4:

a1: = a1 * 10 + b mod 10;

"a b szám utolsó számjegye eldobható":

b: = b div 10; 34 div 10 = 3;

a következő feltétel igazolódik: b = 0, 3 = 0; az állapot nem érvényesül, ezért folytatódik a ciklus.

A szám utolsó számjegye elválik:

b mod 10; 3 mod 10 = 3;

egy új szám alakul ki:

a1: = a1 * 10 + b mod 10; 34 * 10 + 3 = 343;

"a szám utolsó számjegyét elvetjük" és új számot kapunk:

b: = b div 10; 3 div 10 = 0;

a feltétel ellenőrzése: b = 0, 0 = 0; a feltétel teljesül, akkor a ciklus véget ér.

Most nyilvánvalóvá válik, hogy egy adott számra egy másik b változót adnak be, a ciklusban lévő értéke kezdetben nulla értékre változik, és az adott számot a változóban tárolja. és úgymond, a "dolgozó" változó kerül bevezetésre - b.

A számjegyek permutálásának ciklusának vége után az a változóban "elmentett" eredeti számot és a számjegyek permutációját és az a1 változónál "felhalmozódott" számot kaptuk.

Ha a = a1, akkor az a értéke megjelenik, mivel ez a szám egy palindrom.

Ezenkívül megfontolásra kerül az 1-gyel, azaz a következő természetes számmal történő értékek értéke, és a külső ciklus folytatódik. A számjegyek átrendeződnek, a számjegyek megváltoztatása után kapott új szám a1. összehasonlítjuk az eredeti a-val és így tovább.

A külső hurok véget ér, ha az a értéke egyenlővé válik az n intervallum jobb szélével.

m, n, a, b, a1. longint;

írjon ('Írja be a rés bal szélét'); readln (m);

írjon ('Adja meg a rés jobb szélét'); readln (n);

writeln ('A palindromok száma [', m, ';', n, ']');

writeln ('szám a permutáció számjegyek után', n1)

Szekvenciálisan az ismétlődő hurok a következőképpen ábrázolható (lásd a 21. ábrát):

2. A ciklus és a ciklus közötti különbségek - ismétlés

1. Az állítás, amely az időzónában van. amíg a feltétel teljesül (azaz igaz). Az ismétlődő hurokban lévő állítások sorrendje. amíg a feltétel teljesül (azaz hamis).

Ezért a ciklus hurokjában a hurok folytonossági állapotát használják, és az ismétlődő hurokban a hurok végének feltétele.

2. Az időzónában egy mondat megismétlődik (több operátort össze kell kapcsolni egy összetett operátorral a kezdő (vég) végekkel), és egy ismétlődő ciklusban több operátort is meg lehet ismételni kezelői zárójelek nélkül.

3. Az időzónában az állapotot először ellenőrizzük, majd az állapot értékétől függően az operátor vagy a szereplők csoportja végrehajtásra kerül, vagy nem a szó után.

A ciklus ismétlődő sorozata nyilatkozatok egyszer lefut, majd ezt követően a feltétel t, azaz a. E. A sorrend mindig legalább egyszer végrehajtódik, és while ciklus állítások alkotják a hurok testet nem lehet végrehajtani, még egyszer.

Keresse meg a legalacsonyabb természetes számot, amely a 131-es számú többszörös számjegyekkel egyenlő. Készíts egy programot.

3. Programok ciklusok használatával megismételve és közben. tennie.

Példa 3. Ha összeadjuk az összes számjegyet egy számot, majd - az összes számot talált, és az összeget meg kell ismételni többször is, végül kap egy számjegyű (ábra), az úgynevezett digitális gyökere egy adott számot. Például az 561 szám digitális gyökere 3 (5 + 6 + 1 = 12; 1 + 2 = 3).

Készítsen egy programot a szám numerikus gyökereinek megtalálásához.

A programozás fontossága

Nyilvánvaló, hogy a programban huroknak kell lennie, amely meghatározza a számjegyek összegét. Ezt a ciklust is végre kell hajtani, amíg a számjegyek összege megegyezik egy számjeggyel, azaz. 10-nél kevesebb lesz, de 0-nál nagyobb marad. Ehhez egy másik ciklust kell szerveznünk, amely kívül esik a cikluson, amelyik számolja a számjegyek összegét.

Egy finom jellemző. Minden alkalommal, amikor a belső összege számlálási ciklus szám, értéke ennek az összegnek kell rendelni egy változót, amely az eredeti szám, t. E. cseréjéhez számát, összegét, ellenőrizze a (nem az, hogy az összeg kevesebb, mint tíz), és továbbra is a ciklus egy új számot - az összeg, ha a feltétel nem teljesül. És a változó, amelyben a felhalmozott összeg kell minden alkalommal ne feledkezzen meg nulla.

Tehát, ha a beírt számot az n változóhoz rendeltük, és az s változó számjegyeinek összegét, akkor a számjegyek összegének kiszámítása után a változónak értéket kell kapnia (n: = s), ellenőrizni kell az állapotot (n <10), если оно еще не выполняется, тогда обнулить переменную s (s:= 0) и продолжить цикл подсчета суммы цифр.

Az összeg értékének ellenőrzésére szolgáló külső hurok az ismétlődő állításokkal kerül megszervezésre. amíg n <10, а внутренний по подсчету суммы цифр с помощью операторов while. do.

írjon ('Adjon meg egy természetes számot'); readln (n);

s: = s + n mod 10; n: = n div 10

writeln ("Digitális szám gyökere", a, "egyenlő", n)

1. Futtassa ezt a programot. Változtassa meg úgy, hogy 10 és 100 között megtalálja a számok digitális gyökereit.

2. Keressen egy három számjegyű számot, amely a természetes szám k pontos négyszöge, és így a számjegyek terméke k-1.

4. Különböző feladatok

1. példa. Hozzon létre egy programot az n szám összes osztójának meghatározására.

Amikor ilyen feladat merül fel, nagyon gyakran a diákok ilyen megoldást kínálnak.

Minden természetes számot meg kell próbálni, kezdve 1-től n-ig, és ha bármelyik közülük lesz az n számosztó, akkor a képernyőn megjelenik. Például, a 36. számú, hogy a vizsgálat az 1, 2, 3, 36, és válassza ki ezekből osztók 36. Dividers a következők: 1, 2, 3, 4, 6, 9, 12, 18 és 36.

Ez a módszer lehetséges. De ha a 36-as számú osztóelemeket alaposan megvizsgáljuk, akkor azt találjuk, hogy mindegyik 1-től 18-ig terjedő tartományba esik. a 36-as szám felénél, és csak az utolsó partíció a szám.

Igen, és az indokolás egyszerű logikája meggyõzi minket arról, hogy a választóvonalak pontosan ezen az intervallumon lesznek: 1-től 1-ig.

Ha elfogadjuk azt az elképzelést, hogy van egy osztó nagyobb, mint a fele, majd csak 2-tel szorozva, akkor nagyobb számot kapunk, mint az adott szám.

Tehát világossá válik, hogy egy szám minden osztója, kivéve önmagát, 1-es intervallumban van, ezért pontosan ellenőrizni kell a lehetséges osztók számát.

Ezért egy ilyen terv merül fel: egy ciklus megszervezése 1-től; ha az n számot ebből az intervallumból egy számmal osztjuk meg, akkor vonja le ezt az osztót a képernyőn; folytassa a ciklust; a szám megjelenítéséhez.

írjon ('Adjon meg egy egész számot'); readln (n);

writeln ("számkiosztó", n);

amíg d> n div 2;

De még akkor is, ha ezt a problémát megoldjuk, a munkáját segíti és segítheti a gép. Itt a matematika újra megmentődik.

Kiderül, hogy ahhoz, hogy megtaláljuk az n számosztóit, elegendő találni a meg nem haladó osztókat.

Az összes többi osztót az n szám megoszlásával kapjuk meg a talált osztók.

Például, ha n = 30, elegendő megtalálni az 1, 2, 3, 5 osztókat (a 30-as természetes négyzetgyöke egyenlő 5-gyel), és minden más osztót úgy kaphatunk,

W-dik a program előkészítése probléma van - nincs beépített funkciója a négyzetgyök kivonása az egész számok. Ezt az akadályt könnyen áthidalható, ha a hurok, hogy kiválassza a D osztó 1-ig d * d

Miért van szükség erre. Világossá válik, hogy a példa számát = 36. 6., a ciklus -, míg d d <6;

d = 1, d d = 1 1 = 1 <36 (истина ),

Ez a maradék a szétválási 36 MOD 1 = 0; Az 1. és adott elosztjuk 1-36, 1 = 36 div 36;

d = 2, d d = 2 2 = 4 <36 (истина ),

2, és adott elosztjuk 36 2 és 36 = 18 div 2;

d = 3, d d = 3 3 = 9 <36 (истина ),

kiadott 3, és a hányadosa 36 3, 36 div 3 = 12;

d = 4, d d = 4 4 = 16 <36 (истина ),

kiadott 4 és 36 div 4 = 9;

d = 5, d d = 5 5 = 25 <36 (истина ),

36 mod 5 <>0, semmi kimenet a képernyőn,

d = 6, d d = 6 6 = 36 <36 (ложь ), цикл заканчивается.

Csekkek 6 d = (d d = n), 6 6 = 36 (igaz) adják ki 6.

Ha a ciklus folytatódik, amíg a d d <= n, тогда при d = 6 на экран выдавалось бы - 6 и 36 div 6 = 6, т. е. две шестерки, что было бы ошибкой.

write ( 'Enter integer'); readln (n);

writeln ( 'számú elválasztó', N);

ha d * d = N, akkor levelet (d); writeln

Készítsen programot, amely megkeresi száma osztók és az összeget egy adott természetes szám.

2. példa. Keresse meg a legnagyobb közös osztója (GCD) két szám a és b.

A kérdés, hogy meghatározzuk a legnagyobb közös osztó két szám annyira részletes és gondosan írt a tankönyvek, hogy megmondja, valami új megfogalmazásában a GCD algoritmus nagyon nehéz megtalálni.

Ugyanakkor azt tapasztaltam, hogy a legtöbb meghatározott ellátások meghatározásának GCD segítségével euklideszi algoritmus, és nem a legjobb módja.

Úgy döntünk, egy másik megközelítés, hogy ezt a kérdést, nekem úgy tűnik, sokkal természetesebb.

Tehát, mondjuk, hogy nem tudjuk, hogy az euklideszi algoritmus, és kezdje az alapvető ismereteket a matematika és egyszerű logikai érvelés, hogy megtalálják a legnagyobb közös osztó, a számok, és hajtsa végre a programot.

Először egyértelműen meghatározzák a maguk számára, ami a legnagyobb közös osztója a két szám. Például a számok a 36 és 45, van három közös osztója 1, 3, 9. A legnagyobb közülük, és 9. Az GCD szám 36 és 45.

30 és 45 valamivel több közös osztója 1, 3, 5 és 15 15 a legnagyobb, így lnko (30, 45) = 15.

A legnagyobb közös osztó az a és b számok a legnagyobb szám az összes közös osztója a és b.

Akkor logikusan, van egy természetes gondolat, hogy megtalálják GCD következik.

Először. arról, hogy az egyik szám nem osztható csekket a másikra, ha megosztott, togdato amelyen a partíció a legnagyobb közös osztó. Például a számok 45 és 15, GCD a szám 15. Ha ezek közül egyik sem osztható egy másiknak, akkor felváltva minden természetes számokat 1-től a kisebb az a és b számok, és ellenőrizze, hogy melyik közülük vannak osztva két szám, az utolsó ezek közös osztók és legnagyobb lesz.

Az ilyen eljárás a számok a 36 és 45 fog kinézni:

elosztjuk a csekket b és b egy;

Azt találjuk, a többi a szétválás 1, 36 mod 1 = 0, 45 MOD 1 = 0, akkor 1 - közös osztó;

2, 36 mod 2 = 0, 45 mod 2 <>0, 2 nem egy közös nevező;

3, 36 mod 3 = 0 mod 3 = 45 0, 3 - közös osztó;

4, és így tovább, hogy a 36.

Az utolsó ilyen közös tényező lesz 9, és ez a legnagyobb közös osztója.

Ez könnyen elkészíthető, és a program az ilyen egyszerű algoritmus.

a, b, n, k, i. integer;

érzékenység, ügyesség, bátorság, elkötelezettség, a pozitív programozás. a szükséges háttérrel és hogy. izolálás és korlátozott hely, lebegő sötétben és a csend. mentes minden irritációk jelentett.

kapcsolatos kutatások programozás és a szervezeti hatékonyság. Ez csodálatos. programozási nyelv. Bizonyos módszerek tervezése és programozása. gyakori. Halálos csend. > Többször pár programozás telt el.

kapcsolatos kutatások programozás és a szervezeti hatékonyság. Ez csodálatos. programozási nyelv. Bizonyos módszerek tervezése és programozása. gyakori. Halálos csend. > Többször pár programozás telt el.

lesz az úgynevezett „Az eredmény egy NLP -. vaskos kifejezés, amely mögött hallgatag, ének-CIÓ, hangot, azt mondja, a csend disszonancia dallam, harmonikus, éles, tihni ..

Pszichoterápiás Központ „LAD” V.I.ELMANOVICH neurolingvisztikai programozás (kézikönyv kezdőknek) 1. RÉSZ. Modalitás (A). 1. Ha a hangerő 0, akkor a „hallgatni a csendet”. Ha a maximális hangerő, a „égnek.

Kapcsolódó cikkek