Pravila rješavanja: 1) Svako rješenje koje radi i prođe testiranje dobiva 100 bodova. Zatim slijede pravila za negativne bodove: 2) Svaka globalna varijabla (globalni MAKE) -10 bodova. 3) Svaki upotreba MAKE (pa makar i na lokalnoj varijabli) koja mijenja vrijednost varijable unutar jedne procedure (ili jedne invokacije procedure) oblika: make "x :x + :a (ili tako nekako) -10 bodova. 4) Svako (nepotrebno) pretvaranje liste u array (recimo radi sortiranja) -10 bodova. (Niti jedan zadatak neće trebati array). 5) FOR, WHILE, DO i REPEAT petlje se ne kažnjavaju. Ipak imajte na umu da takove konstrukcije obično zahtjevaju promjenu varijabli sa MAKE - što se kažnjava! 6) Većina zadataka će tražiti da procedura outputira rezultat, a ne da ga procedura koja računa sama ispiše. Pazite na to -10 bodova.
U slučaju da nema kaznenih bodova - ostaje naša subjektivna procjena (obično će bolje biti kraće ili možda jasnije) Rješenje zadatka Dubina:
Riješio:
to flatten1 :lst if empty? :lst [op []] op se first :lst flatten1 bf :lst end to lat :lst if empty? :lst [op "true] if list? first :lst [op "false] op lat bf :lst end to dubina :lst if lat :lst [op 1] op sum 1 dubina flatten1 :lst end
Ovo je moje rješenje zbog toga što nam ovaj tjedan nitko nije poslao svoje rješenje...........Čista konstrukcijska rekurzija Rješenje zadatka Max:
Rješio:
to obradi :rij if empty? :rij then stop if (count :rij)>:s then make "s (count :rij) if list? first :rij then for "k 1 (count :rij) [obradi (item :k :rij)] obradi bf :rij end to maxi :i if empty? :i then stop if list? first :i then obradi first :i maxi bf :i end to max :i nodraw ct if not list? :i then [pr [krivi unos] stop] make "s (count :i) maxi :i op :s end Rješenje zadatka izravnaj:
Rješio:
to cisti :l if emptyp :l [op :li] ifelse listp first :l ~ [localmake "o cisti first :l] ~ [make "li lput first :l :li] op cisti bf :l end to izravnaj :list if not listp :list [pr [krivi unos!] stop] make "li [] op cisti :list end
Zbog globalne varijable i dva make-a na njoj -20 bodova.
|
|
Napisao: Hrvoje.Blazevic@bbm.hr
|
| David.Blazevic@posluh.hr |
| Fredi.Glavan@public.srce.hr |