Uni
PCAXE Addicted
- Učlanjen(a)
- 31.08.2018.
- Poruka
- 2.469
- Rezultat reagovanja
- 984
Moja konfiguracija
PC / Laptop Name:
Lenovo ThinkPad X250 - i5 5300U/8GB/256GB EVO 860/6 Cell
Mice & keyboard:
Bloody V7M & Stock Thinkpad X250 Keyboard
OS & Browser:
Windows 10 + Microsoft Edge | ArcoLinux + i3 + Mozilla Firefox Quantum
Cini mi se da moj prvi pokusaj poducavanja programiranja nije prosao po planu, te ovo mogu nazvati pokusaj 2.0. Cilj ovog tutorijala mi je samo da zainteresujem neke od vas ili da vam dam neku malu zanimaciju u slobodno vreme. Ako ste spremni, hajde da pocnemo!
Sta je LOGO?
LOGO se danas smatra jednim od najlaksih i najjednostavnijih programskih jezika. Iako je veoma jednostavan i moze se ceo obraditi u samo 20-30 minuta, obradjuje neke od glavnih principa modernog programiranja, poput funkcija, promenljivih i izraza, koji su prisutni i u svim "velikim" jezicima.
LOGO je napravljen kao jezik namenjen da ljude nauci osnovne koncepte programiranja u LISP-u, ali je vec u ranim danima dobio paznju vecih masa i proglasen je samostalnim jezikom. Jos od svoje prve verzije, namena mu je bila ilustrovanje vektorske grafike putem koda, a svoju slavu je zadobio zahvaljujuci kornjaci koja upravlja rutu kursora. Prve digitalne verzije jezika koriscene su na Atari i Apple II Plus masinama, a izgled je do danas ostao isti u simuliranom DOS-u/Terminalu.
Koriscenje LOGO-a
Posto je jezik sam po sebi jednostavan, nije vam potrebna nikakva alatka osim web pretrazivaca za kompajliranje zadatog koda, iako postoje posebni interpretatori u vidu windows/mac os aplikacija. Jedan od web-based kompajlera koji ja preporucujem jeste Calormen Javascript, koji se moze pronaci na linku ovde.
Glavna radna povrsina u kojoj mozemo videti ilustrovanu kornjacu predstavlja prostor za kompajliranje, dok je mali prozor ispod nje tzv. komandna linija u kojoj cemo unositi izraze.
Osnovne Naredbe
Svaka komanda predstavlja naredbu koju kompajler prevodi i izvrsava je na ekranu. Komande se sastoje iz jedne reci, a mogu sadrzati i argumente, tj. dodatna uputstva za izvodjenje. Spisak osnovnih komandi sadrzi:
Ovaj kod znaci da se prvo kursor (kornjaca) pomera 100 LOGO jedinica unapred, zatim rotira za 90 stepeni udesno i takvu akciju ponavlja 3 puta, dok na kraju zavrsava pokretom 100 piksela unapred i docrtava zavrsnu liniju.
Ako smo nesto pogresili, mozemo ocistiti ceo ekran koriscenjem clearscreen naredbe, sto ce kornjacu vratiti u pocetnu poziciju takodje.
Primetili ste da se logo po fabrickim postavkama orijentisa ka gore pri funkciji forward. Ovo je posledica koriscenja XY koordinatnog sistema, u kome je X horizontalna, a Y vertikalna osa. Pocetna, centralna pozicija kornjace se nalazi u tacki (0,0), a u zavisnosti od kompajlera sirina moze biti ogranicena, najcesce na 255 jedinica.
Izrazi
Vec sam pomenuo da mozemo svaku naredbu uneti u novi red, ali to je moguce uciniti i iz istog reda koriscenjem izraza. Izrazi omogucuju unosenje vise naredbi i njihovih argumenata, razdvojenih praznim karakterom jedne za drugima u istom redu. Recimo da zelimo da rekonstruisemo prethodni primer, dovoljno je da unesemo sledecu liniju koda i pritisnemo ENTER.
Sada hajde da unesemo cs (clearscreen) kao poslednju naredbu u izrazu i pritisnemo ENTER.
Primeticete da se nista nije promenilo na ekranu, to je zato sto je logo toliko lagan sto se tice sistemskih resursa tako da u samo delicu sekunde zavrsava sve naredbe i tako i cisti sve na ekranu. Ovo vam govori da ce nekada vise redova dovesti do razlicith rezultata, tj. da su izrazi u nekim situacijama veoma korisni, a u nekima i
Kontrole Kornjace i Olovke
LOGO poseduje veliki broj naredbi za crtanje osim prethodno navedenih, a neke od korisnijih ukljucuju i :
Obrada Teksta
LOGO izmedju ostalog moze ispisati i tekst na ekranu, kao i isprazniti istoriju komandi. Glavna opcija ovde jeste naredba label, koja ispisuje zadati tekst u navedenom smeru. Zapamtite da morate pre teksta navesti jedan znak navoda, kao u primeru ispod, a u zavisnosti od rotacije kornjace tekst ce biti ispisan u razlicitim smerovima.
Ukoliko ipak zelite da ispraznite listu unesenih komandi, naredba cleartext, odnosno ct bez dodatnih argumenata obavlja taj posao.
Promenljive
Sve podatke, nas racunar cuva u odredjenim memorijskim prostorima, koji poseduju svoje adrese. Ove adrese, najcesce se zapisuju u vidu heksadecimalnog zapisa, te su brojevi poput 0x2A246F10 teski za pamcenje. Jedan metod olaksavanja, programeri su proizveli te u vidu tekstualnih imena mozemo zapisati tacnu adresu memorije. Ovakve strukture se zovu promenljive. Kada jednom kreiramo promenljivu, mozemo je pozivati po njenom imenu, koristiti je u daljem toku programa ili menjati njenu vrednost.
**U ovom delu tutorijala pa nadalje, preporucujem da instalirate MSWLogo koji mozete preuzeti ovde
Svaka promenljiva ima svoje ime i svoju vrednost. Oblik kreiranja promenljivih u LOGO-u se svodi na oblim make "naziv vrednost, gde vrednost mozemo zameniti celim brojem, brojem sa pokretnom tackom ili recju u obliku "rec. Primeri se nalaze ispod.
Ako pozelimo da neku od promenljivih ispisemo na ekranu, koristicemo naredbu print :promenljiva (pri pozivanju/referisanju promenljivih koristimo : ispred njenog naziva).
Aritmeticke Operacije sa Brojevima
LOGO takodje podrzava i cetiri osnovne aritmeticke operacije, kao i dosta naprednijih ali zasada vas necu mnogo zamarati time. Operatori se nalaze u oblicima + - * i / u znacenju sabiranja, oduzimanja, mnozenja i deljenja. Svaka od ovih moze se koristiti dodavanjem izmedju dve promenjive ili staticke vrednosti.
Neke od nekih naprednijih naredbi ukljucuju korenovanje, stepenovanje, kao i par logaritamskih operacija, ali vam je dovoljno da znate samo dve sqrt (kvadratni koren) i power (na stepen).
Ponavljanje (Petlje)
Svaki napredan programski jezik poseduje tzv. petlje, sto omogucava ponavljanje tj. iteracije veceg broja komandi. Recimo, za crtanje najobicnijeg kvadrata, 4 puta smo morali da ponovimo isti blok koda, da bismo ovo ubrzali tu je sema repeat broj [komande], gde broj menjamo celobrojnom vrednoscu, a komande jednim izrazom, kao sto je :
Moguce je i "gnezditi" petlje, te ponavljati ponavljanja kao sto je :
Sta je LOGO?
LOGO se danas smatra jednim od najlaksih i najjednostavnijih programskih jezika. Iako je veoma jednostavan i moze se ceo obraditi u samo 20-30 minuta, obradjuje neke od glavnih principa modernog programiranja, poput funkcija, promenljivih i izraza, koji su prisutni i u svim "velikim" jezicima.
LOGO je napravljen kao jezik namenjen da ljude nauci osnovne koncepte programiranja u LISP-u, ali je vec u ranim danima dobio paznju vecih masa i proglasen je samostalnim jezikom. Jos od svoje prve verzije, namena mu je bila ilustrovanje vektorske grafike putem koda, a svoju slavu je zadobio zahvaljujuci kornjaci koja upravlja rutu kursora. Prve digitalne verzije jezika koriscene su na Atari i Apple II Plus masinama, a izgled je do danas ostao isti u simuliranom DOS-u/Terminalu.
Koriscenje LOGO-a
Posto je jezik sam po sebi jednostavan, nije vam potrebna nikakva alatka osim web pretrazivaca za kompajliranje zadatog koda, iako postoje posebni interpretatori u vidu windows/mac os aplikacija. Jedan od web-based kompajlera koji ja preporucujem jeste Calormen Javascript, koji se moze pronaci na linku ovde.
Glavna radna povrsina u kojoj mozemo videti ilustrovanu kornjacu predstavlja prostor za kompajliranje, dok je mali prozor ispod nje tzv. komandna linija u kojoj cemo unositi izraze.
Osnovne Naredbe
Svaka komanda predstavlja naredbu koju kompajler prevodi i izvrsava je na ekranu. Komande se sastoje iz jedne reci, a mogu sadrzati i argumente, tj. dodatna uputstva za izvodjenje. Spisak osnovnih komandi sadrzi:
- forward - fd (napred)
- backward - bk (nazad)
- left- lt (rotiranje ulevo)
- right - rt (rotiranje udesno)
- clearscreen - cs (ciscenje ekrana)
Python:
fd 100
rt 90
fd 100
rt 90
fd 100
rt 90
fd 100
Ako smo nesto pogresili, mozemo ocistiti ceo ekran koriscenjem clearscreen naredbe, sto ce kornjacu vratiti u pocetnu poziciju takodje.
Primetili ste da se logo po fabrickim postavkama orijentisa ka gore pri funkciji forward. Ovo je posledica koriscenja XY koordinatnog sistema, u kome je X horizontalna, a Y vertikalna osa. Pocetna, centralna pozicija kornjace se nalazi u tacki (0,0), a u zavisnosti od kompajlera sirina moze biti ogranicena, najcesce na 255 jedinica.
Izrazi
Vec sam pomenuo da mozemo svaku naredbu uneti u novi red, ali to je moguce uciniti i iz istog reda koriscenjem izraza. Izrazi omogucuju unosenje vise naredbi i njihovih argumenata, razdvojenih praznim karakterom jedne za drugima u istom redu. Recimo da zelimo da rekonstruisemo prethodni primer, dovoljno je da unesemo sledecu liniju koda i pritisnemo ENTER.
Python:
fd 100 rt 90 fd 100 rt 90 fd 100 rt 90 fd 100
Python:
fd 100 rt 90 fd 100 rt 90 fd 100 rt 90 fd 100 cs
Kontrole Kornjace i Olovke
LOGO poseduje veliki broj naredbi za crtanje osim prethodno navedenih, a neke od korisnijih ukljucuju i :
- penup - pu ("dizanje olovke")
- pendown - pd ("spustanje olovke")
- hideturtle - ht (sakrivanje kornjace)
- showturtle - dt (prikazivanje kornjace)
- setpensize (promena velicine olovke)
- home (povratak u centar)
- setxy
Obrada Teksta
LOGO izmedju ostalog moze ispisati i tekst na ekranu, kao i isprazniti istoriju komandi. Glavna opcija ovde jeste naredba label, koja ispisuje zadati tekst u navedenom smeru. Zapamtite da morate pre teksta navesti jedan znak navoda, kao u primeru ispod, a u zavisnosti od rotacije kornjace tekst ce biti ispisan u razlicitim smerovima.
Python:
label "Ja kucam kod u LOGO-u!
Promenljive
Sve podatke, nas racunar cuva u odredjenim memorijskim prostorima, koji poseduju svoje adrese. Ove adrese, najcesce se zapisuju u vidu heksadecimalnog zapisa, te su brojevi poput 0x2A246F10 teski za pamcenje. Jedan metod olaksavanja, programeri su proizveli te u vidu tekstualnih imena mozemo zapisati tacnu adresu memorije. Ovakve strukture se zovu promenljive. Kada jednom kreiramo promenljivu, mozemo je pozivati po njenom imenu, koristiti je u daljem toku programa ili menjati njenu vrednost.
**U ovom delu tutorijala pa nadalje, preporucujem da instalirate MSWLogo koji mozete preuzeti ovde
Svaka promenljiva ima svoje ime i svoju vrednost. Oblik kreiranja promenljivih u LOGO-u se svodi na oblim make "naziv vrednost, gde vrednost mozemo zameniti celim brojem, brojem sa pokretnom tackom ili recju u obliku "rec. Primeri se nalaze ispod.
Python:
make "rec "kompjuter
Python:
make "ceo_broj 12
Python:
make "polovina 0.5
Python:
print :polovina
LOGO takodje podrzava i cetiri osnovne aritmeticke operacije, kao i dosta naprednijih ali zasada vas necu mnogo zamarati time. Operatori se nalaze u oblicima + - * i / u znacenju sabiranja, oduzimanja, mnozenja i deljenja. Svaka od ovih moze se koristiti dodavanjem izmedju dve promenjive ili staticke vrednosti.
Python:
make "zbir :vrednost1 + :vrednost2
Python:
print 2 * 5
Python:
print sqrt 2
Python:
print power 10 3
Svaki napredan programski jezik poseduje tzv. petlje, sto omogucava ponavljanje tj. iteracije veceg broja komandi. Recimo, za crtanje najobicnijeg kvadrata, 4 puta smo morali da ponovimo isti blok koda, da bismo ovo ubrzali tu je sema repeat broj [komande], gde broj menjamo celobrojnom vrednoscu, a komande jednim izrazom, kao sto je :
Python:
repeat 4 [rt 90 fd 40]
Python:
repeat 4 [fd 20 repeat 4[rt 90 fd 40]]