Basic Quellcode

Wechseln zu: Navigation, Suche

[Bearbeiten] QBasic Quellcode

Dieses ist ein schönes Beispiel für den Zufallsgenerator (RND), meint Random. Als Bemerkung, Qbasic kommt schon ohne Zeilennummern aus, aber es geht auch mit. Beim Basic ist das Früher so gewesen, das das Eingeben des AUTO Befehls ausreichte um nach jedem Enter(Return), automatisch eine neue Zeilennummer zu erhalten. Eines muss ich noch erwähnen, mein Erster Rechner hatte nur 1k Ram, aus diesem Grund hab ich die Kommentar Zeilen weck gelassen. Ab C , C++..... u.s.w. sind sie schon erforderlich um den Überblick zu behalten. Ein weiterer Grund ist, das andere Programmierer sich schneller einlesen können um den Quellcode zu nutzen.

Das Programm QBasic findet man auf der InstallCD Win98. Wenn man die CD öffnet, befindet sich dort ein Ordner der den Namen "tools" hat und in diesem, ein Ordner mit dem Namen "oldmsdos". Das Programm besteht aus 2 Dateien, QBasic.exe und die dazugehörende Hilfe Datei. Man kopiert die beiden Dateien einfach auf die Festplatte und kann die QBasic.exe einfach Starten. Das Programm lauft auch unter WinXP.


10 CLS : CONST pi = 3.141592654#: n = 315: m = 235: y = 630: x = 480

20 SCREEN 12: RANDOMIZE TIMER

30 a = n: b = m

40 r = INT(RND(1) * 4) + 1: s = INT(RND(1) * 16) + 1: d = INT(RND(1) * 40)

50 IF r = 1 AND b - 2 * d < 0 THEN r = 3

60 IF r = 2 AND a + 2 * d > y THEN r = 4

70 IF r = 3 AND b + 2 * d > x THEN r = 1

80 IF r = 4 AND a - 2 * d < 0 THEN r = 2

90 IF r = 1 THEN b = b - d

100 IF r = 2 THEN a = a + d

110 IF r = 3 THEN b = b + d

120 IF r = 4 THEN a = a - d

130 CIRCLE (a, b), d, s

140 PAINT (a, b), s

150 IF INKEY$ = CHR$(27) THEN GOTO 170

160 GOTO 40

170 END




und noch ein Programm für Fortgeschrittene


10 SCREEN 12: CONST pi = 3.141592654#: a = 200: b = 120: c = 440: d = 360

20 CLS : RANDOMIZE TIMER: m = ((c - a) / 2) + a: n = ((d - b) / 2) + b

40 r = 100: s = r / 4: g = 0: k = 0: l = 0: i = 0: lr = 1

50 q = INT(SQR((s * s) + (s * s))): t = q * 2 / 12: e = m - q: f = n - q

60 h = q * 2

70 PRINT "Stop mit ESC"

80 REM 3D Kugel

90 IF k = 0 THEN k = 1 ELSE k = 0

100 IF k = 1 THEN l = 3

110 IF k = 0 THEN l = 0

120 o = e: u = f: g = 0: rou = r * SIN(g * pi / 180)

130 rr = r * SIN(g * pi / 180)

140 LINE (e + rr * COS(i * pi / 180), f + rr * SIN(i * pi / 180))-(o + rou * COS(i * pi / 180), u + rou * SIN(i * pi / 180)), l

150 i = i + 15

160 IF i = 360 THEN GOTO 170 ELSE GOTO 140

170 CIRCLE (e, f), rr + 1, l

180 j = rr

190 i = 0: rou = rr: o = e: u = f: e = e + (j / 24): f = f + (j / 24): g = g + 7.5

200 IF g = 90 AND k = 1 THEN l = 15

210 IF g = 187.5 THEN GOTO 220 ELSE GOTO 130

220 h = q * 2: e = m - q: f = n - q: g = 0: o = e: u = f: j = 0

230 IF k = 1 THEN GOTO 80

240 IF r <= 10 THEN lr = 2

250 IF r >= 200 THEN lr = 1

260 IF lr = 1 THEN r = r - 10

270 IF lr = 2 THEN r = r + 10

280 IF INKEY$ = CHR$(27) THEN GOTO 290 ELSE GOTO 80

290 END



[Bearbeiten] Neuerer QBasic Quellcode

Dieses ist nun ein wenig neuartiger QuellCode von QBasic, wo die altertümlichen Zeilennummern nicht mehr verwendet sind. Dieses Programm soll folgendes veranschaulichen, das es sich Lohnt, sparsame aber sinnige Kommentare zu verwenden. Auch die Variablen sind sinnvoll überlegt. Dieses bischen Schreibarbeit zahlt sich wirklich aus, wenn man sich vorstellt, das das Schreiben des Programm's lange her ist und man es für andere zwecke umschreiben möchte, geht es wesentlich schneller, sich in das Programm ein zu lesen. Auch andere Programmierer können das Programm einfacher nutzen, und es gibt einfach mehr Überblick. Im Basic ist es so, das alles was hinter dem Befehl REM steht, vom Computer überlesen wird und keinerlei Wirkung hat, also eine so genante Kommentarzeile.


SCREEN 12

PRINT "Stop mit ESC oder Alt+ESC"

REM Varieablen

radius = 200: farbe = 0: elips = 1 / 2: CONST pi = 3.14159265#

x = 640: y = 480: xmitte = x / 2: ymitte = y / 2

richtung = 0

resetmal:

zaehler = 0

REM Farb Flip Flop

IF farbe = 0 THEN farbe = 16 ELSE farbe = 0

REM Elipsen Zeichnen

anfang:

zaehler = zaehler + 1

cosinus = COS(zaehler * pi / 180)

sinus = SIN(zaehler * pi / 180)

PSET (xmitte + (radius * elips * cosinus), ymitte + (radius * sinus)), farbe

PSET (xmitte + (radius * cosinus), ymitte + (radius * (1 - elips) * sinus)), farbe

IF zaehler <> 359 THEN GOTO anfang

REM Pause

IF farbe = 0 THEN GOTO ohnePause

FOR pause = 1 TO 50000: NEXT pause

ohnePause:

REM Farbe umschalten

IF farbe = 16 THEN GOTO resetmal

REM Richtungs Lenkung

richtung:

IF elips < 0 THEN richtung = 0

IF elips > 1 THEN richtung = 1

IF richtung = 0 THEN elips = elips + .1

IF richtung = 1 THEN elips = elips - .1

REM Tasten Abfrage

IF INKEY$ = CHR$(27) THEN GOTO ende ELSE GOTO resetmal

REM Programm Ende

ende:

END



[Bearbeiten] Nun das Programm Tempo

Dieses ist nun ein Programm, wo es sich lohnen würde es in eines der C Sprachen um zu wandeln. Dieses Programm "Tampo"(schnell), bringe ich an dieser Stelle ein, weil ich glaube das das die Grenze der Geschwindigkeit verdeutlicht. Nun der Grund ist, das der Quellcode in Maschinencode übersetzt wird, und der Weg vom QBasic zur Maschine sehr weit ist. Dieses ist bei den C Sprachen anders. Gibt man also dem Rechner,im QBasic, richtig was zu Rechnen, wird er durch den langen Übersetzungsweg gebremst.


REM Tempo meint Geschwindigkeit

SCREEN 12

CONST pi = 3.141592653589793#

PRINT "Mit ESC=Stop und Space=noch einmal"

FOR Pause = 1 TO 50000: NEXT Pause

WINDOW (-320, -240)-(320, 240)

Anfang:

FOR Na = 1 TO 20

CLS

FOR Radius = 1 TO 200 STEP Na

REM auch ein ' ist wie REM, also Kommentar

'CIRCLE (0, 0), Radius, 4

FOR winkel = 0 TO 359

PSET (0 + Radius * SIN(winkel * pi / 180), 0 + Radius * COS(winkel * pi / 180)), 4

NEXT winkel

REM Die drei da rueber stehenden Zeilen

REM raus und circle rein

NEXT Radius

NEXT Na

Ende:

IF INKEY$ = CHR$(32) THEN GOTO Anfang

IF INKEY$ = CHR$(27) THEN END ELSE GOTO Ende


Persönliche Werkzeuge