Lär barn att koda med BBC BASIC

Under 1980-talet var Storbritannien en av världens mest datorkunniga nationer, och en del av anledningen var BBC:s ambitiösa beslut att investera i en dator som skulle åtfölja en serie tv-program. Den datorn blev känd som BBC Micro, och språket som den hjälpte till att lära ut miljontals människor var ”Beginners All-purpose Symbolic Instruction Code” (BASIC).

BASIC, som fanns på de flesta hemdatorer på den tiden, hade redan funnits ett tag och designades för att vara lätt att använda. När BBC beställde sin dator beställde den också en uppdaterad version som var designad för att vara så tillgänglig som möjligt för nybörjare.

Idag finns det en version för Windows som för språket in i 2000-talet, komplett med möjligheten att komma åt avancerade Windows-funktioner. Alternativt ladda ner en BBC Micro-emulator.

Även om BASIC kanske inte är så modernt som det en gång var, gör dess enkelhet det till ett bra ställe att börja lära sig koda, och i synnerhet BBC BASIC lägger till användbara förbättringar som finns på mer moderna språk. Det finns också andra versioner av BASIC som kan användas för att skriva appar för Android, Windows, Linux, Mac och snart iPhone – så att plocka upp det väsentliga med BBC BASIC kan ge en solid grund.

Låt oss titta på ett mycket enkelt BASIC-program; detta frågar bara ditt namn, och när du skriver in det säger du ”hej” tillbaka:

10 INGÅNG ”Vad heter du?” A$
20 SKRIV UT ”Hej” A$. ”Hur mår du?”

BBC emulator

Observera att i äldre versioner av BASIC, inklusive den ursprungliga BBC, hade varje rad ett nummer; som inte krävs i nyare versioner.

Kommandon är alltid med stora bokstäver; INPUT talar om för datorn att fråga användaren om information, med meddelandet inom citattecken, och lagrar det sedan i variabeln som kallas A$. $ betyder att det är en sekvens av bokstäver snarare än en siffra. Nästa rad visar vad som än skrevs in, omgiven av ”Hej” och ”Hur mår du?” Skriv in detta i BBC Micro-emulatorn, skriv sedan RUN, tryck på retur och du har ett enkelt program.

Upprepning och beslutsfattande är hjärtat i många datorprogram. Här är ett exempel på en BASIC-begäran om att skriva ut tidtabeller, som slutar när användaren anger noll:

UPPREPA
MATTA ”VILKEN TIDER TABELL?” X %
FÖR I% = 1 TILL 12
SKRIV UT I% ” TIMES ” X% ” = ” I%*X%
NÄSTA
TILL X% = 0

Vi har missat radnumren här; om du använder en riktig BBC Micro, eller BeebEm, skriv in ”AUTO” först för att lägga till radnumren och tryck på Esc när du är klar.

Där våra variabler slutade med en $ innan, här har de en %; det betyder att de är heltal. Använd ingendera och BBC BASIC antar att det är ett decimaltal. REPEAT…UNTIL är ett av de användbara tilläggen i BBC BASIC, men det finns också andra sätt att fatta beslut. Försök till exempel att lägga till den här raden efter vår INPUT (i BeebEm, lägg till den som rad 25):

OM X% = 0 SÅ AVSLUTA

Programmet kommer att stoppa innan du skriver ut tabellen 0 gånger, vilket är snyggare. Eller försök att ändra det till nedan och se vad som händer:

OM X% = 0 SÅ AVSLUTA ANDERS SKRIV UT ”FUNGERAR…”

Två andra användbara verktyg i BBC BASIC är funktioner och procedurer; dessa låter dig skapa lite kod som du kan använda om och om igen. Prova denna temperaturkonverteringskod (skriv ”NEW” för att radera ditt gamla program, eller välj bara Arkiv | Nytt i BBC BASIC för Windows):

FÖR I% = 0 TILL 100 STEG 10
SKRIV UT I% ”C=” FN_CTOF(I%)
NÄSTA
SLUTET
DEF FN_CTOF(X)
=((X+40)*9/5)-40
SLUT DEF

Kommandot DEF FN låter oss definiera vår egen funktion. Vi säger till den att den kommer att ges ett värde, ”X”, och raden som börjar ”=” säger vilket värde vi returnerar, med parenteser för att se till att summorna görs i rätt ordning.

Gör en temperaturomvandlare med grafik i BBC BASIC

Här tittar vi på ett mer komplext exempel, med BBC BASIC för Windows – koden är nedan, eller så kan du få koden här.

LÄGE 6
FÖR I% = 400 TILL 0 STEG -25
GCOL I%/25
CIRKELFYLLNING 640 500,1 %
NÄSTA
SLUTET

Det finns speciella kommandon för att rita grafik också; uppsättningen cirklar på bilden till vänster är ritade med enkel kod – den klistras in nedan, eller så kan du ta den här för att se rätt indrag – där vi måste skapa de små cirklarna sist, ovanpå de stora.

LÄGE 6
UPPREPA
INPUT TAB(0,0) “Konvertera från C ” C
F = FN_CTOF(C)

CLG
GCOL 1
PROC_TEMPGRAPH(100;1)
GCOL 2
PROC_TEMPGRAPH(25,1)
GCOL 6
PROC_TEMPGRAPH(16,1)
GCOL 15
PROC_TEMPGRAPH(C,0)

PRINT TABB(0,23) F ” grader Fahrenheit”
TILL C = 0
SLUTET

DEF FN_CTOF(X)
=((X+40)*9/5)-40
SLUT DEF

DEF PROC_TEMPGRAPH(T,F)
R = T/100*400
OM F = 0 DÅ
CIRKEL 640 500,R
ANNAN
CIRKELFYLLNING 640 500,R
ENDIF
ENDPROC

Du kan till och med bygga appar som använder en mus och 3D-grafik – saker som inte fanns när BBC Micro först dök upp!

Steg ett: Få temperaturen

I den här koden använder vi en REPEAT…TILL-slinga för att be användaren om en temperatur, tills de anger 0, och vår funktion för att konvertera den till Fahrenheit. Genom att lägga till TAB (0,0) i INPUT-satsen och (0,23) i PRINT, styr vi var texten visas på skärmen. Låt oss nu lägga till lite grafik.

Steg ett

Steg två: Lägg i formeln

Använd DEF PROC för att lägga till en procedur; det vill säga kod vi återanvänder. Vår första parameter kommer att vara temperatur, som vi använder för att beräkna radien. Om tvåan är 0 så ritar vi bara konturen av en cirkel. BBC BASIC för Windows låter dig ha en IF … THEN … ELSE som sträcker sig över flera rader, som denna.

Steg 2

Steg tre: Lägg till färg

I vår huvudkod ställer vi in ​​färgen för grafik med kommandot GCOL; 1 är rött, 2 är grönt, 6 är cyan. Vi kallar vår TEMPGRAPH proc för att rita cirklar för varje, som representerar för varmt, mysigt och för kallt. Till exempel betyder PROC_TEMPGRAPH(25,1) här att den kommer att fylla cirklarna från 1 till 25 med rött.

Steg 3: lägg till färg

Steg fyra: Starta testet

Den sista PROC_TEMPGRAPH(C,0) som ses i steg 3 lägger till en tunn vit linje för att visa var vår temperatur sitter i cirkeln. Så inom loppet av cirka 30 rader kod har vi skapat en temperaturomvandlare som också ger en grafisk uppfattning om hur varm eller kall varje temperatur är. Träffa nu!

Steg fyra

Lämna en kommentar

Din e-postadress kommer inte publiceras.