Feladat
A programozás során rendszeresen előfordul, hogy bizonyos cél -leginkább látvány - eléréséhez
már-már "zsonglőrködni" kell a matematikai, illetve aritmetikai kifejezésekkel. Ez azt jelenti,
hogy egy, vagy néhány változót (pl. ciklusváltozót) felhasználva olyan új értékeket állítsunk elő,
melyek lehetővé teszik alakzatok, színátmenetek, majd később mozgások, szimulációk ábrázolását.
E jelenlegi feladat éppen ezt hivatott érzékeltetni, illetve gyakoroltatni.
Az alábbiakban két oszlopban különféle ábrák láthatóak, pontokból kirakva. Az első ábrát a
következő kódrészlet alkotja meg:
<style>
table.matrix tr td
{
width : 8px ;
height : 8px ;
}
div.pont
{
width : 8px ;
height : 8px ;
border-radius : 50% ;
background-color : #66A ;
}
</style>
<script>
document.write("<table class='matrix' cellpadding=0>")
for( i=0 ; i<=15 ; i++ )
{
document.write("<tr>")
for( j=0 ; j<=15 ; j++ )
{
document.write("<td>")
if(1)
{
document.write("<div class='pont'></div>")
}
document.write("</td>")
}
document.write("</tr>")
}
document.write("</table>")
</script>
Az Ön feladata, hogy a kódrészlet - piros kiemeléssel jelzett - feltételének
változtatásával készítse el a többi egyszínű ábrát megvalósító programot is.
Ehhez új sorokat semelyik esetben nem szükséges beszúrnia a programba.
A jobb oldali, színes ábrák az egyszínű változat továbbgondolásai. Színezéssel
hozza létre az így kialakítható látványt is. Ebben az esetben a - barna színnel
jelölt - legbelső kapcsos zárójel tartalmát kell bővítenie, akár új változók
bevezetésével is.
1. Négyzet 16x16 pontból:
2. Háromszög 16x16 pontból:
3. Pöttyös:
4. Zászló:
5. Felnégyelve:
6. Kereszt:
7. Rombusz:
8. Csokornyakkendő:
9. Négyzetek a négyzetben:
10. Fenyőfa:
Eddig 6 hozzászólás van a témához:
2020-12-17 10:14
Fruzsina
A 16x16-os négyzet (1. ábra) a megadott kóddal valóban remekül működik. Azonban már a 2. ábrán lévő háromszöget sem tudtam megoldani a pirossal kiemelt if(1) érték változtatásával. Szükségem volna még egy kis segítségre.. Előre is nagyon szépen köszönöm! Fruzsina
2020-12-17 21:48
Admin
if( i>=j )
:)
2021-04-20 15:37
Andi
A színes négyzetek közül egyhez kaphatnák segítséget? Mert egész egyszerűen nem boldogulok a színkódokkal a for cikluson belül.
Köszönettel
Andi
2021-05-01 10:51
Admin
Kedves Andi,
a színezéshez a
Színtábla című feladatban található segítség.
2022-01-08 18:38
B.Zsolt
Az egyszínű verzióból végre sikerült mindet megcsinálnom (a 2 utolsó elég sokára sikeredett, de csak meglettek azok is). :)
Az egymásba ágyazott négyzetek mintázat csak ilyen bonyolultan állítható elő vagy van rá egyszerűbb, rövidebb megoldás is?!
Nekem ezt sikerült kitalálnom hozzá:
(y >= ... && y < = ... && !(x%2)) || (y >= ... && ... < = x && y%2) ||
(x >= ... && x < = ... && !(y%2)) || (x >= ... && ... < = y && x%2)
És uez lenne a kérdésem a fenyővel (karifa) kapcsolatban is.
Ahhoz ilyet találtam ki:
((0 >= 2*... - ... && x < = ...) || (0 < = ... - 2*... && x >= ...)) && y < = ... || Math.abs(...) < 1 // az utolsó a fatörzset rajzolja ki
2022-01-08 18:56
B.Zsolt
Közben rájöttem, hogy a karácsonyfa fatörzs részéhez tudok egyszerűbb (rövid) modulo-s megoldást is, amit a zászlónál használtam; a faágas részéhez pedig elég lenne egy csonkagúlát kirajzoltatni 1 lépésben, ha az úgy lehetséges.