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.