Rendszámválasztás:
Ciklus I=1-től 2-ig REND(I):=Véletlenbetű("Z") Ciklus vége Ciklus I=3-tól 6-ig REND(I):=Véletlenszámjegy(9) Ciklus vége Eljárás vége. |
Jelenleg a rendszámok egy jellel hosszabbak, három betűből, egy kötőjelből és három számjegyből állnak (pl. ABC-123). Alakítsd át a fenti programot úgy, hogy újfajta rendszámokat állítson elő, azzal a megkötéssel, hogy az utolsó érvényes rendszám a GZZ-999!
forward h, back h | az aktuális irányba előre-, illetve hátra lép h egységgel |
left sz, right sz | az aktuális helyen elfordul balra, illetve jobbra sz fokkal |
REPEAT db[utasítások] | a zárójelbe zárt utasításokat db-szor megismétli |
IF feltétel THEN utasítások | a THEN mögötti, valamint a következő sorokban bekezdéssel írt utasításokat
végrehajtja,
ha az IF mögötti feltétel teljesül. |
Mit rajzolnak az alábbi LOGO programok a képernyőre (n=1, h=100), (n=2,
h=100), illetve (n=3, h=100) esetén, ha a teknőc kezdetben észak felé néz?
Rajzold le!
A. | a(n,h):
IF n>0 THEN REPEAT 3 [forward h left 90 a(n-1, h/3) left 180 a(n-1, h/3) left 90] back 3*h |
B. | b(n,h):
IF n>0 THEN forward h/2 REPEAT 2 [forward h/2 left 90 b(n-1,h/2) right 90 forward h/2 right 90 b(n-1,h/2) left 90] back 5*h/2 |
C. | c(n,h):
IF n>0 THEN REPEAT 4 [forward h/2 LEFT 90 c(n-1,h/3) right 90] back 2*h |
Valami:
Ha X[1]>X[2] akkor A:=X[1] : B:=X[2] különben A:=X[2] : B:=X[1] Ciklus I=1-től N-ig Ha X[I]>B akkor Ha X[I]>A akkor B:=A : A:=X[I] különben B:=X[I] Ciklus vége Eljárás vége. |
A.
Mit csinál a fenti algoritmus? Mi lesz A és B értéke a futás végén? Mi
a helyzet holtverseny esetén?
B.
Milyen esetben eredményez(het) futási hibát a program futtatása?
C.
Mire módosíthatók a ciklushatárok úgy, hogy az eredmény ne változzon?
Kerítés:
A:=X[1] : B:=X[2] : L:=hamis Ciklus I=3-tól N-ig Ha B>X[I] és B>A akkor L:=igaz A:=B : B:=X[I] Ciklus vége Eljárás vége. |
A. Milyen esetben
lesz igaz az L változó értéke a futás végén?
B. Mi a hiba
a programban? Javítsd ki a lehető legegyszerűbb módon!
C. Mi az A
és a B változók szerepe?