PDA

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!

SkunK
22-02-2008, 19:44
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/

Luka
22-02-2008, 19:47
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

SkunK
22-02-2008, 19:57
Neka on nauci logo.

Luka
22-02-2008, 19:58
pitanje nije vezano uz sam jezik, on ne može doći do algoritma za problem

SkunK
22-02-2008, 20:52
Cemu natjecanje onda

Luka
23-02-2008, 10:38
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

SkunK
23-02-2008, 13:20
Pa ako nemoze taj dio odradit cemu onda prolazak dalje, di je poanta ako vidi rijesenja

Luka
23-02-2008, 13:52
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

koki007
23-02-2008, 14:32
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

Luka
24-02-2008, 17:13
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)

Luka
09-03-2008, 18:46
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!