Autorské riešenie Úlohou je vykresliť nahrdelník s korálikmi so zadanou veľkosťou, tvarmi a farbami. Najprv pre každý tvar korálika vytvoríme procedúru na jeho vykreslenie. Napokon vytvoríme procedúru, ktorá vykresli náhrdelník so zadanou veľkosťou korálika a podľa zadaného zoznamu. Náhrdelník s veľkosťou 50 a tvarom korálikov zakódovaným zoznamom [[d červená][s žltá][k modrá][s zelená][k sivá][d fialová][k žltá][s modrá]] vyzerá takto: Na vykreslenie kosoštvorca so zadanou dĺžkou strany "dĺžka a farbou "farba vytvoríme procedúru diamant, ktorá môže vyzerať nasledovne: viem diamant :dĺžka :farba Na vykreslenie kruhu so zadaným priemerom "dĺžka a farbou "farba vytvoríme procedúru krúžok, ktorá môže vyzerať nasledovne: viem krúžok :dĺžka :farba Na vykreslenie štvorca so zadanou dĺžkou strany "dĺžka a farbou "farba vytvoríme procedúru štvorec, ktorá môže vyzerať nasledovne: viem štvorec :dĺžka :farba Pri tomto riešení si môžeme všimnúť, že štvorec vykreslíme nie pomocou 4 úsečiek s veľkosťou dĺžky :dĺžka, ale pomocou 4 dvojíc úsečiek (v tvare písmena L) s veľkosťou dĺžky :dĺžka/2. Pri príkaze polygón sme výraz :dĺžka/2 museli uzavrieť do okrúhlych zátvoriek (:dĺžka/2). Napokon vytvoríme hlavnú procedúru, ktorá vykreslí koráliky so zadanou veľkosťou podľa zadaného zoznamu tvarov a farieb. V procedúre použijeme cyklus prePrvky, pomocou ktorého prejdeme všetkým iprvkami zoznamu a vetvenie akJe, pomocou ktorého vyberieme správnu procedúru na vykreslenie daného tvaru koráliku. Táto procedúra môže vyzerať nasledovne: viem vykresli :dĺžka :zoznam Na vykreslenie obrázku uvedeného na začiatku tejto strany zavoláme procedúru vykresli s parametrami Vaše zaujímavé riešenia a najčastejšie chyby Úlohu riešili 4 tímy. Len jeden tím využil pri svojom riešení zoznamy, ostatní súťažiaci naprogramovali len čiastkové procedúry na vykreslenie rôznych tvarov korálikov. |
||||||||||
© Univerzita Pavla Jozefa Šafárika v Košiciach, Prírodovedecká fakulta, Ústav informatiky palmaj (zavinac) upjs.sk |