Das ist ja alles schön und gut, aber wie kann man Zahlen oder Namen in QuickBASIC von der Tastatur entgegennehmen? Dies kann man unter anderem mit dem Befehl INPUT ("Eingeben") bewerkstelligen. Und hier folgt gleich ein Beispiel:
REM-------------------------------------------------------------- REM Titel: INPUT01.BAS REM Autor: Marty Winkler REM Datum: 29.12.2001 REM-------------------------------------------------------------- DEFINT A-Z SCREEN 0 CLS INPUT "Name:"; Name$ 'Beispiel 1 INPUT "Alter:"; Alter 'Beispiel 2 INPUT "Wohnort, PLZ:"; WohnOrt$, PLZ 'Beispiel 3 PRINT PRINT "Sie heißen "; Name$; ", sind"; Alter; "Jahre alt und" PRINT "wohnen in "; WohnOrt$ |
Wie Sie sicher bemerkt haben gibt es mehrere Möglichkeiten die
INPUT-Anweisung zu benutzen. Eines haben alle drei
Beispiele gemeinsam: es wird ein Text auf dem Monitor ausgegeben. Und zwar muss dieser
Text, genau wie bei der PRINT-Anweisung in
Anführungszeichen stehen. Danach folgt ein Semikolon und die Variable, in der die
Eingabe gespeichert werden soll, wobei es egal ist, von welchem Typ die Variable ist.
Bei der Eingabe muss allerdings beachtet werden, dass man keine Buchstaben oder andere
Sonderzeichen eingibt, wenn eine Zahl verlangt wird. Was passiert, wenn man es doch macht?
Probieren Sie es einfach mal aus, kaputt gehen kann nichts.
Das dritte Beispiel springt ein bisschen aus der Reihe, weil in dieser Befehlszeile nach
mehreren Informationen gefragt wird! Man muss also in diesem Fall bei der Eingabe den
Wohnort von der Postleitzahl durch ein Komma trennen. Sonst weiß QuickBASIC nicht
welcher Teil der Eingabe zu welcher Variablen gehört.
Nun hat QuickBASIC aber nach dem Text Fragezeichen ausgegeben! Das ist dazu da, dass der
Anwender weiß, er hat eine Eingabe vorzunehmen. Diese Fragezeichen sehen aber
eigentlich nicht schön aus. Das wussten wohl auch die Entwickler von QuickBASIC.
Was heißen soll, dass man das Fragezeichen dadurch verhindern kann, indem man
anstatt eines Semikolons ein Komma benutzt. Ändern Sie das Programm jetzt so um,
dass die lästigen Fragezeichen verschwinden. So, nun sieht es doch schon viel
angenehmer aus, oder?.
Jetzt haben wir aber ein kleines Problem, denn was geschieht, wenn Sie nur ein Jahr alt
sind? Dann denkt man als Anwender, dass der Programmierer dieser "Software" Schwierigkeiten
mit der deutchen Sprache hat. Denn in diesem Fall steht auf dem Bildschirm "..., sind 1
Jahre alt ...". Wie kann man dieses Problem beheben?
Dazu muss ich Sie mit einer neuen Anweisung bekannt machen, der
IF-THEN-ELSE-Anweisung ("wenn ... dann ... ansonsten ...").
Schauen Sie sich einfach das nächste Beispiel an:
REM------------------------------------------------------------- REM Titel: INPUT02.BAS REM Autor: Marty Winkler REM Datum: 29.12.2001 REM------------------------------------------------------------- DEFINT A-Z SCREEN 0 COLOR 7, 4 CLS COLOR 14, 1 PRINT SPC(30); "Die INPUT-Anweisung"; SPC(31); PRINT 'Leerzeile drucken COLOR 7, 4 INPUT "Name:", Name$ INPUT "Alter:", Alter INPUT "Wohnort, PLZ:", WohnOrt$, PLZ IF Alter = 1 THEN Text$ = "Jahr" ELSE Text$ = "Jahre" PRINT 'Leerzeile drucken PRINT "Sie heißen "; Name$; ", sind"; Alter; Text$; " alt und" PRINT "wohnen in "; WohnOrt$ |
Wortwörtlich übersetzt heißt die hier gebrauchte Form folgendes:
Wenn die Variable Alter den Wert 1 hat, dann wird in der Variablen Text$ die Zeichenkette "Jahr" gespeichert. Ansonsten enthält Text$ den String "Jahre".
Es gibt aber noch eine Schreibweise für die IF-THEN-ELSE-Anweisung. Die nachstehende wird meist dann verwendet, wenn mehrere Befehle auf einmal ausgeführt werden sollen und dies dann nicht mehr in eine einzige Befehlszeile passt.
IF Alter = 1 THEN Text$ = "Jahr" ELSE Text$ = "Jahre" END IF
Wenn man diese Form verwendet, so muss am Ende des IF -Blocks END IF stehen, um QuickBASIC zu signalisieren, dass die IF-THEN-ELSE-Anweisung hier zuende ist.