Pogledaj cijelu verziju : Programski jezik Logo
DragonSoul
22-02-2008, 19:32
Zanima me dali itko ovdje zna Logo, jer idem na županisko 10.3, a imam dva zadataka koja ne znam riješiti. Pa, ako netko zna neka mi pomogne i objasni kako je to napravio.
Prvi zadatak:
Mirko i Slavica se igraju riječima. Napiši proceduru IGRA :r koja će odrediti jeli počinje Mirko ili Slavica i koliko će poteza igra trajati. Ako riječ završava na samoglasnik igru počinje Mirko, u suprotnom počinje Slavica. Onaj tko je na redu uklanja skup zadnjih slova, znači znadnji skup samoglasnika ili suglasnika.
Primjer:
IGRAJ "SMAJLI
Output:
4M
Drugi zadatak: kasnije.
E, sada, onaj prvi zadatak sam riješio do pola. Napravio sam proceduru ODREDI_POCETAK :r.
to ODREDI_POCETAK :r
MAKE "ZADNJE_SLOVO LAST :r
IF :ZADNJE_SLOVO = "A THEN [MAKE "STARTER "M]SELSE [MAKE "STARTER "S]
I tako dalje da svaki samoglasnik.l E, ali sada ne znam kako odrediti broj poteza. Molim pomoć i hvala!
Sta ides na zupanijsko ako nemas pojma?
Ovakvi su mi najbolji...
zagrij stolicu (koliko mi to god apsurdno zvuci s LOGOM )
evo par tutoriala :
http://mckoss.com/logo/
http://library.thinkquest.org/18446/
pretpostavljam da je zadatak s nekog starijeg natjecanja, ako je, idi na http://www.hsin.hrS, pa odaberi natjecanja i godinu; tamo imaš i zadatke i rješenja
pitanje nije vezano uz sam jezik, on ne može doći do algoritma za problem
to je najteži zadatak u natjecanju, ima ih 4 ukupno, nije presudno da ga riješi cijelog .. može i na državno ako riješi ostala 3 i pola ovog
Pa ako nemoze taj dio odradit cemu onda prolazak dalje, di je poanta ako vidi rijesenja
da shvati kako se to radi, kako rješiti taj problem
to nisu rješenja s ovog natjecanja, to su rješenja nekog starijeg natjecanja
Da tako je prakticki kod svih logickih/matematickih natjecanja, stari zadaci su dostupni i na njima se moze vjezbati, tako da znas sto te otprilike ocekuje....
DragonSoul
23-02-2008, 20:07
Grijem stolicu, zato i pitam :rotfl: Zahvaljujem na tutorialima, jer ja sam ih tražio i uvijek završio na Photoshopu(Logo, jel). Zadatak je sa županiskog iz 2005. Imam riješenje i pokušao sam ga prokomentirati, ali mi ne uspjeva u potpunosti. U biti je problem bio što sam ja stalno mislio na varijablu, ali je trebalo napraviti listu sa koordinatama točaka. E, sada, imam riješenje, ali ga ne kužim. Evo što sam uspio skontati.
TO NADJI_VRHOVE :N :D
MAKE "L []S
//pravi praznu listu L
PU HOME
//spušta pero i ide home [0, 0]
REPEAT :N [FD :D MAKE "L LPUT GETXY :L BK :D RT 360/:N]
//ponavlja N puta da ide naprijed duljinu D i u listu na zadnje mjesto //dodaje X i Y iza već postojećih vrijednosti u L te ide nazad duljinu D pa //se zakreće za 360/n
OP :L
//deklarira output porecedure
END
TO CRTAJ :L
PU SETXY LAST :L PD
//spušta pero te postavlja X i Y koristeći zadnju vrijednost u listi :L i spušta pero
FOR "I 1 COUNT :L [SETXY ITEM :I :L]
//petlja for postavlja varijablu I na jedan broj između 1 i broja objekata u listi L te onda postavlja X i Y prema vrijednosti liste L na mjestu I
END
TO POLA :L1 :L2
OP SE ((ITEM 1 :L1)+(ITEM 1 :L2))/2 ((ITEM 2 :L1)+(ITEM 2 :L2))/2
//molim?
END
TO NADJI_POLOVISTA :L
MAKE "L1 (LIST POLA FIRST :L LAST :L)
//pravi listu L1 koja koristi pola od prve i zadnje vrijednosti liste L?
FOR "I 2 COUNT :L [MAKE "L1 LPUT (POLA ITEM :I-1 :L ITEM :I :L) :L1]
//deklarira I koji je broj između 2 i broja objekata u listi L, te pravi listu L1 gdje iza sebe same(?) postavlja pola od I-1 objekta u listi i I objekta u listi L
OP :L1
//output procedure je L1
END
TO UPISUJ :N :D :K
CS
MAKE "KORDINATE NADJI_VRHOVE :N :D
//čemu?
REPEAT :K [CRTAJ :L MAKE "L NADJI_POLOVISTA :L]
END
Ne razumijem proceduru POLA, paaa, ako ima netko dobre volje :D
OP SE ((ITEM 1 :L1)+(ITEM 1 :L2))/2 ((ITEM 2 :L1)+(ITEM 2 :L2))/2
SE je naredba za spajanje dva stringa (riječi) u jednu.
Ovdje spajaš :
((ITEM 1 :L1)+(ITEM 1 :L2))/2
i
((ITEM 2 :L1)+(ITEM 2 :L2))/2
Prvi dio uzima prvi element liste L1, zbraja ga sa prvim elementom liste L2 i dobiveni zbroj dijeli s 2.
Drugi dio uzima drugi element liste L1, zbraja ga sa drugim elementom liste L2 i dobiveni zbroj dijeli s 2.
DragonSoul
09-03-2008, 18:37
Imam još jedan debilan problem. Napravio sam funkciju koja mi provjerava jeli određeno slovo samoglasnik ili ne. Ako je samoglasnik, output je TRUE, ako ne output je FALSE. I sada u drugoj funkciji želim iskoristiti tu provjeru, ali mi kaže da IF treba kao svoj input TRUE ili FALSE, što bi mu trebala dati funkcija funkcija za provjeru. Evo source pa ako netko zna da mi kaže, jer sutra je dan D, dosta sam toga naučio, ovaj vikend sve super išlo, svaki zadatak koji sam si zadao, ali ovaj neće :twisted: :
http://img100.imageshack.us/img100/8066/hallodz8.th.jpg (http://img100.imageshack.us/my.php?image=hallodz8.jpg)
sjećam se da sam i ja u osnovnoj imao taj problem .. nikad nisam shvatio zašto :?
btw., želim ti sreću .. i ja sutra idem na inf. natjecanje ali ne Logo
DragonSoul
09-03-2008, 18:55
Ne znam, pokušati ću napraviti varijabu u koju ću spremiti true ili false pa ću ga pokušat ubaciti u IF. Ako ni to ne bude radilo onda se predajem. A baš sam pogledao u knjzi ima jedan sličan primjer, isto koristi taj sistem (IF [Funkcija]). Ništa, javim hoće li uspjeti i rezultat od sutra. I tebi sretno za natjecanje!
vBulletin v4.2.5, Copyright ©2000-2024, Jelsoft Enterprises Ltd.