← Vissza a feladatokhoz
2019 · Első forduló · 9–12. évfolyam1. feladat40 pont

Robot vezérlés

jobbra :parambalra :paramderékszög (90, -90, 270)előre :paramhátra :paramhátra :param/vminégyzettollvastagság! [konkrét érték]16165

Van egy robotunk , amely az F, J, L, B parancsokra hallgat. Az F hatására felfele, a J hatására jobbra, az L hatására le, a B hatására balra megy a robot egészen addig, míg nem ütközik falba, akkor megáll és várja a következő parancsot. A pályát fal veszi körül, illetve a pályán belül is vannak falak (fekete négyzetek).

Amennyiben a robot olyan mezőre érkezik, amelyik egy nyilat tartalmaz, köteles megváltoztatni az irányát a nyíl irányába, és addig folytatja tovább útját, míg falba nem ütközik. Amennyiben teleportálás () mezőre érkezik, akkor a másik teleport mezőn fog előbukkanni, és ugyanolyan irányba folytatja az útját, mint korábban, amennyiben ez lehetséges. Ha ez nem lehetséges, mert ott akadály van, akkor ellentétes irányba mozog tovább a következő falig.

Lássunk egy példát:

Ha a szaggatott vonallal jelölt útvonalon szeretnénk végig vezetni a robotot a célig (), akkor a következő kódot kell kiadnunk:

JLJ

A pályát alkotó cellákra az oszlopokban látható betűvel és a sorokban látható számokkal tudunk hivatkozni.

pl. Az A1 cellában van a robot, a J10 cellában a cél. Az E5 cellában van egy teleportáló, az I8 cellában a lefele nyíl.

Most nézzük az alábbi pályát!

Melyik cellába kerül a robot az alábbi kódok hatására?

Kérdés

Kód

Cella

A.

FBBB

B.

JLBLBB

C.

FBJBF

Milyen kódok kiadásával lehet eljuttatni a robotot megadott cellába? A legrövidebb utat találd meg! Figyelj arra, hogy a robotnak meg kell állnia a cellában, nem elég áthaladnia rajta!

Kérdés

Cella

Kód

D.

I6

E.

C7

F.

J10

Hivatalos megoldás (HTML)

Van egy robotunk Képtalálat a következőre: „bb8”, amely az F, J, L, B parancsokra hallgat. Az F hatására felfele, a J hatására jobbra, az L hatására le, a B hatására balra megy a robot egészen addig, míg nem ütközik falba, akkor megáll és várja a következő parancsot. A pályát fal veszi körül, illetve a pályán belül is vannak falak (fekete négyzetek).

Amennyiben a robot olyan mezőre érkezik, amelyik egy nyilat tartalmaz, köteles megváltoztatni az irányát a nyíl irányába, és addig folytatja tovább útját, míg falba nem ütközik. Amennyiben teleportálás (Képtalálat a következőre: „teleport”) mezőre érkezik, akkor a másik teleport mezőn fog előbukkanni, és ugyanolyan irányba folytatja az útját, mint korábban, amennyiben ez lehetséges. Ha ez nem lehetséges, mert ott akadály van, akkor ellentétes irányba mozog tovább a következő falig.

Lássunk egy példát:

A képen szöveg, tér, keresztrejtvény, szám látható

Automatikusan generált leírás

Ha a szaggatott vonallal jelölt útvonalon szeretnénk végig vezetni a robotot a célig (Kapcsolódó kép), akkor a következő kódot kell kiadnunk:

JLJ

A pályát alkotó cellákra az oszlopokban látható betűvel és a sorokban látható számokkal tudunk hivatkozni.

pl. Az A1 cellában van a robot, a J10 cellában a cél. Az E5 cellában van egy teleportáló, az I8 cellában a lefele nyíl.

Most nézzük az alábbi pályát!

A képen keresztrejtvény, tér, szöveg látható

Automatikusan generált leírás

Melyik cellába kerül a robot az alábbi kódok hatására?

Kérdés

Kód

Cella

A.

FBBB

B.

JLBLBB

C.

FBJBF

Milyen kódok kiadásával lehet eljuttatni a robotot megadott cellába? A legrövidebb utat találd meg! Figyelj arra, hogy a robotnak meg kell állnia a cellában, nem elég áthaladnia rajta!

Kérdés

Cella

Kód

D.

I6

E.

C7

F.

J10

Egy robot pálya kirajzolása lesz a feladatod. Készítsd el a pálya(oszlop,sor,méret) eljárást, amely kirajzolja a megfelelő pályát! Paraméterként a pálya oszlopainak és sorainak számát, valamint a pályát alkotó négyzetek oldalhosszát adjuk meg. Az egyes sorok mögött tüntesd fel a sorszámot, az oszlopok felett pedig az oszlop betűjelét A-tól kezdve! Segítség! Pythonban a write(″A″) parancs az A betűnek felel meg, a write(″B″)parancs a B betűnek, és így tovább. A pálya jobb alsó cellájába kell a célt A képen kör látható

Automatikusan generált leírás kirajzolni! Készíts egy robot(oszlop,sor) eljárást, amely az adott helyen kirajzolja a robotot ! Készíts egy fal(oszlop,sor,méret) eljárást, amely a kirajzolt pálya adott helyét kitölti feketével! Készítsd egy nyíl(oszlop,sor,méret,szög) eljárást, amely a megadott helyre egy adott irányú nyilat rajzol! A szög értékek és az irányok között az alábbi kapcsolat legyen!

Szög

Nyíl

0

90

180

270

A képen tér, szám, keresztrejtvény, szöveg látható

Automatikusan generált leírás

pálya(10,6,40)

robot(9,1,40)

fal(1,3,40)

fal(10,1,40)

fal(10,5,40)

nyíl(1,5,40,90)

nyíl(1,6,40,0)

nyíl(7,6,40,270)

nyíl(7,1,40,180)

Mintafuttatás

A. A10 5 pont

B. A10 6 pont

C. A6 5 pont

D. FJL 6 pont

Annyiszor 2 pont, ahány kód egyezik a mintamegoldással balról jobbra vizsgálva. Vagyis, ha F-el kezdődik a kód 2 pont, ha FJ-vel, akkor 4 pont, és így tovább. Max pont akkor adható, ha a megoldás pontosan a mintamegoldással egyezik meg.

E. JLB 6 pont
(pontozási elv ugyanaz, mint a D. pont esetén)

F. FBJJFL 12 pont
(pontozási elv ugyanaz, mint a D. pont esetén, de minden egyezés 1 pontot ér)

$magyarázat kellene

Itt az előző korcsoporthoz képest még nyilakat is kell rajzolni.

eljárás nyíl :o :s :m :szög
tollatfel jobbra 90 előre :m/2+(:o-1)*:m balra 90
hátra :m/2+(:s-1)*:m
tollatle tollvastagság! 3 jobbra :szög előre :m/2-6
jobbra 45 hátra 6 előre 6 balra 90 hátra 6 előre 6
jobbra 45 hátra 2*(:m/2-6) előre :m/2-6
tollatfel tollvastagság! 1 balra :szög
előre :m/2+(:s-1)*:m jobbra 90 hátra :m/2+(:o-1)*:m
balra 90
vége

A. Van pálya eljárás 1 pont

B. A pálya 10 1 40 eljárás kirajzol egy 10 oszlopból és 1 sorból álló négyzethálót; ahol a négyzetek oldalhossza 40; a sor után az 1-es szám látható; minden cella felett a betűk helyesen látszódnak 2+1+1+2 pont

C. A pálya 1 10 40 eljárás kirajzol egy 10 sorból és 1 oszlopból álló négyzethálót; ahol a négyzetek oldalhossza 40; minden sor után a megfelelő sorszám látható; az oszlop felett az A betű van 2+1+2+1 pont

D. A pálya 10 6 40 eljárás kirajzol egy 10 oszlopból és 6 sorból álló négyzethálót; ahol a négyzetek oldalhossza 40; a sorindexek helyesek; oszlopindexek helyesek 2+2+2+2 pont

E. A pálya (négyzetrács) kirajzolása helyes a 30-as méretben; illetve 50-es méretben; a sor és oszlopindexek rendben megjelennek 2+2+2 pont

F. Van robot eljárás 1 pont

G. Megrajzolta a robotot, amely két pontból (körből) áll; a nagyobb pont (vagy kitöltött kör) tetején egy kisebb pont (vagy kitöltött kör) van; a robot pontosan a paraméterben megadott helyre kerül (függetlenül a korábban kiadott parancsok utáni teknőc pozíciótól); a pozícionálás 30-as és 50-es méretű pályán is jól működik 2+2+2+2 pont

H. Megrajzolta a két koncentrikus körből álló célt; a pálya utolsó cellájában elhelyezte 2+2 pont

I. Van fal eljárás 1 pont

J. A fal 1 2 40 eljárás befesti az első oszlop második celláját (csak akkor adható meg, ha az eljárás mindig az adott cellát tölti ki, függetlenül a korábban kiadott parancsok utáni teknőc pozíciótól) 2 pont

K. A fal 5 1 40 eljárás befesti az első sor ötödik celláját (csak akkor adható meg, ha az eljárás mindig az adott cellát tölti ki, függetlenül a korábban kiadott parancsok utáni teknőc pozíciótól)
2 pont

L. A fal eljárás akkor is jól színez, amikor nem 40-es, hanem 30-as méretben; illetve 50-es méretben kirajzolt pályán teszteljük (csak akkor adható meg, ha az eljárás mindig az adott cellát tölti ki, függetlenül a korábban kiadott parancsok utáni teknőc pozíciótól) 2+2 pont

M. Van nyíl eljárás 1 pont

N. A nyíl :oszlop :sor 40 0 a megadott helyre kirajzol egy nyilat (függetlenül a korábban kiadott parancsok utáni teknőc pozíciótól) 2 pont

O. A nyíl eljárás 30-as; illetve 50-es méretű pályán is kirajzol egy nyilat a megfelelő helyre
2+2 pont

P. A nyíl eljárás a szög paraméter megadásakor (0, 90, 180, 270) a helyes irányú nyilakat rajzolja ki 4*1 pont