Introduksjon til Microsoft Small Basic

Av G.O. Forsland for Lær Kidsa Koding Rælingen (LKK.r) 2014

Sammen med dette dokumentet kan det være lurt å titte på Programmerenes ordbok. Ord og uttrykk som er beskrevet der, vil bli benyttet uten forklaring i denne introen.

Inspirasjon og bilder til dette dokumentet er hentet fra Small Basic Portal Wikien hvor man kan finne samme informasjon i mer utdypet form, men da på Engelsk.

Installere og starte

Small Basic er ett forenklet, men fullverdig, programmeringsspråk beregnet på nybegynnere. Programmeringspråket er gratis og kan lastes ned her: http://smallbasic.com/ Det kreves at .Net Framework 3.5.1 er installert på din PC. Mangler du denne så finner du den her: http://www.microsoft.com/en-us/download/details.aspx?id=22

Når programmet er installert og startet, ser miljøet slik ut:

  1. Editoren: Her skriver du din kode.
  2. Verktøylinje
  3. Hjelp: Mens man skriver kode vil hjelpeinformasjon automatisk dukke opp i dette vinduet.

Skrive kode

Koden skriver man i editoren hvor en fin code insight funksjon hjelper oss å fullfør ordet vi har begynt å skrive.

Hvis dette vinduet ikke dukker opp eller blir borte igjen kan man trykke Ctrl+Mellomrom for å få de frem igjen.

Ønsker man å skrive “noe” ut på skjermen. så kan man kanskje tippe at ett objekt som heter noe med Text<?> kan benyttes. Skriver man de de førte to bokstavene dukker code insight vinduet opp hvor man kan trykke pil ned to ganger for å finne TextWindow objektet.

Ett objekt har egenskaper og metoder som vi kan sette eller kjøre. For å nå disse skriver man ett punktum etter objektnavnet, og da hjelper code insight oss på nytt ved å vise oss en liste over hva vi kan velge mellom. Vi bruker pilen igjen og velger WriteLine:

WriteLine er en prosedyre som tar ett input parameter som er teksten vi ønsker å skrive. Parametere ramses opp innenfor parenteser på slutten av prosedyrekall. I Small Basic skiller man tekst fra f.eks. tall ved å doble fnutter rundt teksten man skal skrive. Koden vår ser nå slik ut:

TextWindow.WriteLine("Hei verden")

Objekter

I forrige avsnitt benyttet “noe” eller “en ting” som i dette tilfellet var et tekst vindu. Fellesbetegnelse for slikt “ting” innenfor programmering er objekter. Ett objekt har metoder ala prosedyren WriteLine og egenskaper man kan sette.

Egenskaper man setter påviker metoder man kjører etter at man satt dem.

Eksempel:

TextWindow.WriteLine("Hei verden")

TextWindow.BackgroundColor = "White"

TextWindow.ForegroundColor = "Red"

TextWindow.Title = "Lær kidsa koder - Rælingen"

TextWindow.CursorTop = 5

TextWindow.CursorLeft = 30

TextWindow.WriteLine("Hei igjen verden")

TextWindow.CursorTop = 10

TextWindow.BackgroundColor = "Black"

I eksemplet utvider vi programmet med å sette noen objektegenskaper før vi skriver en ny tekst. resultatet ser slik ut:


Rutiner

Ruiner eller subrutiner er det samme som metoder, bortsett fra at de ikke er knyttet til ett objekt. I Smal Basic så oppretter man egne rutiner på følgende måte:

Sub MinSletteRutine

  <skriv din kode her…>

EndSub

Rutiner bruker man når samme kode skal benyttes flere ganger.

Hendelser (Events)

Ett objekt kan ha definerte hendelser som man kan knytte kode til. Den mest vanlige eventen er OnMouseDown som kjøres hver gang noen klikker på objektet. Man knytter kode til hendelser ved å definere en rutine og sette navnet på denne rutina til hendelsen til objektet. Se eksempel under oppgaven nedenfor.


Oppgave

Fasit på oppgave 3 og 4 finnes på enste side, men forsøk først å løse oppgaven på egenhånd.

1. Installer Small Basic

Installer Small Basic på din PC og skriv noe i ett tekst vindu. Lagre prosjektet og kjør det. Forsøk å kjøre kompilert .exe fil som ble opprettet katalog hvor du lagret prosjektet.

2. Teste MoveObjects.sb demoen

Denne demoen ligger under \samples katalogen, men er svært enkelt så man kan liker gjerne lage ett nytt prosjekt og kopiere inn koden:

 = Shapes.AddRectangle(200, 100)

GraphicsWindow.MouseDown = OnMouseDown

Sub OnMouseDown

  x = GraphicsWindow.MouseX

  y = GraphicsWindow.MouseY

  Shapes.Animate(ball, x, y, 1000)

EndSub

Kjør programmet å se hvordan det fungerer. Forøsk endre noen av input parameterne.

3. Legg til kode for å snu rektangelet

Tips 1:         Se hvordan rutina som animerte flytting ble brukt. Det finnes en rutine som tilsvarer Animate som heter Rotate.

Tips 2:         Du kan utfør koden i en ny rutine som du knytter til hendelsen GraphicsWindow.KeyUp

4. Roter til en tilfeldig vinkel hver gang koden kjøres

Denne oppgaven benytter seg av en rutine som ligger i en ekstern unit som heter Math. I Small Basic inkluderer man en unit ved å skrive <unit navnet> + punktum + <rutinenavnet> slik som dette:

Math.GetRandomNumber(360)


Fasit

ball = Shapes.AddRectangle(200, 100)

GraphicsWindow.MouseDown = OnMouseDown

GraphicsWindow.KeyUp = OnKeyUp

Sub OnMouseDown

  x = GraphicsWindow.MouseX

  y = GraphicsWindow.MouseY

  Shapes.Animate(ball, x, y, 1000)

EndSub

Sub OnKeyUp

  Shapes.Rotate(ball,Math.GetRandomNumber(360))  

EndSub