A LOGO programnyelv következő függvényeit mondatokra is és szavakra is lehet alkalmazni:
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éldák:
~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!
FIRST
BUTFIRST
[FEKETE MACSKA]BUTFIRST
FIRST
[VÉGIGÉRő FA]LAST
FIRST
[LOGO PROGRAMNYELVű UTASÍTÁSOK]BUTLAST
BUTFIRST
[MI LESZ EZ]Mit rajzolnak a következő LOGO-nyelvű programok? Méreteket is adj meg!
A teknőc kezdetben a képernyő közepén áll és az X-tengely irányába néz. Kezdetben a toll a papíron van, PENUP
felemeli a papírról, PENDOWN
leengedi a papírra. A teknőc LEFT s
hatására balra, RIGHT s
hatására jobbra fordul s
fokkal, FORWARD x
hatására előre, BACK x
hatására hátra lép x
egységgel, REPEAT n
[utasítások] hatására pedig a zárójelbe tett utasításokat n
-szer megismétli. Az n
értéke a B) részfeladatban 2-vel osztható.
REPEAT n [REPEAT 5 [FORWARD 5 LEFT 90] RIGHT 90 PENUP FORWARD 5 PENDOWN]
REPEAT n/2 [REPEAT 5 [FORWARD 5 LEFT 120] LEFT 120 PENUP FORWARD 5 PENDOWN REPEAT 5 [FORWARD 5 RIGHT 120] RIGHT 120 PENUP FORWARD 5 PENDOWN]
REPEAT n [REPEAT 8 [FORWARD 2 BACK 4 FORWARD 2 LEFT 45] PENUP FORWARD 8 PENDOWN]
Egy vasútmodell-szerelvényt az alábbi paranccsal mozgathatunk a sínen:
Mozgat(Y,V) – Y távolságot tesz meg, végsebessége V lesz.
A szerelvény csak egyenletesen tud gyorsulni vagy lassulni. Egy eljárást készítettünk, amely a szerelvényt S távolságra juttatja el (a ^ jel hatványozást jelöl):
Vezérlés(X,V): Y:=A*DT^2/2 + V*DT Ha X+Y <= S/2 és V+A*DT <= W akkor V_új:=V+A*DT Mozgat(Y,V_új): Vezérlés(X+Y,V_új): Mozgat(Y,V) különben Mozgat(S-2*X,V) Eljárás vége.
Kezdetben X=0, V=0, DT=1, A=2, S=20 és W=10! Másold le az alábbi táblázatot, és írd bele a Mozgat eljárás i-edik meghívása előtt (i = 1,2,3,…) érvényes értékeket!
i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
X | |||||||||||
V | |||||||||||
Y | |||||||||||
V_új | |||||||||||
megtett út | 0 |
A „megtett út” sorba az i-edik lépésig megtett útszakaszok összege írandó.
Az alábbi LOGO programokban egyszerre 2 teknőc rajzol. Azonos kezdőállapotból indulnak, kelet felé, a tollak a papíron vannak. Rajzold le az általuk elkészített ábrákat! Add meg az egyes szögek nagyságát fokban, és nevezd meg a jellegzetes geometriai alakzatokat is!
A. Teknőc1:
right 90 forward 10 left 90 forward 100 right 90 forward 20 left 120 forward 60
Teknőc2:
left 90 forward 10 right 90 forward 100 left 90 forward 20 right 120 forward 60
B. Teknőc1:
right 135 forward négyzetgyök 200 left 135 forward 100 right 120 forward 20 left 150 forward 20+20*négyzetgyök 3
Teknőc2:
left 135 forward négyzetgyök 200 right 135 forward 100 left 120 forward 20 right 150 forward 20+20*négyzetgyök 3
Egy síkban növekvő növény egyes darabjait az A, B, C betűkkel jelöljük. A növekedés egy időegységében megadjuk minden darabra, hogy a következő időegységben mi lesz belőle. Kezdetben mindig egy darab A típusú elemből áll a növény, amely felfelé néz. (Ha egy elem nem felfele néz azt az alábbi példákban így jelöljük: A> jobbra, <A balra, AV lefele)
Példa: az A, B és C átalakítási szabályai:
→ | A | → | A | → | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|
A | B | B | C | A> | C | C |
A fenti szabályokkal az egyetlen A típusú elemből álló növény így fejlődik 3 időegységben:
→ | → | → | A | ||||||
---|---|---|---|---|---|---|---|---|---|
B | |||||||||
A | |||||||||
A | C | A> | |||||||
B | A | ||||||||
A | A | B | |||||||
A | B | C | A> | C | B> | A> |
A. Rajzold le az első 4 időegységben a növény fejlődését, ha az alábbi szabályokat kell alkalmazni!
→ | C | → | → | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
B | A | ||||||||||
A | B | B | B | C | B | A> |
B. Rajzold le az első 4 időegységben a növény fejlődését, ha az alábbi szabályokat kell alkalmazni!
→ | A | → | → | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
A | B | B | C | C | <A | B | A> |
Az alábbi áramkör A és B bemenetére érkezik egy-egy 1-bites érték (A és B), amelyből a NEM, ÉS, VAGY áramköri elemek állítják elő az X és a C 1-bites értékeket.
Töltsd ki az alábbi táblázatban, hogy A és B adott értékeire (0=hamis, 1=igaz) mi lesz X és C értéke!
A | B | X | C |
---|---|---|---|
0 | 0 | ||
0 | 1 | ||
1 | 0 | ||
1 | 1 |
Az 1..n elemek egy részhalmazát egy ún. bináris levélfában ábrázolunk, amire a következő tulajdonságok teljesülnek:
Például a {2;4;5;7;9;10} halmaz ábrázolása, ha n=10:
Egy ilyen fára egyetlen műveletet alkalmazunk, az I-edik legnagyobb eltávolítását a fából. (A példában az első legnagyobb a 10, a hatodik legnagyobb a 2.)
Ha a fenti fából a 4. legnagyobb elemet kivesszük, akkor a fa így alakul (a 4. legnagyobb az 5-ös volt, a törlés után a 4. legnagyobb a 4-es lesz):
Az alábbi fából indulunk ki:
Rajzold le a fát minden törlés után, ha elemeket az alábbi sorrendben törlünk: 4. legnagyobb, 4. legnagyobb, 1. legnagyobb, 4. legnagyobb!