Basic programma's
Iedereen die een standaard Windows 3.x of 9.x, zelfs Windows NT-installatie heeft, heeft ook het programma Qbasic. Het staat niet noodzakelijk op je harde schijf, dan wel op de CD-rom (directory "oldmsdos").
Eigenlijk is Qbasic een trage
compiler, maar niet moeilijk om aan te leren. De mogelijke
commando's, inclusief een voorbeeldje per commando: de 'F1'- toets indrukken graag. Eens de code
ingetypt, moet je op 'F5'
drukken om het programma te starten. Persoonlijk gebruik ik
liever PowerBasic, omdat deze compiler razendsnel is - ongeveer 6
keer sneller in uitvoering dan Qbasic. En Powerbasic stelt mij in
staat om exe-bestanden te compileren. Natuurlijk is PowerBasic
niet gratis, en Qbasic wel. Overigens kan je bas-programma's
automatisch laten opstarten, bvb. vanuit een batch-bestand, door
het commando:
"qbasic /run (pad\naar\naam.bas)".
Ik geef enkele voorbeelden van kleine programma's.
Ascii.bas
Zet de gehele ascii-tabel op het scherm. Al
de 256 karakters. 7 lijntjes code zijn hiervoor voldoende.
Wat je ziet na het ' tekentje, is enkel commentaar, en wordt door
qbasic genegeerd. Uiteraard hoef je de commentaar niet te typen.
cls 'scherm vrijmaken
for j = 0 to 15 'openen van een lus van 16 stappen
for i = 0 to 15 'idem tweede lus
locate i+6,((j+1)*4+4):print chr$((j*16)+i) 'zet ascii-teken op scherm
next i 'sluit tweede lus
locate j+6,1:print j: locate 4,((j+1)*4+3):print j*16 'zet de nummering op het scherm
next j 'sluit eerste lus
Concen.bas:
Eenvoudig programma, dat bewegende (uitdeinende) concentrische cirkels op het scherm zet. De lijn met het commando "circle (coördinaat middelpunt hor,ver), straal, kleur" is de hoofdbrok die alles doet.
SCREEN 12: DEFINT A-Z: j =
60
DO
j = j + 1: IF j = 6060 THEN LET j = 60
FOR i = 0 TO 60CIRCLE (320, 240), i * 2, 1 + (j - i) MOD 15
NEXT i
LOOP WHILE INKEY$ =
""
Stars.bas:
Toont een scherm met een sterrenbeeld, dat verschuift en verspringt. Het programma stopt als je op de (Esc) toets drukt.
DEFINT A-Z: SCREEN 12: RANDOMIZE TIMER: CLS
DIM whitehor(1 TO 200), whitever(1 TO 200), greyhor(1 TO 200), greyver(1 TO 200)
FOR i = 1 TO 200
whitehor(i) = (RND * 640): greyhor(i) = (RND * 640)
whitever(i) = (RND * 480): greyver(i) = (RND * 480)
NEXT i
DO
Y = (Y + 1) mod 2000 : Z = (Z + 1) mod 480
if Y>500 and Z>240 then a=0 : b=1
if Y>500 and Z<240 then a=1 : b=1
if Y>1000 and Z>240 then a=-1 : b=0
if Y>1000 and Z<240 then a=-1 : b=1
if Y>1500 and Z<240 then a=0 : b=-1
if Y>1500 and Z>240 then a=-1 : b=-1
if Y<500 and Z<240 then a=1 : b=0
if Y<500 and Z>240 then a=1 : b=-1FOR i = 1 TO 200
PRESET (whitehor(i), whitever(i)): PRESET (greyhor(i), greyver(i))
whitehor(i) = (640 + whitehor(i) + a * 2) MOD 640
greyhor(i) = (640 + greyhor(i) + a) MOD 640
whitever(i) = (480 + whitever(i) + b * 2) MOD 480
greyver(i) = (480 + greyver(i) + b) MOD 480
COLOR 15: PSET (whitehor(i), whitever(i))
COLOR 7: PSET (greyhor(i), greyver(i))NEXT i
LOOP WHILE INKEY$ <> CHR$(27)