
Ha egy vonatszerelvény érkezik az 1,2,3...N sorszámú kocsikkal, akkor
minden egyes lépésben három lehetőség közül választhatunk:
| ÁT | A szerelvény elején levő kocsit a kijárat felé továbbítjuk. |
| BE | A szerelvény elején levő kocsit a kitérőbe visszük. |
| KI | A kitérő végén álló utolsó kocsit a kijárat felé küldjük. |
Állapítsd meg, hogy ha a beérkező szerelvény az 1,2,3,4 kocsikból áll,
akkor lehet-e a kimenő szerelvény a következő sorrendű! Az előállíthatóknál
add meg előállításuk lépéseinek sorrendjét, a többinél pedig magyarázd
meg, hogy miért nem lehetséges az előállításuk!
| TO mitcsinál A B
FORWARD A LEFT B mitcsinál A B END |
A programban használt utasítások magyarázata a következő:
| FORWARD hossz | előrelép az aktuális irányban hossz egységgel |
| LEFT szög | balra fordul szög fokkal a teknőc síkjában |
| TO eljárás eleje
... END eljárás vége. |
A szimmetria lehet kettes (pl. a pillangó szárnyai), hármas (a háromlevelű
lóhere), négyes (ilyen a négylevelű lóhere) stb. A következő eljáráshívások
eredménye milyen szimmetriát mutat?
Az autók mozgására három algoritmust írtunk. Add meg, hogy közülük
melyik milyen esetben sérti meg a KRESZ előírásait, illetve van-e bennük
felesleges vizsgálat!
| A. | Autó1:
Elôre a kereszteződésig Várj amíg van autó jobbról Elôre Eljárás vége. |
| B. | Autó2:
Elôre a kereszteződésig Várj amíg van autó szembôl Balrafordulás Elôre Eljárás vége. |
| C. | Autó3:
Elôre a kereszteződésig Ha a keresztező főút akkor Várj amíg van autó jobbról Jobbrafordulás Elôre Eljárás vége. |
| FORGAT((x,y),(p,q)) | Négyzet alakú rész forgatása 90 fokkal balra |
| XTÜKÖR((x,y),(p,q)) | Téglalap alakú rész tükrözése a téglalap X-tengelyére |
| YTÜKÖR((x,y),(p,q)) | Téglalap alakú rész tükrözése a téglalap Y-tengelyére |
Milyen transzformációkkal állítható elő az alábbi állapotból a következő
néhány állapot? (Csak 2-lépéses megoldásokat keress!)
| A | B | C |
| D | E | F |
| G | H | I |
|
|
|
((1,2),(2,3))
|
| FIRST X | megadja az X szó első betűjét (vagy az X mondat első szavát) |
| BUTFIRST X | megadja az X szót az első betűje nélkül (vagy az X mondatot az első szava nélkül) |
| LAST X | megadja az X szó utolsó betűjét (vagy az X mondat utolsó szavát) |
| BUTLAST X | megadja az X szót az utolsó betűje nélkül (vagy az X mondatot az utolsó szava nélkül) |
Az önálló betűk elé ~ jelet, a szavak elé " jelet kell tenni, a mondatokat pedig [.] jelek közé tesszük, s a mondaton belül a szavak elé nem kell kitenni az idézőjelet.
Példa:
| ~B FIRST "SZÓ ~S,
"SZÓ BUTFIRST "SZÓ "ZÓ [RÖVID MONDAT] FIRST [RÖVID MONDAT] "RÖVID [EZ EGY HOSSZABB MONDAT] BUTFIRST [MONDAT] [] |
Mit adnak meg a következő LOGO kifejezések? Add meg a konkrét értéket, valamint fogalmazd meg általánosan is a kapott eredményt.
A. FIRST BUTFIRST
[FEKETE MACSKA]
B. BUTFIRST
FIRST [VÉGIGÉR? FA]
C. LAST FIRST
[LOGO PROGRAMNYELV? UTASÍTÁSOK]
D. BUTLAST
BUTFIRST [MI LESZ EZ]
A. Mit csinál
az alábbi programrészlet?
B. Mire szolgálnak
az l, az m illetve az n változók?
| l:=False;
For i:=1 to 100 do If a[i]>0 then If l then If a[i]<m then m:=a[i]; n:=i; End; else l:=True; n:=i; m:=a[n]; End; End; End; |
Az algoritmusokban az ÜZENET változó akkor kap értéket, ha egy papírlap
megérkezett, s megvizsgálása után elveszti értékét (azaz minden lapot csak
egyetlenegyszer lehet megnézni).
A két levelező algoritmusa, melyben a speciális jeleket kisbetűs szavakkal
jelöljük:
| Józsi:
Küld(beszéljünk): I:=1 Várj amíg ÜZENETjöhet Ciklus amíg Ihossz(LEVÉL) Küld(LEVÉL(I)): I:=I+1 Ha ÜZENET=nemértem(J) akkor I:=J: Küld(ismétlem) Ciklus vége Küld(vége) Eljárás vége. |
| Pisti:
Várj amíg ÜZENETbeszéljünk Küld(jöhet): J:=1 Várj amíg ÜZENET='' majd B:=ÜZENET Ciklus amíg Bvége Ha B olvashatatlan akkor Küld(nemértem(J)) Várj amíg ÜZENETismétlem különben VETT(J):=B: J:=J+1 Várj amíg ÜZENET='' majd B:=ÜZENET Ciklus vége Eljárás vége. |
Milyen konfliktushelyzetek adódhatnak elő a két algoritmus alapján? (Lehetséges, bár az algoritmusok alapján hibás válasz lenne a következő: Józsi nem várja meg Pisti jöhet üzenetét.)