Site hosted by Angelfire.com: Build your free website today!
undefined
undefined

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 60

CIRCLE (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=-1

FOR 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)


Suggesties?