Programmieren - alles kontrollieren 4.939 Themen, 20.672 Beiträge

good old QBASIC

Steffen6 / 4 Antworten / Flachansicht Nickles

hallo,

ich hab ein problem mit QuickBasic. ich habe eine reihe von befehlen in einem packet. dieses packet soll der rechner mehrmals gleichzeitig abarbeiten. welchen befehl muß ich verwenden?

vielen dank im vorraus
mfg
steffen

bei Antwort benachrichtigen
Andreas42 Steffen6 „good old QBASIC“
Optionen

Hi!

Nun, es wäre wohl am einfachsten, wenn man dein Programm mehrfach parallel ausführen könnte. Genau genommen wäre das dann Multitasking und genau dass ist der Haken.

QBASIC ist ein DOS-Tool und solche Extras wie Multitasking sind erst 10 Jahre später in Mode gekommen... ;-)
Das geht also leider mit QBASIC nicht.

Aber du kannst dein Programm natürlich so umschreiben, dass es statt (nur) einer Spalte immer gleich mehrere verwendet. Man muss also pro Zeile mehrer Spalten bearbeiten. Das ganze geht, wenn man dein Programm etwas umstellt, FOR-Schleifen und Array verwendet und auf GOTO verzichtet, eigentlich ganz einfach.

Ich hab' das mal umgesetzt:

SCREEN 7
zeit2% = INT(RND * 2)
zeile% = 1
zeit% = 1

REM Anzahl der parallel dargestellten Spalten
Zeichenanzahl = 5

REM Spalten und Zeichen bestimmen:
FOR i = 1 TO Zeichenanzahl

RANDOMIZE TIMER
spalte%(i) = INT(RND * 39) + 1
zeichen%(i) = INT(RND * 93) + 33

NEXT

REM Kopletter Durchlauf (20 Zeilen)
FOR zeile% = 1 TO 20

REM Innere Schleife für Spalten
FOR i = 1 TO Zeichenanzahl


LOCATE zeile%, spalte%(i)
COLOR 10
PRINT CHR$(zeichen%(i))

COLOR 2
LOCATE zeile%, spalte%(i)
PRINT CHR$(zeichen%(i))
COLOR 10
LOCATE zeile% + 1, spalte%(i)
PRINT CHR$(zeichen%(i))

schleife% = 0

REM Nur IF/ELSE/ENDIF keine GOTOs mehr ;-)
1 IF schleife% = 21 THEN

COLOR 2
LOCATE zeile%, spalte%(i)
PRINT CHR$(zeichen%(i))
COLOR 8
LOCATE zeile% - 1, spalte%
PRINT CHR$(zeichen%(i))
COLOR 8
LOCATE zeile%, spalte%(i)
PRINT CHR$(zeichen%(i))
COLOR 0

ELSE

COLOR 2
LOCATE zeile% + 1, spalte%(i)
PRINT CHR$(zeichen%(i))
COLOR 8
LOCATE zeile%, spalte%(i)
PRINT CHR$(zeichen%(i))
COLOR 10
LOCATE zeile% + 1, spalte%(i)
PRINT CHR$(zeichen%(i))
END IF

REM Nur hier wird gewartet
SLEEP zeit%

NEXT

NEXT

2 END

Für den Anfang dürfte das zum Experimentieren reichen. ;-)
Falls du Fragen hast dazu hast, dann melde dich.

Bis denn
Andreas

Hier steht was ueber mein altes Hard- und Softwaregedoens.
bei Antwort benachrichtigen