Ciklikus algoritmusok

A program írásakor többször meg kell ismételni a megadott utasításcsoportot. Például húzzunk 13 sorból álló rácsot a képernyőn.

Természetesen 13 LINE utasítás írható a programban. de túl hosszú, és ha meg akarjuk változtatni a rács méretét vagy a vonalak számát, ez viszont nagyon nehéz és kényelmetlen lesz. Ilyen esetekben könnyebb használni a hurok konstrukciókat. Alapvetően több hurokszerkezet létezik egy adott mondatcsoport ismétlésére.

Tekintsük őket sorrendben:

FOR-NEXT ciklus

FOR counter = start THEN end [STEP lépés]
szereplők
NEXT számláló

Ez a konstrukció a FOR és a NEXT vonalak közötti utasítások többszörös végrehajtására szolgál. Hurokszámlálót használunk annak meghatározására, hogy hányszor ismételjük meg ezeket a kezelőket. A számláló egy változó, amely a ciklus elején egy olyan értékhez van rendelve, amelyet a kezdő kifejezés határoz meg. Továbbá a hurokban lévő operátorok végrehajtásra kerülnek, és a számláló növekszik a lépési kifejezés által meghatározott értékkel. Ha a számláló új értéke nem haladja meg a kifejezés végének értékét, akkor az operátorok újra végrehajtásra kerülnek, és a számláló megemelkedik a megadott lépéssel. Ez addig folytatódik, amíg a Számláló értéke nagyobb, mint a kifejezésvég értéke. Ezen a ponton a ciklus befejeződik, és a következő program utasítások végrehajtásra kerülnek. Ha a STEP szó hiányzik, akkor az 1. lépést feltételezzük.

Tehát amikor ciklust futtatsz

FOR K = l - 10 2. LÉPÉS
• • •
NEXT K

a K számláló folyamatosan az 1, 3, 5, 5, 9 értékeket veszi fel, a következő 11 értéke már nagyobb, mint a végső 10 érték, és K = 11 esetén a ciklus nem kerül végrehajtásra. Így ez a ciklus 5 alkalommal teljesül. Ha a 2. lépést a 2. lépés helyett a 2. lépésben állítja be, akkor a ciklus végrehajtása a K = 1,5, 9 értékekre történik. háromszor.

Megadhatja a negatív lépést. A kezdeti értéknek nem lehet kevesebb, mint a végérték, és a számláló értéke csökken. Így a ciklus

M = 10-től -4-ig terjedő -3-ig
• • •
NEXT M

M = 10,7,4,1, -2, a következő -5 érték elhagyja a korlátokat [-4,10], és a ciklus már nem teljesül.

Egy rács rajzolásához egy adott lépéssel körbejárhatod a koordinátákat, amelyek mentén vízszintes és függőleges vonalak rajzolhatók.

Ez a következő programot hozza létre:

KÁRTYA 9
REM grid lépések x és y esetén
DX = 10. DY = 10
REM vízszintes vonalak
FOR Y = 0 - 80 STEP DY
LINE (0, Y) - (100, Y), 15
NEXT Y
REM függőleges vonalak
FOR X = 0 - 100 STEP DX
LINE (X, 0) - (X, 80), 15
NEXT X
VÉGE

A DX és a DY különböző értékeinek megadásával különböző sorokat lehet elérni a vonalak között.

Megjegyzés.

KÁRTYA 9
REM grid lépések x és y esetén
DX = 10. DY = 10
REM sorok száma
NX = 10. NY = 8
REM kiszámítja az utolsó sorok koordinátáit
LASTX = NX * DX. LASTY = NY * DY
REM vízszintes vonalak
FOR Y = 0 A LASTY STEP DY
LINE (0, Y) - (LASTX, Y), 15
NEXT Y
REM függőleges vonalak
FOR X = 0 A LASTX STEP DX-hez
LINE (X, 0) - (X, LASTY), 15
NEXT X
VÉGE

Írd be a FOR-NEXT ciklust használó programokat hasonló rajzok megjelenítéséhez:

Rajongói vonalak, vonalak

Csúsztatva az útmutatókat

Előfordulhat, hogy előre nem ismert, hogy hányszor szükséges a ciklus megismétlése, de ismeretes, hogy bizonyos feltételek mellett kell végrehajtani. Ilyen esetekben nehéz használni a FOR-NEXT hurkot. De alkalmazhat egy másik hurkot is.

WHILE állapot
szereplők
WEND

A tervezés jelentése meglehetősen egyszerű. Először ellenőrizzük az állapotot, ha ez igaz, akkor az operátorok végrehajtásra kerülnek. WHILE és WEND. Ezt követően a feltétel ismételten ellenõrzésre kerül az üzemeltetõk végrehajtása, és így tovább, amíg a feltétel nem sérül. A WHILE-WEND hurok programozásakor meg kell győződnie arról, hogy a hurok feltételét sértik. különben ez a ciklus sohasem tudja befejezni munkáját - a program elakad.

A program tipikus példája:

A = 1
HA A> 0
A = 2
WEND

Itt A mindig egyenlő 2-vel, és az A> 0 egyenlőtlenség mindig érvényesnek bizonyul - a ciklus határozatlan ideig kiterjed.

A FOR-NEXT és a WHILE-WEND ciklusokban nagyon sok közös. Különösen a FOR-NEXT hurokkal rendelkező program mindig újraírható a WHILE-WEND hurok segítségével. Tehát a következő két program pontosan ugyanazt teszi.

A = 1 FOR 1 = 1 THEN 10 2. LÉPÉS I = 1
A = A + I
NEXT I A ​​= A + I

MIKÉN<=10
I = I + 2
WEND

Írja be azokat a programokat, amelyek a WHILE-WEND ciklust használják hasonló képek megjelenítésére.

Minden egyes egyenes vonal 1,1-szer távolabb van a képernyő bal szélétől, mint az előző; A ciklus addig folytatódik, amíg a vonalak a képernyő határain belül vannak; A koncentrikus körök sugara egyenetlenül változik.

Kapcsolódó cikkek