QBasic-Schnellübersicht
(c) Thomas Antoni, 22.3.04 –
www.qbasic.de
Datentypen
|
Suffix |
Datentyp |
Länge |
Wertebereich, Bemerkungen |
|
% |
INTEGER |
2 Bytes |
(Ganzzahl) -32 768...32 767 |
|
& |
LONG |
4 Bytes |
(lange Ganzzahl) -2 147 483 648...2 147 483 647 |
|
! |
SINGLE (einfach lange Gleitpkt.zahl) |
4 Bytes |
-3.402823 E38...-1.40129 E-45 für negative Werte
1.40129 E-45 ... 3.402823 E38 für positive Werte |
|
# |
DOUBLE (doppelt lange Gleitpunktzahl) |
8 Bytes |
-1.79769313486231 D308... -4.94065 D-324 für negative Werte
4.94065 D-324 ... 31.79769313486231 D308 für positive Werte |
|
$ |
STRING |
|
max 32k Texteichen |
Standard-Farbcodes
0 = Schwarz
1 = Blau
2 = Grün |
3 = Türkis
4 = Rot
5 = Violett |
6 = Braun
7 = Hellgrau
8 = Grau |
9 = Hellblau
10 = Hellgrün
11 = Helltürkis |
12 = Hellrot
13 = Rosa
14 = Gelb |
15 = Weiß |
In SCREEN 0 sind als Hintergrundfarben nur die Codes 0...7 verwendbar.
Die wichtigsten Bildschirmmodi
|
SCREEN |
Beschreibung, Auflösung, Farben, [Speicherbedarf], Bildschirmseiten |
|
0 |
Textmodus, für alle Grafikkarten, 80*25|43|50 und 40*25|43|50 Spalten * Zeilen mit WIDTH einstellbar,16 Farben,8 Bildschirmseiten (0-7) |
|
1 |
CGA/EGA/VGA-Karte, 320*200 Grafik, 30*25 Text, 4 aus 16 Farben, [2 Bits pro Pixel in 1 Ebene für GET/PUT],1 Bildschirmseite ( 0 ) |
|
2 |
CGA/MCGA/EGA/VGA-Karte, 640*200 Grafik, 80*25 Text, 2 aus 16 Farben, [1 Bit pro Pixel in 1 Ebene für GET/PUT], 1 Bildschirmseite ( 0 ) |
|
7 |
EGA/VGA-Karte, 320*200 Grafik, 40*25 Text, 16 Farben, 8 Bildschirmseiten (0-7). Ruckelfreie Animationen auch auf langsamen Rechnern möglich,
[4 Bits pro Pixel in 4 Ebenen für GET/PUT] |
|
9 |
EGA/VGA-Karte, 640*350 Grafik, 80*15 Text, bis 16 Farben, [4 Bits pro Pixel (bei 16 Farben) in 4 Ebenen für GET/PUT], 2 Bildschirmseiten (0-1) |
|
11 |
VGA-Karte, 640*480 Grafik, 80*25|30|50|60 Text (Voreinstellung: 80*30), 2 aus 256 Farben, gut geeignet für s/w-Grafiken, [1 Bit pro Pixel in 1 Ebenen für GET/PUT], 1 Bildschirmseite |
|
12 |
VGA-Karte, 640 x 480 Grafik, 80*30|50|60 Text (Voreinstellung: 80*30), 6 aus 256 Farben, [4 Bits pro Pixel in 4 Ebenen für GET/PUT], 1 Bildschirmseite |
|
13 |
VGA-oder MCGA-Karte, 320 x 200 Grafik, 40*25 Text, 256 Farben, [8 Bits pro Pixel in 1 Ebene für GET/PUT], 1 Bildschirmseite |
Mathe-Funktionen
|
Befehl |
Beschreibung |
|
+ - * / |
Grundrechenarten |
|
x \ y |
Ganzzahl-Division, liefert d. ganzzahligen Anteil von x/y; z.B. 13\5 = 2 |
|
x MOD y |
Modulo-Operation (liefert d. Rest der Division x/y; z.B. 13 MOD 5 = 3) |
|
x^y |
Exponentialfunktion xy |
|
SQR (x) |
Quadratwurzel aus x |
|
y = x^(1/n) |
n-te Wurzel aus x |
|
SGN(x) |
Vorzeichen von x (Signum-Funktion) |
|
ABS (x) |
Absolutbetrag von x |
|
SIN (x) |
Sinus von x (x im Bogenmaß; 360° entspr. 2*Pi; ...::: z.B. sin 30° = SIN(30 * 3.1416/180) :::... |
|
COS (x) |
Cosinus von x (x im Bogenmaß) |
|
TAN (x) |
Tangens von x (x im Bogenmaß) |
|
ATN (x) |
Arcustangens von x (ergibt den Winkel im Bogenmaß) |
|
EXP (x) |
x-te Potenz zur Basis e (ex) |
|
LOG (x) |
Natürlicher Logarithmus ln(x) (Logarithmus zur Basis e) |
|
INT (x!) |
Gleitpunkt-Integer-Wandlung mit Abrundung nach unten |
|
FIX (x!) |
Nachkommastellen abtrennen ohne Rundung |
|
CINT (x!) |
SINGLE Gleitpunkzahl zu Ganzzahl "wissenschaftlich" zur nächsten geraden Zahl runden (4.5 -> 4 | 5.5 -> 6) |
|
CLNG(x#) |
DOUBLE Gleitpunkzahl zu Ganzzahl "wissenschaftlich" zur nächsten geraden Zahl runden (4.5 -> 4 | 5.5 -> 6) |
|
CSNG |
Numerischen Wert in SINGLE-Gleitpunktzahl umwandeln |
|
CDBL |
Numerischen Wert in DOUBLE-Gleitpunktzahl umwandeln |
|
HEX$ (x) |
Zahl x in Hexadezimalzahl-String umwandeln |
Zeichenkettenfunktionen
|
Befehl |
Beschreibung |
|
LEFT$ (t$, n) |
Liefert n Zeichen links aus dem String t$ zurück |
|
RIGHT$ (t$, n) |
Liefert n Zeichen rechts aus dem String t$ zurück |
|
MID$ (t$, a, n) |
Liefert n Zeichen ab dem a-ten zeichen aus einem String zurück |
|
INSTR (a, t$, s$) |
Durchsucht den String t$ ab dem a-ten Zeichen nach dem String t$ und liefert die Zeichenposition der Fundstelle zurück bzw. 0 wenn s$ nicht gefunden |
|
LCASE$ (t$) |
Groß- in Kleinbuchstaben umwandeln (nicht für Umlaute) |
|
UCASE$ (t$) |
Klein- in Großbuchstaben umwandeln (nicht für Umlaute) |
|
MID$ (t$, a, n) =e$ |
n Zeichen im String t$ ab Zeichen-Position a durch den String e$ ersetzen |
|
SPACE$ (n) |
Liefert einen String mit n Leerzeichen |
|
STRING$ (n, t$) |
Liefert einen String , der n mal das 1. Zeichen von t$ enthält |
|
LEN (t$) |
Liefert die Länge des Strings t$ in Anzahl Zeichen |
|
CHR$ (code) |
Liefert das Textzeichen mit dem angegebenen ASCII-Code |
|
ASC (t$) |
Liefert den ASCII-Code des ersten Zeichens von t$ |
|
t$ = t1$ + t2$ |
Strings zusammenfügen (z.B. "Es" + "sel" = "Esel") |
|
STR$ (z) |
Numerischen Wert z in String umwandeln |
|
VAL (t$) |
String t$ in numerischen Wert umwandeln |
Die wichtigsten Tastencodes (ASCII-Tabelle in "Hilfe | Inhalt | ASCII-Zeichen-Codes")
|
Taste |
Code |
Taste |
Code |
|
Eingabe |
CHR$(13) |
Cursor hoch |
CHR$( 0 ) + "H" |
|
Leertaste |
CHR$(32) |
Cursor tief |
CHR$( 0 ) + "P" |
|
Backspace |
CHR$(8) |
Cursor links |
CHR$( 0 ) + "K" |
|
Esc |
CHR$(27) |
Cursor rechts |
CHR$( 0 ) + "M" |
|
Einf |
CHR$( 0 ) + "R" |
Bild hoch |
CHR$( 0 ) + "I" |
|
Entf |
CHR$( 0 ) + "S" |
Bild tief |
CHR$( 0 ) + "Q" |
|
Pos1 |
CHR$( 0 ) + "G" |
F1....F10 |
CHR$( 0 ) + CHR$(59).....(68) |
|
Ende |
CHR$( 0 ) + "O" |
F11...F12 |
CHR$( 0 ) + CHR$(133)...(134) |
Befehle zur Bildschirmausgabe
PRINT [numerische oder Textausdrücke] [ ; | ,] => [; = ohne Zeilenvorschub | , = mit Tabulator]
Befehle zur Tastatureingabe
INPUT Text$ { ; | , } Variable => Aufforderungs-Text anzeigen und Variableneingabe
anfordern (mit | ohne Fragezeichenanzeige)
t$ = INPUT$ (n) => Wartet bis n Textzeichen von der Tastatur in t$ eingelesen
Wartezeit einfügen
Zeit = TIMER : DO : LOOP WHILE TIMER < Zeit + Wartezeit 'Wartezeit in sec
|