ŠKOLA: Small Basic

U ovom broju počinjemo sa predstavljanjem programskog jezika Small Basic.

Small Basic je projekat koji čini programiranje izuzetno jednostavnim, prijemčivim i zabavnim za početnike. Idealan kako za djecu tako i za odrasle, pomaže im da pomoću njega zakorače u čarobni svijet programiranja. Inspiracija za Small Basic dolazi iz originalnog Basic programskog jezika, a zasniva se na microsoft.net platformi. Small basic sadrži svega 15 ključnih riječi, „intellisense“ pomoć pri kucanju koda i mogućnost uključivanja dodatnih biblioteka.

Small Basic možete besplatno skinuti i instalirati sa sljedećeg linka.

Okruženje

Poslije startovanja programa, pojaviće se sljedeći prozor.

Ovo okruženje sadrži 3 elementa označena na slici brojevima.

1. Editor – gdje pišemo naš Small Basic program. Ako otvorite postojeći program on će se naći ovdje, možete ga naravno izmjeniti i snimiti izmjenjenu verziju.

Moguće je otvoriti i više programa istovremeno i svaki će program biti prikazan u drugom editoru. Onaj editor unutar kojeg trenutno radite zvaće se aktivnim editorom.

2. Toolbar – koji sadrži komande vezane kako za aktivni editor, tako i za sam program. O svakoj komandi biće više riječi kako budemo imali potrebe da ih koristimo u daljem radu.

3. Surface – površina unutar koje se svi editori nalaze.

Hello World

Sad kad smo bar malo upoznati sa programskim okruženjem, krećemo sa programiranjem.

Počinjemo sa najjednostavnijim programom, početnim u učenju svakog programskog jezika, koji će nam ispisati pozdravnu rečenicu „Hello World“.

U editoru otkucajmo sljedeću liniju koda:

Tokom kucanja koda, primjetićete da se pojavljuje pomoćni balon („intellisense“) dok kucate. Unutar njega se nude naredbe ili klase ili promjenljive koje započinju sa slovima koje ste već otkucali, a ukoliko je tu baš ona koja vam treba dovoljno je sa strelicama up i down da je selektujete i pritisnete Enter. To može biti velika pomoć i zbog bržeg kucanja koda, a i smanjenja grešaka u kucanju naziva naredbi, klasa i promjenljivih.

Potom idite na Run (ili pritisnite taster F5) i rezultat bi trebao da bude sljedeći:

Mala analiza programa:

Program se sastoji iz svega jedne rečenice, a unutar te rečenice nalaze se 3 različita segmenta:

1. TextWindow – objekat gdje će se rezultat naredbe nalaziti, u ovom slučaju konzola, crni prozor u kome je ispisano „Hello World“

2. WriteLine – naredba kojom se ispisuje neki text na objektu koji je prije toga naveden (kao sad na TextWindow-su), a potom se kursor pomjera u novi red konzole. Postoji i naredba Write gdje nakon ispisa teksta kursor ostaje u istom redu, pozicioniran iza posljednjeg ispisanog znaka.

3. „HelloWorld“ – string, tekst, skup znakova koji se nalaze u argumentu naredbe WriteLine, to jest, onaj tekst koji će biti ispisan. Ovo se naziva input-om naredbe. Neke naredbe mogu imati više argumenata ili input-a, a neke nemaju niti jednog.

Kada program ispišete i izvršite, možete ga sačuvati. To možete učiniti i u bilo kom drugom trenutku, uobičajenim klikom na Save ili preko tasture prečicom „Ctrl+S“ i imenovati ga kako želite prvog puta, a kasnije ako želite sačuvati izmjene kao novu verziju ići ćete na „Save As“, uostalom kao i u svakom drugom programu.

Rad sa promjenljivima

Izmjenimo prethodni primjer tako što ćemo napraviti pozdravnu poruku za onog ko startuje program. Ime korisnika ćemo čuvati u promjenljivoj ime, a sam korisnik će ga na početku unijeti. U ovom primjeru koristi se i naredba Read koja učitava u program ono što korisnik ukuca (dok ne pritisne enter). U ovom slučaju se pomoću naredbe Read ime koje korisnik ukuca u TextWindow-su smješta u promjenljivu ime.

Ukucajte sljedeće u editor:

Startujte (Run), upišite vaše ime i pritisnite enter:

Rezultat:

Analiza programa liniju po liniju:

Prva linija (TextWindow.Write(“Unesite Vaše ime : ”)) je već jasna na osnovu urađenog do sad. U TextWindow-su se ispisuje rečenica “Unesite Vaše ime”.

U drugoj liniji (ime = TextWindow.Read()) se pojavljuje maloprije pominjana naredba Read, ali tu je i prvo pojavljivanje promjenljive ime i naredbe dodijeljivanja “=”. Naime, promjenljiva predstavlja mjesto gdje možete privremeno smjestiti neku vrijednost i koristiti je kasnije. U ovom slučaju promjenljiva ime služi za čuvanje imena korisnika. Naredba dodijele smiješta vrijednost sa desne strane u promjenljivu sa lijeve strane znaka “=”. Sa desne strane može stajati i izraz, naredba ili funkcija koje vraćaju neku vrijednost. U ovom slučaju u promjenljivu ime smještamo ime koje je korisnik unio preuzeto naredbom Read.

U trećoj liniji vrši se prikaz u TextWindow-su već u programu fiksirane riječi “Zdravo” i na tu riječ nadovezane vrijednosti iz promjenljive ime. Nadovezivanje više stringova vrši se uz pomoć naredbe konkatenacije tj., pomoću znaka “+”. Fiksirani stringovi se upisuju u argumentu naredbe WriteLine između znakova navoda, a znak konkatenacije i promjenljive se pišu bez znakova navoda.

Pravila za imenovanje promjenljivih

1. Ime mora početi slovom i ne smije se poklapati sa imenima ključnih riječi (poput if, while, for, …)

2. Ime može sadržati kombinaciju slova, cifri i znaka “_”.

3. Imena bi trebala biti smislena, da na neki način opisuju koje vrijednosti promjenljiva čuva.

Brojevi

Upotrebu brojeva prikazaćemo na primjeru sabiranja i množenja kompleksnih brojeva.

Osnovne operacije sa brojevima su sabiranje, oduzimanje, množenje i dijeljenje, a njihove oznake u Small Basic-u su redom “+”, “-”, “*” i “/”.

Program je sljedeći:

Rezultat je:

Primjetićete u ovom primjeru da ukoliko je imaginarni dio negativan broj, nema opcije da se tada imaginarni dio piše u zagradi, jer bi nam u tom slučaju trebala naredba koja slijedi.

Uslovna naredba IF

Analizirajmo sljedeći program koji računa površinu trougla na osnovu dužina svih stranica (Heronov obrazac).

Rezultat:

Da bismo izračunali površinu trougla, prvo ispitujemo da li se od upisanih dužina stranica može konstruisati trougao, tj. da li je zadovoljeno to da je zbir svake dvije stranice veći od treće stranice.

Ukoliko je to zadovoljeno onda računamo površinu, a ukoliko nije ispisujemo da je takav trougao nemoguće konstruisati. Tu nam se pojavljuje logički operator And (konjunkcija) koji nam govori da moraju biti tačni svi navedeni iskazi da bi izračunali površinu. Osim njega u Small Basic-u koriste se i logički operatori Or i Not (disjunkcija i negacija).

Takođe se u primjeru pojavljuje i metoda SquareRoot iz matematičke klase Math koja računa kvadratni korijen nekog broja. Na ovom linku možete pronaći sve metode klase Math.

Osnovna struktura If naredbe:

If (uslov) Then
    (naredbe)
Else
    (naredbe)
End If

Složena struktura:

If (uslov) Then
   (naredbe)
ElseIf
   (naredbe)
...

ElseIf
   (naredbe)
Else
   (naredbe)
End If

Napomena: Naredbe obavezno treba pisati u novim linijama, jednu ispod druge, a preporuka je i da se blok naredbi radi preglednosti uvuče u odnosu na liniju sa uslovom iznad.

Primjer korišćenja složene strukture If naredbe:

Rezultat je:

U ovom primjeru, na osnovu upisanog odgovora na postavljeno pitanje odlučuje se da li je odgovor tačan ili ne i prikazuje taj rezultat. Koristimo funkciju If koja ispituje da li vrijednost promjenljive odgovor zadovoljava uslove tačnog odgovora (ukoliko je to slovo “b” ili “B”) ili netačnog odgovora (ukoliko je to slovo “a” ili “A”) ili je unesen neki drugi znak.

Pogledajmo sad program za sabiranje i množenje kompleksnih brojeva iz prethodnog poglavlja izmijenjen uz pomoć If naredbe:

TextWindow.WriteLine("Kompleksni brojevi")

TextWindow.Write("Unesite realni dio prvog kompleksnog broja: ")
re1 = TextWindow.Read()

TextWindow.Write("Unesite imaginarni dio prvog kompleksnog broja: ")
im1 = TextWindow.Read()

If (re1=0) Then 
   prvi = ("Prvi broj je: ")
Else 
   prvi = ("Prvi broj je: "+ re1 +" + " ) 
EndIf

If (im1<0) Then
   TextWindow.WriteLine(prvi + " ("+ im1+")i.")
ElseIf (im1=0) And (re1=0) Then
   TextWindow.WriteLine(prvi + "0.")
ElseIf (im1=0) Then
   TextWindow.WriteLine( prvi + "0i.")
Else 
  TextWindow.WriteLine( prvi + im1+"i.")
EndIf

 TextWindow.Write("Unesite realni dio drugog kompleksnog broja: ")
re2 = TextWindow.Read()
TextWindow.Write("Unesite imaginarni dio drugog kompleksnog broja: ")
im2 = TextWindow.Read()

If (re2=0) Then 
   drugi = ("Drugi broj je: ")
Else 
   drugi = ("Drugi broj je: "+ re2 +" + " ) 
EndIf

If (im2<0) Then
   TextWindow.WriteLine(drugi + "("+ im2+")i.")
ElseIf (im2=0) And (re2=0) Then
   TextWindow.WriteLine(drugi + "0.")
ElseIf (im2=0) Then
   TextWindow.WriteLine( drugi + "0i.")
Else 
   TextWindow.WriteLine( drugi + im2+"i.")
EndIf

zbir_re = re1+re2
zbir_im = im1+im2
proizvod_re = re1*re2-im1*im2
proizvod_im = im2*re1+re2*im1

If (zbir_re=0) Then 
   zbir = ("Zbir ova dva broja je ")
Else 
   zbir = ("Zbir ova dva broja je "+ zbir_re +" + " )
EndIf

If (zbir_im<0) Then
   TextWindow.Write( zbir +"("+ zbir_im +")i , ")
ElseIf (zbir_im=0) And (zbir_re=0) Then
   TextWindow.Write(zbir + "0, ")
ElseIf (zbir_im=0) Then
   TextWindow.Write(zbir + "0i, ")
Else
   TextWindow.Write(zbir + zbir_im +"i , ")
EndIf

If (proizvod_re=0) Then 
   proizvod = ("a njihov proizvod je ")
Else 
   proizvod = ("a njihov proizvod je "+ proizvod_re +" + " )
EndIf

If (proizvod_im<0) Then
   TextWindow.WriteLine( proizvod +"("+ proizvod_im +")i.")
ElseIf (proizvod_im=0) And (proizvod_re=0) Then
   TextWindow.WriteLine(proizvod + "0. ")
ElseIf (proizvod_im=0) Then
   TextWindow.WriteLine(proizvod+ "0i.")
Else
   TextWindow.WriteLine(proizvod + proizvod_im +"i.")
EndIf

I rezultat:

Ovo bi bilo sve za ovaj broj, a u sljedećem nastavku će biti govora o petljama, nizovima, matricama, a počećemo se upoznavati i sa grafikom.

Za kraj pozdraviću vas sve jednostavnim, a zanimljivim programom koji će vam sa novinama iz sljedećeg broja biti u potpunosti jasan. Poigrajte se crtajući po ovoj virtuelnoj školskoj tabli i razmislite o kodu.

GraphicsWindow.BackgroundColor = "DarkGreen"
GraphicsWindow.PenColor = "White"
GraphicsWindow.MouseDown = OnMouseDown
GraphicsWindow.MouseMove = OnMouseMove

Sub OnMouseDown
   prevX = GraphicsWindow.MouseX
   prevY = GraphicsWindow.MouseY
EndSub

Sub OnMouseMove
   x = GraphicsWindow.MouseX
   y = GraphicsWindow.MouseY

   If (Mouse.IsLeftButtonDown) then
      GraphicsWindow.DrawLine(prevX, prevY, x, y)
   endif
   
   prevX = x
   prevY = y
EndSub

Ovaj unos je objavljen pod Drugi broj. Zabeležite stalnu vezu.

3 reagovanja na ŠKOLA: Small Basic

  1. Srđa kaže:

    Super Ješko, uželio sam se Basica još od Commodore64! Postoji li u njemu neki konvertor u .exe?

  2. Jelena kaže:

    Sam izgenerise .exe fajl kad ga iskompajliras.🙂 Skini, pa probaj.

  3. Apceh kaže:

    Moras da sacuvas program pa F5 i onda u folder gde si sacuvao fajl tu se pojave novi dll-ovi i ostale stvari.

Ostavite odgovor

Popunite detalje ispod ili pritisnite na ikonicu da biste se prijavili:

WordPress.com logo

Komentarišet koristeći svoj WordPress.com nalog. Odjavite se / Promeni )

Slika na Tviteru

Komentarišet koristeći svoj Twitter nalog. Odjavite se / Promeni )

Fejsbukova fotografija

Komentarišet koristeći svoj Facebook nalog. Odjavite se / Promeni )

Google+ photo

Komentarišet koristeći svoj Google+ nalog. Odjavite se / Promeni )

Povezivanje sa %s