Ciklikus algoritmus ict pascal példa. Loop algoritmusok Loop típusok és hurok parancsok Pascalban

2. dia

Terv

Hurokfogalom a hurokmegállapításhoz, miközben a hurok ismétlődő ciklusreferenciák

3. dia

Irodalom

Kastornov A.F., Evstratova G.A. Pascal programozási nyelv: tankönyv az egyetemek számára. - Cherepovets: GOU VPO ChGU, 2010.- 117 p. - Irodalomjegyzék: 114. o. Elektronikus tankönyv a programozási nyelvről Pascal /http://pascal.guti.ru Terv

4. dia

Ciklus fogalma

A sok probléma megoldására szolgáló algoritmusok ciklikusak, amelyek során bizonyos műveletsorokat többször hajtanak végre az eredmény elérése érdekében. Például egy tudásvezérlő program megjelenít egy kérdést, elfogadja a választ, egy pontot ad hozzá a válaszhoz az összes ponthoz, majd megismétli ezeket a műveleteket, amíg az alany nem válaszol az összes kérdésre. Vagy például, hogy megtalálja a kívánt vezetéknevet a listában, ellenőrizze, hogy a lista első vezetékneve egybeesik -e a kívánt névvel, majd a második, harmadik stb. amíg meg nem találja a szükséges vezetéknevet vagy el nem éri a lista végét.

5. dia

Az algoritmust, amelyben többszörösen végrehajtott operátorok vannak, ciklikusnak nevezzük. Az ismétlődő állítások csoportját hurktestnek nevezzük. A Pascal -ban a hurkok a For, while és Repeat ciklus utasításokkal valósíthatók meg. Terv

6. dia

Hurok kezelőnek

A For ciklus operátort akkor használjuk, ha a ciklus törzsét többször kell végrehajtani, és az ismétlések száma előre ismert.

7. dia

A For ciklus operátor írásának 1. formája

A For utasítás első formája általában így néz ki: ForCounter: = Start_valuetoEnd_valuedoOperator; Hol a For, to, do szolgálati szavak. A számláló soros típusú (általában egész típusú) változó, amely meghatározza, hogy a ciklus hányszor ismétlődjön. Az ismétlések számát a következő képlettel kell kiszámítani: End_value - Start_value + 1. A végértéknek nagyobbnak vagy egyenlőnek kell lennie a kezdőértéknél.

8. dia

Ha a ciklus törzse több utasításból áll, akkor a For utasítás első írási formája így néz ki: ForCount: = Start_valuetoEnd_valuedo Begin (a ciklus törzse) Vége;

9. dia

Tekintsük a For ciklus algoritmusát az első jelölési formában. A számlálóhoz Start_érték tartozik. A feltétel ellenőrizve van: A számláló értéke nagyobb, mint End_value? Ha a feltétel igaz (Igen), a ciklus véget ér. Ha a feltétel hamis (Nem), akkor a ciklus törzsét végrehajtja, majd a számláló értékét eggyel növeli, és a feltételt ismét ellenőrzi, azaz 2. tétel.

10. dia

A For ciklus operátor írásának 2. formája

A For utasítás második formája általában így néz ki: Számlálóhoz: = Start_value down to End_valuedo Statement; Hol: Azért, lefelé, a szolgálat szavakért. A számláló soros típusú (általában egész típusú) változó, amely meghatározza, hogy a ciklus hányszor ismétlődjön. Az ismétlések számát a következő képlettel kell kiszámítani: Start_value - End_value + 1. A Start_value értéknek nagyobbnak vagy egyenlőnek kell lennie a End_value értéknél.

11. dia

Ha a ciklus törzse több utasításból áll, akkor a For utasítás 2. írási formája így néz ki: ForCount: = Start_value downtoEnd_valuedo Begin // A ciklus törzse End;

12. dia

Tekintsük a For ciklus algoritmusát a második jelölési formában: A számlálóhoz a Start_value van hozzárendelve. A feltétel ellenőrizve van: A számláló értéke kisebb, mint End_value? Ha a feltétel igaz (Igen), a ciklus véget ér. Ha a feltétel hamis (Nem), akkor a ciklus törzsét hajtjuk végre, majd a számláló értékét eggyel csökkentjük, és a feltételt ismét ellenőrizzük, azaz 2. tétel.

13. dia

Hurok kezelőnek

programEx1; var i, n: egész szám; (i - számláló, n - szükséges számú csillag) s: karakterlánc; (s - generált csillagsorozat) begin Writeln ("Írja be a csillagok számát"); (csillagok számát kell megadni) Readln (n); (a felhasználó megadja a csillagok számát n) s: = ""; (A csillagok karakterláncának kialakulása üres karakterlánccal kezdődik.) (A karakterláncot a For ciklus alkotja. A számláló kezdőértéke 1, a végérték pedig a szükséges számú csillag n.) Fori: = 1 - n do s : = s + "*"; (a ciklus minden lépésében egy csillag van ragasztva a sorra) Writeln (s); (a sor kimenet) Readln; vége. Terv példa: A program csillagokat generál. A csillagok száma soronként a felhasználó által definiálható.

14. dia

Míg Loop

A while ciklus akkor használatos, ha a ciklus törzsének ismétléseinek száma a programfejlesztés során ismeretlen, és csak a program futása közben határozható meg. Általánosságban elmondható, hogy a while utasítás a következőképpen íródott: míg a feltétel doOperator; Hol, hol vannak szolgálati szavak. A feltétel egy logikai típusú kifejezés, amely meghatározza a ciklus folytatását.

15. dia

Ha a ciklus törzse több utasításból áll, akkor a while ciklus a következőképpen íródik: WhileCondition do Begin // Loop body End;

16. dia

Tekintsük a while ciklus algoritmusát: A feltétel ellenőrizve van. Ha a feltétel igaz, akkor a ciklus törzsét hajtjuk végre. Ezután ismét ellenőrzik az állapotot. Ha a feltétel hamis, akkor a ciklus véget ér.

17. dia

Így, míg a ciklus előfeltétellel vagy "Bye" ciklus (a ciklus törzsét addig hajtjuk végre, amíg a feltétel igaz). Ha a ciklus első lépése során a feltétel hamisnak bizonyul, akkor a hurok törzse még egyszer sem lesz végrehajtva. Ha a feltétel soha nem lesz hamis, akkor a ciklus a végtelenségig megismétlődik, azaz hurok fog bekövetkezni.

18. dia

Ex2 program; varAccount: Valódi; (számlaméret) Hónap: Egész szám; (a számlanyitás óta eltelt hónapok száma) begin Számla: = 1000; (1000 rubelt helyeztek el a számlán) Hónap: = 0; (most nyitott fiók) whileAccount

19. dia

Ismételje meg a hurkot

Az Ismétlés ciklus, a Míg ciklushoz hasonlóan, akkor használatos a programban, amikor a ciklus törzsét többször kell végrehajtani, de az ismétlések száma nem ismert előre. Általában az Ismétlés ciklus a következőképpen íródik: Ismétlés // A ciklus feltétel törzse; Hol Ismétlés, Amíg a szolgálati szavak. A feltétel egy logikai kifejezés, amely meghatározza a ciklus végét.

20. dia

Tekintsük az Ismétlés ciklus algoritmusát: A hurok törzse az Ismétlés és a Fenntartott szavak között végrehajtódik. Az állapot ellenőrizve van. Ha a feltétel igaz, a ciklus véget ér. Ha a feltétel hamis, a hurok törzse újra végrehajtásra kerül.

21. dia

Így a Repet egy ciklus, amely utólagos feltétellel vagy "Mielőtt" ciklussal rendelkezik (a ciklus törzsét addig hajtjuk végre, amíg a feltétel nem igaz). Ezért a hurok törzsét legalább egyszer végrehajtják. Ha a feltétel soha nem válik valóra, akkor a ciklus végtelen lesz.

22. dia

Ex3 program; var Idő: egész szám; (osztódási idő) Sejtek: egész szám; (sejtek száma) kezdődik Idő: = 0; (a cella még nem kezdte el az osztást) Sejtek: = 1; (egy cella) Ismétlési idő: = Idő + 3; (a következő három óra után ) Sejtek: = Sejtek * 2; (a sejtek száma megduplázódott) Amíg a sejtek> 24; (amíg a "cellák száma több mint 24" feltétel nem igaz) Writeln (Idő); (az eredmény kimenete) Readln; vége. Tervezési példa: Egysejtes amőba 3 óránként 2 sejtre oszlik. Határozza meg, hogy hány óra múlva a cellák száma meghaladja a 24 -et.

Az összes dia megtekintése

1. dia

Végrehajtó ROBOT Ciklikus algoritmus
Előadás az informatika órán. 9. évfolyam Téma: Kontroll és algoritmusok

2. dia

FOR i: = 1 TO N DO BEGIN action1; action2; VÉGE;
FOR i: = 1 TO N DO action1; action2;
1

3. dia

2
MIKOR (ÁLLAPOTI IGAZ) KEZDJE a cselekvést1; action2; VÉGE;
MIKOR (ÁLLAPOTI IGAZ) Végezzen akciót1; action2;

4. dia

3
17 sejt
12 sejt

5. dia

4
N1 program; var i: egész szám; Kezdje az i -vel: = 1-12 do RobotForw; RobotLeft; I esetén: = 1 - 17 RobotForw; RobotLeft; I esetén: = 1-12 do RobotForw; RobotLeft; I esetén: = 1 - 17 RobotForw; RobotLeft; vége.
Lefelé haladva
Jobbra haladva
Fel menni
Balra haladva
Ez és a következő parancsok balra fordítják a robotot a sarokban.

6. dia

5
Ha falat tesz, a robot beleütközik, és a program leáll.

7. dia

6
N2 program; var i: egész szám; Kezdje míg a FreeForw do RobotForw; RobotLeft; Míg a FreeForw nem RobotForw; RobotLeft; Míg a FreeForw nem RobotForw; RobotLeft; Míg a FreeForw nem RobotForw; RobotLeft; vége.
Amíg az eleje szabad, mozgassa előre a robotot.

8. dia

9. dia

8
N3 program; var i: egész szám; Kezdje az i -vel: = 1–4 kezdődik, míg a FreeForw nem RobotForw; RobotLeft; vége; vége.
Négyszer lépjen előre, amíg akadály nem lesz, és forduljon balra

10. dia

9
Négyszer lépjen előre, amíg akadály nem lesz, és forduljon balra

11. dia

10
Önálló tanulási feladatok
1. feladat A bútor bal falánál akadályt helyeznek el tetszőleges helyen. A robotnak el kell érnie az 1. pontot, és vissza kell térnie eredeti állapotába. Megjegyzés: használjon három sorozatban csatlakoztatott ciklust MÉG
1
1

12. dia

11
2. feladat. A bútor bal falához egy tetszőleges helyre terhelést helyeznek. A robotnak el kell érnie a rakományt, el kell vinnie a raktárba, és vissza kell térnie eredeti állapotába. Megjegyzés: használjon két sorozatban csatlakoztatott ciklust MÉG

13. dia

12
3. feladat A helyzet bal falánál öt súlyt helyezünk tetszőleges helyre. A robotnak minden árut a raktárba kell szállítania. Megjegyzés: használjon két egymást követő hurkot, DE egy ciklusba beágyazva egy paraméterrel.

14. dia

13
1. példa A robot a folyosó bejárata előtt áll. Meg kell jelölni az összes cellát a folyosón belül, és vissza kell menni

15. dia

14
N7 program; Kezdje a RobotForw; Bár nem a FreeLeft kezdje Select; RobotForw; vége; RobotBack; Bár nem a FreeLeft, akkor a RobotBack; vége.
Lépés előre, hogy belépjen az alagútba
Míg a bal oldalon van egy fal, jelölje meg a cellát, és tegyen egy lépést előre
Visszatérünk az alagútba
Amíg a fal a bal oldalon van, egy lépéssel hátrébb lépünk

16. dia

15
2. példa Két fal van ferdén beállítva. A falak hossza tetszőleges. A robot a falak közötti sarokban van (lásd a képet). Olyan programot kell készíteni, amelyben a robot megjelöli az összes cellát a fal belső oldalán. A robot végső helyzete tetszőleges.

17. dia

16
N8 program; Kezdje Míg nem a FreeRight kezdje Select; RobotForw; vége; Míg a FreeBack nem RobotBack; RobotLeft; Bár nem a FreeLeft kezdje Select; RobotForw; vége; vége.
Amíg a jog nem szabad, jelölje be a dobozt, és tegyen egy lépést előre.
Vissza a robotot
Balra fordulunk
Amíg a bal nem szabad, jelölje be a dobozt, és tegyen egy lépést előre.

18. dia

19. dia

18
3. példa A bútorokat egy fal borítja, amely két részre osztja a bútorokat. A falban ketrec nagyságú átjáró található tetszőleges helyen. Olyan programot kell készíteni, amelyben a robot megtalálja ezt az átjárót, és a környezet egy másik részére költözik.

20. dia

19
N9 program; Kezdje RobotLeft; Míg a FreeForw nem RobotForw; RobotRight; A RobotForw nem FreeLeft; RobotLeft; RobotForw; RobotForw; vége.
A robotot a fal felé fordítjuk.
Addig haladunk, amíg a falnak nem ütközünk
A robot elfordítása a fal mentén
Előre haladva, amíg a fal véget nem ér
A robotot a folyosó felé fordítjuk
Két lépést teszünk előre, átmegyünk a helyzet másik felébe

Az egyes diák bemutatásának leírása:

1 dia

Dia leírása:

Az óra témája: „Ciklikus szerkezetű algoritmusok. Programozási ciklusok a Pascal "Fegyelem" informatikában "

2 dia

Dia leírása:

A téma alapfogalmai Ebben a leckében a következő fogalmakat tanulmányozzák: a ciklus fogalma; a ciklikus algoritmusok változatai (előfeltétellel ellátott ciklus, utólagos feltétellel rendelkező ciklus, paraméterrel rendelkező hurok); ciklikus algoritmusok blokkdiagramjai; hurok operátorok ábrázolása a Pascal programozási nyelven; ciklusok használata a problémák megoldásában.

3 dia

Dia leírása:

Cikluskoncepció Sok probléma megoldásakor ugyanazt a műveletsort többször is végrehajtják. Például a felvételkor oktatási intézmény a tanuló leteszi a vizsgákat, míg a megszerzett pontokat kiszámítja (S változó; kezdeti értéke S: = 0;). Minden letett vizsgáért N osztályzatot kap. Ha az osztályzat nagyobb, mint "2", akkor S: = S + N; ellenkező esetben fejezze be a számításokat (kilépés a ciklusból).

4 dia

Dia leírása:

Looping A loop egy olyan utasítássorozat, amely többször is végrehajtható. A ciklusos algoritmus olyan algoritmus, amely ugyanazon művelet többszörös ismétlését biztosítja az új adatokon Háromféle hurokoperátor létezik: hurok előfeltétellel; hurkok utólagos feltétellel; ciklusok számlálóval.

5 dia

Dia leírása:

Hurok előfeltétellel. A WHILE WHILE típusú ciklus A hurok törzsének végrehajtására utasít mindaddig, amíg a szó után írt feltétel teljesül.

6 dia

Dia leírása:

Hurok előfeltétellel. Loop of WHILE WHILE A típusú hurok előfeltétele akkor használatos, ha a hurkotest ismétléseinek száma nem ismert előre, de a feltétel teljesülésétől függ. Ha a feltétel igaz, akkor a ciklus törzsét végrehajtjuk, majd a feltételt újra ellenőrizzük, és így tovább, amíg a feltétel hamis lesz.

7 dia

Dia leírása:

Loop operátor előfeltétellel (WHILE loop) Ennek a leggyakrabban használt ismétlési operátornak általános formája van Pascal -ban (formátum): WHILE<условие>DO<оператор>; itt WHILE, DO - fenntartott szavak (angolból: while - for now, do - to do);<условие>- logikai típusú kifejezés;<оператор>- tetszőleges (esetleg összetett) operátor.

8 dia

Dia leírása:

Hurok utólagos feltétellel. DO típusú hurok. Egy ciklus utasítás végrehajtásának sorrendje utólagos feltétellel. Az 1-N utasítások végrehajtását addig ismételjük, amíg a feltétel valóra nem válik. Ebben a ciklusban a feltétel csak a ciklus törzsének végrehajtása után kerül ellenőrzésre. Ebből következik, hogy a törzs mindig legalább egyszer végrehajtásra kerül egy ciklus tömbvázlata utólagos feltétellel

9 dia

Dia leírása:

Hurok utólagos feltétellel. Típusú ciklus FONTOS ELŐTT! Egy utólagos feltételű ciklust legalább egyszer végrehajtanak, függetlenül attól, hogy a feltétel teljesül -e. Az utólagos feltétellel rendelkező ciklus kétségtelen kényelme, hogy több operátort írhatunk bele anélkül, hogy összetett operátort használnánk. Az állapotellenőrzés a hurok teste után található. A szolgálati szó MÁR

10 dia

Dia leírása:

Kezelői ciklus utólagos feltétellel (DO típusú hurok - UNTIL) A hurokkezelő általános nézete (formátuma) utólagos feltétellel a Pascal -ban a következő: Ismétlés<Оператор 1>; <Оператор 2>; … <Оператор N>; Amíg<условие>;

11 dia

Dia leírása:

Példa hurok operátor használatára utólagos feltétellel Az n = 1, 2, 3, 4, 5, 6, 7, 8, 9 és az a = 10, 20, 30 változók értékeinek páros megjelenítésére , 40, 50, 60, 70, 80, 90 ez az operátor így fog kinézni: n: = 0; ismétlés n: = n + 1; a: = 10 * n; írni (n: 2, ’’, a: 3); amíg n> = 9;

12 dia

Dia leírása:

Loop paraméterrel. FOR típusú hurok Egy paraméterrel ellátott hurkot akkor használunk, ha meghatározott számú cikluslépést kell végrehajtani. Meg kell jegyezni, hogy a FORC ciklus Pascalban nem túl rugalmas (ellentétben például az ilyen típusú hurokkal a C nyelvben). Mivel Pascalban a hurokparaméter (vagy számláló) eggyel egyenlő mértékben változik. Így amikor egy töredékes lépést kell végrehajtania, akkor WHILE ciklusot kell használnia. A FOR ciklusnak két típusa van: a számláló (vagy paraméter) növelése és csökkentése. Egy ciklus tömbvázlata paraméterrel (FOR hurok)

13 dia

Dia leírása:

14 dia

Dia leírása:

Loop operátor paraméterrel. FOR Loop A ciklus operátor általános nézete (formátuma) a for paraméterrel<счетчик> := <начальное значение>nak nek<конечное значение>kezdd el<Операторы>vége; számára<счетчик> := <начальное значение>le<начальное значение>kezdd el<Операторы>vége; a számláló (paraméter) értékeinek növekedésével a számláló (paraméter) értékeinek csökkenésével

15 dia

Dia leírása:

Loop operátor paraméterrel. FOR típusú hurok A FOR - FOR hurkot megvalósító operátor akkor használatos, ha szükség van egy programrészlet meghatározott számú ismétlésére FOR<переменная цикла>: = <начальное значение>AZUTÁN<конечное значение>DO<оператор>; Itt: FOR, TO, DO - fenntartott szavak (angolul: for, to, execute);<счетчик (параметр) цикла> - típusú változó INTEGER, amely ettől változik<начального значения>, eggyel növekszik a ciklus minden lépésének végén;<оператор>- bármely (gyakrabban összetett) operátor.

16 dia

Dia leírása:

Loop operátor paraméterrel. FOR Loop A FOR utasítás egy fejlécből és egy cikktörzsből áll. A ciklus törzsében található összetett utasítást a kezdő és a záró zárójelbe kell tenni. · Az "I" -t általában számlálóazonosítóként használják. · A számláló változónak ordinális típusúnak kell lennie. Például egész szám típusa: bájt, egész szám. · A ciklusparaméter kezdő és befejező értéke nem módosítható a ciklus futása közben. · A FOR operátor rögzített ismétlésszámú, előre ismert vagy a program végrehajtása során meghatározott hurkok rendszerezésére szolgál.

17 dia

Dia leírása:

A hurkok használata a problémamegoldásban A fent leírt hurkok mindegyike használható ugyanazon Pascal -feladatok programozására egy ciklikus algoritmussal.

18 dia

Dia leírása:

1. feladat: Nyissa meg a PascalABC.NET programot (integrált fejlesztői környezet a Pascal programozási nyelvű programokhoz) Mentse el a programot egy mappába a saját nevével a rendszerben munka mappa PABCWork.NET \ Saját_név \ Cikl_1.pas Mentés másként ...

19 dia

Dia leírása:

1. feladatszám: A YET ciklus segítségével (előfeltétellel) állítson össze és hibakeresjen egy programot, amely kiszámítja az összes természetes szám négyzetének összegét 1 -től 100 -ig. KEZDETI ADATOK: A: egész; EREDMÉNY - összeg: S: Longint; Ex1 program; Változat: egész; S: Longint; (Hosszú egész szám) A kezdet: = 1; S: = 0; (az S változó az összeget halmozza fel) Míg A<=100 Do { Начало цикла – проверка условия } Begin S:=S+A*A; A:=A+1 End; Writeln(‘Вывод результата S= ’ ,S) End. Сохранить программу в папке с Вашим именем в системной рабочей папке PABCWork.NET \ Ваше_имя\Cikl_1.pas

20 dia

Dia leírása:

FELADAT 2. Hibakeresés a ciklikus struktúra programjával Pascal nyelven a PascalABC.NET Program abc -ban; var x, y: egész; kezdje x: = 2; míg x<= 10 do begin Y:=x*x; writeln(‘вывод х: ’, x, ‘вывод у: ’, y); x:= x+2; end; end. Применить оператор цикла с предусловием для вычисления значения функции y=x2, при значениях x 2, 4, 6, 8, 10. Сохранить программу в папке с Вашим именем в системной рабочей папке PABCWork.NET \ Ваше_имя\Cikl_2.pas























Vissza előre

Figyelem! A dia előnézetek csak tájékoztató jellegűek, és nem feltétlenül képviselik az összes bemutatási lehetőséget. Ha érdekli ez a munka, töltse le a teljes verziót.

Cél: ciklusok algoritmikus felépítésének tanulmányozása, modellek és algoritmusok készítése a gyakorlati problémák megoldására.

Az órák alatt

I. A tudás frissítése

  • Tekintse át az algoritmus fogalmát, az algoritmikus nyelv alapkonstrukcióit.
  • Legyen képes matematikai modell, algoritmus és tömbvázlat kidolgozására a probléma megoldásához.
  • Megérti a programozási nyelveket és azok célját.
  • Legyen képes programozási környezetben dolgozni.
  • Ismerje a program felépítését.
  • Tudjon számszerű és szimbolikus értékeket tartalmazó kifejezéseket írni.
  • Ismerje a kezelők felépítését és munkájuk sajátosságait.
  • Legyen képes operátorokat használni, ha lineáris és elágazó szerkezetű programokat ír.
  • Hibakereső programok létrehozása és futtatása számítógépen.

II. Elméleti lecke anyaga

A legtöbb gyakorlati feladat megköveteli ugyanazon műveletek ismételt megismétlését, azaz egy vagy több operátor ismételt használatát. (Bemutatás)

Tegyük fel, hogy számsort szeretne megadni és feldolgozni. Ha csak öt szám van, létrehozhat egy lineáris algoritmust. Ha ezren vannak, lehetséges egy lineáris algoritmus írása, de nagyon fárasztó és irracionális. Ha a számok száma ismeretlen az algoritmus kifejlesztésekor, akkor a lineáris algoritmus alapvetően lehetetlen.

Egy másik példa. Ahhoz, hogy megtalálja a listán szereplő személy vezetéknevét, ellenőriznie kell a lista első vezetéknevét, majd a második, harmadik stb. amíg meg nem találja a kívántat vagy eléri a lista végét. E nehézségek leküzdésére hurkokat használhat.

A ciklus egy algoritmus (program) többször végrehajtott szakasza. Ennek megfelelően a ciklikus algoritmus ciklusokat tartalmazó algoritmus.

Kétféle ciklus létezik: ismert számú ismétléssel és ismeretlen számú ismétléssel. Ebben az esetben mindkét esetben az algoritmusfejlesztés szakaszában az ismétlések számát értjük.

Háromféle ciklikus szerkezet létezik:

  • Hurok előfeltétellel;
  • Hurok utólagos feltétellel;
  • Loop paraméterrel;

Ellenkező esetben ezeket a struktúrákat ciklusoknak nevezik, mint például "Bye", "Before", "For".

Az algoritmikus struktúrák adatrögzítésének grafikus formája:

Hurok előfeltétellel (egyébként hurok míg) formája:

állapot - boolean típusú kifejezés.

A ciklus még akkor sem hajtható végre, ha a logikai kifejezés értéke azonnal hamisnak bizonyul.

A kezdés és a befejezés közötti parancsok sorozatát hajtják végre addig míg a feltétel igaz .

For hogy befejezze a ciklust, szükséges, hogy a BEGIN és az END közötti utasítássorozat megváltoztassa a benne szereplő változók értékét állapot.

Hurok utólagos feltétellel (egyébként hurok előtt) formája:

állapot - boolean típusú kifejezés.

Jegyzet:

Az utasítások sorrendje közöttismétlés ésamíg mindig megtörténik legalább egyszer;

Annak érdekében, hogy a ciklus befejeződjön, szükség van arra, hogy az állítások sorrendje között legyenismétlés ésamíg megváltoztatta a feltétel kifejezésben szereplő változók értékeit.

Az ismétlési utasítást, mint a while utasítást, akkor használják a programban, ha szükség van néhány ismétlődő számítás elvégzésére (ciklus), de az ismétlések száma nem ismert előre, és maga a számítás menete határozza meg.

Loop paraméterrel (egyébként hurok mert)úgy néz ki, mint a:

i - ciklusparaméter;
a a ciklus kezdeti értéke;
b - a ciklus végértéke;
h - a paraméter megváltoztatásának lépése.

Ennek a ciklusnak a szerkezetét másképp nevezik ciklus i alkalommal.

Ezt a parancsot a következőképpen hajtják végre: az i paraméterhez az a kezdeti értéket rendelik hozzá, összehasonlítva a b végleges értékkel, és ha kisebb vagy egyenlő a b végleges értékkel, akkor egy sor parancsot hajtanak végre. A paraméterhez hozzá van rendelve az előző értéke, növelve az értékkel h- a paraméter megváltoztatásának lépése, és ismét összehasonlításra kerül a b végső értékkel.

A Pascal programozási nyelvben a paraméter megváltoztatásának lépése egy vagy mínusz egy lehet.

Ha csak egy kezelő van a kezdet és a vég között, akkor a kezelői zárójelek elhagyhatók. Ez a szabály működik "Bye" és "For" ciklus esetén.

Tekintsünk egy példát a problémák megoldására ezen struktúrák használatával

Példa.

Számítsa ki az 1 -től 5 -ig terjedő számok szorzatát különböző hurokbeállításokkal

Matematikai modell:

P = 1 2 3 4 5 = 120

Állítsunk össze egy algoritmust folyamatábra formájában.

Az algoritmus helyességének ellenőrzéséhez töltsük ki a nyomkövetési táblázatot.

Lépés Művelet R én Állapot ellenőrzés
1 P: = 1 1
2 i: = 1; 1 1
3 én<=5
P: = P * I
i: = i + 1
1 1 1<=5, да (истина)
4 én<=5
P: = P * I
i: = i + 1
2 2 2<=5, да (истина)
5 én<=5
P: = P * I
i: = i + 1
6 3 3<=5, да (истина)
6 én<=5
P: = P * I
i: = i + 1
24 4 4<=5, да (истина)
7 én<=5
P: = P * I
i: = i + 1
120 5 5<=5, да (истина)
8 én<=5
P: = P * I
i: = i + 1
6<=5, нет (ложь)

A feltétel ellenőrzése több lépésben történik: a feltétel ellenőrzése és parancsok végrehajtása az egyik ágon. Ezért a nyomkövetési tábla nem az algoritmus utasításait rögzíti, hanem a számítógép által minden lépésben végrehajtott egyedi műveleteket.

Első lépés: P az első értéket kapja.

Második lépés: i az első értéket kapja.

Harmadik lépés: ha i egyenlő eggyel, akkor ellenőrizzük, hogy az egyik feltétel kisebb -e vagy egyenlő -e öt, igen, a feltétel igaz, akkor P -nek hozzárendeljük az egy értéket megszorozva eggyel, akkor kettő lesz. Én: egy plusz egy kettő.

Negyedik lépés: ha i egyenlő kettővel, akkor ellenőrizzük, hogy a kettes feltétel kisebb vagy egyenlő, mint öt, igen, a feltétel igaz, így P -hez a 2 értéket kell megszorozni eggyel, akkor 2 lesz. I esetén: kettő plusz egy, három lesz.

Ötödik lépés: ha i egyenlő hárommal, akkor ellenőrizzük, hogy a három feltétel kisebb vagy egyenlő, mint öt, igen, a feltétel igaz, ami azt jelenti, hogy P -nek kétszer háromszor van hozzárendelve értéke, ez hat lesz. Én: három plusz egy négy.

Hatodik lépés: ha i egyenlő négy, akkor ellenőrizzük, hogy a négy feltétel kisebb vagy egyenlő, mint öt, igen, a feltétel igaz, ami azt jelenti, hogy P-hez a hatos értéket négyszer szorozzuk, ez huszonnégy lesz. Én: négy plusz egy öt.

Hetedik lépés: ha i egyenlő öt, akkor ellenőrizzük, hogy az öt feltétel kisebb vagy egyenlő, mint öt, igen, a feltétel igaz, akkor P-nek hozzárendeljük a huszonnégy értéket ötször szorozva, ez százhúsz lesz. Én: öt plusz egy hat.

Nyolcadik lépés: ha i hat, akkor ellenőrizzük, hogy a hatos feltétel kisebb -e vagy egyenlő -e öt, nem, a feltétel hamis, akkor kilépünk a ciklusból, és ennek eredményeként megkapjuk az utolsó százhúsz értéket.

Program Pr1;
Vari: egész szám;
Kezdődik
P: = 1;
i: = 1;
Miközben én<=5 do
kezdődik
P: = P * i;
i: = i + 1;
vége;
Írás ('P =', P);
vége.

Egy utólagos feltételű ciklushoz építsünk blokkdiagramot és nyomkövetési táblát. (16. dia)

Ennek eredményeként a hetedik lépésnél százhúsz egyenlő utolsó értéket kapunk

Egy paraméterrel rendelkező hurokhoz pedig blokkdiagramot és nyomkövetési táblázatot készítünk. (17. dia)

Ennek eredményeként a hatodik lépésnél megkapjuk az utolsó százhúsz egyenlő értéket

Feladat:

1 és 5 közötti számok megjelenítése:

  1. közvetlen megrendelés;
  2. fordított sorrendben.

Matematikai modell:

  1. 1 2 3 4 5;
  2. 5 4 3 2 1.

A folyamatábra és a probléma megoldására szolgáló program az előre és a fordított sorrendben szereplő számokra vonatkozik.

(21. dia)

Írjuk fel a mérlegelt algoritmusokat a Pascal programozási nyelvre.

(22. dia)

III. Lecke összefoglaló

És így a következő kérdéseket néztük meg:

  1. Algoritmikus szerkezetciklus;
  2. Az algoritmikus struktúrák típusai:
    1. Hurok előfeltétellel;
    2. Hurok utólagos feltétellel;
    3. Loop paraméterrel;
  3. Megfontolt módszerek ezen struktúrák írására;
  4. Példákat elemeztünk a problémák megoldására ezen struktúrák használatával.

Ciklikus algoritmusok
Ciklikus algoritmusok
A ciklusok típusai és a ciklikus
Pascal parancsok

A ciklus többszörös
sorozat ismétlése
akció
Az algoritmus ismétlődő része
a CIKLUS TESTÉNEK hívják
A ciklusok típusai
Adott számmal
ismétlések
Végrehajtási feltétel
ciklus
A feltétellel
Kilépési feltétel
ciklus

Ciklus típusok (tartalom)
Hurok előfeltétellel
Gyakorlat
Hurok utólagos feltétellel
Gyakorlat
Loop paraméterekkel
Gyakorlat
Összetett problémák megoldása

Hurok előfeltétellel

Gyakorlat

állapot és a végrehajtandó művelet
az állapot ellenőrzése után használja a hurkot az előfeltételben.


A hurktest minden végrehajtása előtt ellenőrzést hajtanak végre
feltételek mellett, ha az eredmény "igaz", akkor a ciklus törzsét hajtjuk végre
még egyszer, ha hamis, akkor a ciklus kilép.
A tömbvázlaton
Ciklus kezdete
Nem
Állapot
IGEN
Hurok test
A ciklus vége
Pascalban
Míg<условие>tedd
kezdődik
<тело цикла>
vége;

Hurok utólagos feltétellel

Gyakorlat
Ha az ismétlések száma nem ismert előre, de csak
állapot, és a korábban elvégzendő művelet
az állapotellenőrzések utólagos feltétel ciklusokat használnak.
Feltételként egy logikai kifejezést használnak, a testet
hurok - egyszerű vagy összetett operátor.
A hurktest minden egyes végrehajtása után ellenőrzést hajtanak végre
feltételek mellett, ha az eredmény "hamis", akkor a hurok törzse végrehajtásra kerül
ismét, ha igaz, akkor a ciklus kilép.
A tömbvázlaton
Pascalban
Ismétlés
Hurok test
<тело цикла>
Igen
Nem
Állapot
Amíg<условие>;

Loop paraméterrel

Gyakorlat
Hurok paraméterrel
Azokban az esetekben, amikor az ismétlések száma előre ismert
a ciklus a paraméterben kerül alkalmazásra.
Az ismétlések számát meghatározó változót hívják meg
ciklusparaméter vagy vezérlőváltozó.
A hurktest minden egyes végrehajtása után a vezérlés
a változó növekszik vagy csökken, a hurok
addig hajtjuk végre, amíg az egyiket sem haladja meg
kevesebb lesz a korlátozás.
A tömbvázlaton
Pascalban
X esetén: = A -tól B -ig
X: = A, B, C
Hurok test
X - szabályozási változó (ciklusparaméter)
A - X kezdeti értéke, B - végső X
С - az X megváltoztatásának lépése
Kezdődik
<тело цикла>
Vége;
Lépésként használhatja
csak:
"Címzett" = 1;
"Lefelé" = -1

Példa egy feladatra hurokkal, előfeltétellel
Elmélet

Verbális algoritmus:
Szorozzuk meg az X számot kezdetben 1 -gyel
a megadott számú alkalommal (N) 3 -mal.
Rajt
Program Lépés;
Var
H, B, X: egész szám;
Kezdődik
Writeln („Fok?”);
Readln (H);
X: = 1;
B: = 1;
Míg B.<=H do
Kezdődik
X: = X * 3;
B: = B + 1;
Vége;
Writeln (‘Eredmény’, X);
Vége.
Pascal
H
Meghatározott fokú bemenet
X: = 1
Kezdeti értékek
B: = 1
Nem
"B" fokmérő
B≤H
Igen
X: = X * 3
Szorzás 3 -mal
B = B + 1
Számláló növelése
NS
Az eredmény következtetése
jelentése
vége
Blokk diagramm
Magyarázatok

Példa feladat egy ciklus használatával utólagos feltétellel
Elmélet
PROBLÉMA: Emelje a 3 -as számot egy adott hatványra
Verbális algoritmus:

Program Lépés;
Var
H, B, X: egész szám;
Kezdődik
Writeln („Fok?”);
Readln (H);
X: = 1;
B: = 0;
Ismétlés
X: = X * 3;
B: = B + 1;
Nem
Amíg B> = H;
Writeln (‘Eredmény’, X);
Vége.
Rajt
H
Meghatározott fokú bemenet
X: = 1
Kezdeti értékek
B: = 0
Szorzás 3 -mal
X: = X * 3
Számláló növelése
B = B + 1
Igen
B> = H
"B" fokmérő
NS
Az eredmény következtetése
jelentése
vége
Pascal
Blokk diagramm
Magyarázatok

Példa feladat egy ciklus használatával egy paraméterrel
Elmélet
PROBLÉMA: Emelje a 3 -as számot egy adott hatványra
Verbális algoritmus:
Szorozzuk meg az X számot, amely kezdetben egyenlő 1 -gyel egy adott számú alkalommal (H) 3 -mal.
Program Lépés;
Var
H, B, X: egész szám;
Kezdődik
Writeln („Fok?”);
Readln (H);
X: = 1;
B esetén: = 1 -től H -ig
Kezdődik
X: = X * 3;
Vége;
Writeln (‘Eredmény’, X);
Vége.
Pascal
Rajt
H
X: = 1
B: = 1, H, 1
X: = X * 3
NS
vége
Blokk diagramm
Meghatározott fokú bemenet
Kezdeti érték X = 1
Paraméterek 1 -től H -ig
Szorzás 3 -mal
Az eredmény következtetése
jelentése
Magyarázatok

A ciklus megválasztása a problémás állapot sajátosságaitól függ. Csak a gyakorlat fogja megmondani a legjobb megoldást.

Cél: Az edzés megkezdése után a sportoló az első napon
10 km -t futott. Minden nap növelte a nappalit
az előző napi kamatláb 10% -a.
Mennyi a teljes út, amelyet a sportoló 7 nap alatt lefut.
Bemeneti változók:
d - napok száma
Sd - az aktuális nap távolsága
Kimeneti változók:
S - közös út

Blokkdiagram a megoldáshoz

Rajt
S: = 10
Sd: = 10
d: = 1
d: = d + 1
Sd: = Sd * 1.1
S: = S + Sd
Nem
D = 7
Igen
s
vége

Pascal program

Ciklus "For"
Viszlát ciklus
Ciklus "Előtte"
Program könyörög;
Program könyörög;
Program könyörög;
Var
Var
Var
S, Sd: valódi;
S, Sd: valódi;
S, Sd: valódi;
d: bájt;
d: bájt;
d: bájt;
Kezdődik
Kezdődik
Kezdődik
S: = 10;
S: = 10;
S: = 10;
Sd: = 10;
Sd: = 10;
Sd: = 10;
D esetén: 2-7
kezdődik
Míg d<7 do
kezdődik
Ismétlés
d: = d + 1;
Sd: = 1,1 * Sd;
d: = d + 1;
Sd: = 1,1 * Sd;
S: = S + Sd;
Sd: = 1,1 * Sd;
S: = S + Sd;
vége;
S: = S + Sd;
amíg (d = 7);
Writeln (‘S =’, S);
vége;
Writeln (‘S =’, S);
Vége.
Writeln (‘S =’, S);
Vége.
Vége.

Kérdések az ellenőrzéshez:
1. Melyik Pascal operátor határozza meg a ciklust
előfeltétel
2. Hogyan adható meg az "1" és "-1" lépés a ciklus paraméterében
3. Melyik ággal van a kilépés a hurokból
utólagos feltétel
4. Vannak feltételek a ciklusban a paraméterrel?
5. Mi lehet a ciklus teste
6. Ha paraméterekkel ellátott hurkot használ
Vége