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.)