← Vissza a feladatokhoz
2018 · Döntő / Harmadik forduló · 7–8. évfolyam5. feladat32 pont

Járda

eljárás aláírás (:param1 :param2)derékszög (90, -90, 270)előre :paramhátra :paramelőre :param*vmitéglalapkitöltés (tölt)tollvastagság! [konkrét érték]ismétlés – fix számúismétlés – egymásba ágyazott665

Egy 2*n hosszúságú járdát 1x2-es és 1x3-as járólapokkal fedünk le. A járólapok vastag barna a szegélyüek és sárga színűek. (A felhasználandó színek: barna – „brown”, sárga – „yellow”)

Készíts járda(h,alsó,felső) eljárást, amely h x 2*h, illetve h x 3*h méretű járólapokat rak le az alsó-nak és a felső-nek megfelelően. Mindkettő annyi számból áll, amilyen hosszúságú a járólap az adott sorban. Minden elemük három eset valamelyike: 1 azt jelenti, hogy abban az oszlopban függőlegesen áll egy 1x2-es elem; 2 és 3 jelentése pedig az, hogy vízszintesen áll egy 2 vagy 3 hosszúságú elem.

járda(20,[1,1], [1,1])

járda(20,[2,2], [2 2])

járda(20,[3,3], [3,3])

járda(20,[3,3], [2,2,2])

Hivatalos megoldás (HTML)

Egy 2*n hosszúságú járdát 1x2-es és 1x3-as járólapokkal fedünk le. A járólapok vastag barna a szegélyüek és sárga színűek. (A felhasználandó színek: barna – „brown”, sárga – „yellow”)

Készíts járda(h,alsó,felső) eljárást, amely h x 2*h, illetve h x 3*h méretű járólapokat rak le az alsó-nak és a felső-nek megfelelően. Mindkettő annyi számból áll, amilyen hosszúságú a járólap az adott sorban. Minden elemük három eset valamelyike: 1 azt jelenti, hogy abban az oszlopban függőlegesen áll egy 1x2-es elem; 2 és 3 jelentése pedig az, hogy vízszintesen áll egy 2 vagy 3 hosszúságú elem.

járda(20,[1,1],
[1,1])

járda(20,[2,2],
[2 2])

járda(20,[3,3],
[3,3])

járda(20,[3,3],
[2,2,2])

Először az alsó sort rajzoljuk, majd a felsőt. A járda hossza az alsó (vagy a felső) sorban levő számok összege.

eljárás járda :h :felső :alsó
tollszín! „szürkésbarna tollvastagság! 3
kövezésalsó :h :alsó
tollatfel jobbra 90 hátra :h*szumma :alsó balra 90
előre :h tollatle
kövezésfelső :h :felső
vége

Az alsó sornál rajzoljuk a függőleges járólapokat is (járólapf).

eljárás kövezésalsó :h :le
ha 1=első :le [járólapf :h tollatfel jobbra 90 előre :h
balra 90 tollatle]
ha 2=első :le [járólapv :h 2 tollatfel jobbra 90 előre 2*:h
balra 90 tollatle]
ha 3=első :le [járólapv :h 3 tollatfel jobbra 90 előre 3*:h
balra 90 tollatle]
ha nem üres? elsőnélküli :le [kövezés :h elsőnélküli :le]
vége

A függőleges elemeket itt átlépjük.

eljárás kövezés2 :h :le
ha 1=első :le [tollatfel jobbra 90 előre :h balra 90
tollatle]
ha 2=első :le [járólap :h 2 tollatfel jobbra 90 előre 2*:h
balra 90 tollatle]
ha 3=első :le [járólap :h 3 tollatfel jobbra 90 előre 3*:h
balra 90 tollatle]
ha nem üres? elsőnélküli :le [kövezés2 :h elsőnélküli :le]
vége

eljárás járólapv :h :db
ismétlés 2 [előre :h jobbra 90 előre :db*:h jobbra 90]
töltőszín! „sárga
tollatfel jobbra 45 előre :h tölt hátra :h balra 45 tollatle
vége

eljárás járólapf :h
ismétlés 2 [előre 2*:h jobbra 90 előre :h jobbra 90]
töltőszín! „sárga
tollatfel jobbra 45 előre :h tölt hátra :h balra 45 tollatle
vége

eljárás szumma :l
ha üres? :l [eredmény 0]
eredmény (első :l)+szumma elsőnélküli :l]
vége

A. Jó az A ábra 4 pont

B. Jó a B ábra 4 pont

C. Jó a C ábra 4 pont

D. Jó a D ábra 6 pont

E. Jó az E ábra 6 pont

(Ha a járda egyik sora jó, akkor a fenti pontszámok fele adható.)

F. Van járólap; jó méretű téglalap; vastag barna szegély; sárga kitöltés 2+2+2+2 pont