Zeichenketten
(Strings)
Ursprünglich war der Computer nur zum Rechnen gedacht (to compute
= rechnen). Nach und nach wollte man auch Texte erfassen, d.h. es
genügte nicht, daß der Computer nur mit Zahlen (im Binärsystem)
umgehen konnte, sondern ein Computer mußte auch Buchstaben,
Sonderzeichen, usw. darstellen und verarbeiten können.
Ein
String besteht aus einer beliebigen Anzahl verschiedener Ziffern,
Buchstaben oder Sonderzeichen. QBASIC erlaubt allerdings nur Zeichenketten
bis zu einer Länge von 255 Zeichen. Zeichenketten können
auf dem Bildschirm ausgegeben werden (PRINT "Hallo Dödel")
oder einer Stringvariablen zugewiesen werden (LET datum$="1.1.1991").
Eine Stringvariable muß durch ein Dollar-Zeichen am Ende des
Variablennamens gekennzeichnet werden. Mit Stringvariablen kann nicht
gerechnet werden, sie können jedoch auf verschiedene Arten verändert
werden.
Starte
gegebenenfalls QBasic und gib die folgenden Programmzeilen ein. Speichere
das Programm (strings1.bas), starte das
Programm und achte auf das Resultat.
REM Strings1
CLS
LET zahl1$="2"
LET zahl2$="4"
PRINT zahl1$+zahl2$
Das
Programm addiert nicht die Zahlen 2 und 4! Es ordnet den Stringvariablen
zahl$1 und zahl$2 die Zeichen 2 bzw. 4 zu und gibt die Ziffern hintereinander
aus.
Gib
nun die folgenden Programmzeilen (strings2.bas)
ein. Starte das Programm und achte auf das Resultat.
REM Strings2
CLS
LET a$="sachs"
LET b$="Nieder"
LET c$=b$+a$+"en"
PRINT c$
Die
Ausgabe erlaubt eine Kombination von Stringvariablen und Zeichenketten,
mit dem Pluszeichen verknüpft. Achtung: eine Mischung von Strings
und Zahlenvariablen verknüpft man nicht mit einem Plus. Will
man sie in einer Zeile darstellen, verwendet man das Semikolon.
Gib
die folgenden Programmzeilen (strings3.bas)
ein. Starte das Programm und achte auf das Resultat.
REM
strings3
CLS
INPUT "Nachname: " , nname$
INPUT "Vorname: " , vname$
INPUT "Alter: " , x
GOSUB einstufung
PRINT "Hallo, " + vname$ + " " + nname$ ",
du bist "; x ; " Jahre alt "
PRINT "und damit " + c$
END
einstufung:
IF x <= 12 THEN c$ = "ein Kind."
IF x > 12 AND x <= 19 THEN c$ = "ein Teenie!"
IF x > 19 AND x <= 29 THEN c$ = "ein Tweenie!"
If x > 29 THEN c$ = "eine alte Socke!"
RETURN
Zeichenkettenfunktionen
Mit der Funktion ASC(Zeichen$) kann Basic den ASCII - Code eines Zeichens
ausgeben. Schreibe das folgende Programm und speichere unter ascii1.bas
REM ascii1
CLS
INPUT "Gibl ein beliebiges Zeichen ein! ", zeichen$
PRINT
PRINT "Du hast das Zeichen " + zeichen$ + " eingegeben.
"
PRINT "Sein ASCII-Code lautet";
PRINT ASC(Zeichen$);
PRINT "."
Der Zeichensatz des Computers besteht aus 256 Zeichen, die jedoch
nicht alle darstellbar sind, da einige Sonderfunktionen haben. Mit
Hilfe der Tastatur können nicht alle dieser 256 Zeichen eingegeben
werden (warum wohl?). Deshalb gibt es in QBasic die Funktion CHR$(n),
mit der sich (fast) alle Zeichen auf dem Bildschirm darstellen lassen.
Das folgende Programm (ascii2.bas) gibt
alle wichtigen Zeichen des Zeichensatzes aus.
REM ascii2
CLS
PRINT "Die wichtigsten Zeichen des Computers:"
FOR n=32 TO 255
PRINT CHR$(n);
NEXT n
Prüfe
auch, wie die Zeichen 1 bis 6, 24 bis 27 aussehen. Erweitere dazu
das Programm ascii2 um die entsprechenden Zeilen. Weiter mit Lektion
5!