^1 The Real Adok's Way to QBASIC ^1 A new Method Step by Step Willkommen zum zweiten Teil von The Real Adok's Way to QBASIC! Einige Typen behaupten, mein Kuh-Basic-Kurs habe den Rinderwahnsinn ausgel”st... Als erstes m”chte ich euch die L”sungen zu den "Hausaufgaben" des ersten Teils zeigen. In Aufgabe 1 muátet ihr ein Programm schreiben, das zuerst den Benutzer nach seinem Namen und seinem Pseudo fragt und anschlieáend einen Text ausgibt. Eine m”gliche L”sung w„re das folgende Listing: ^0CLS ^0PRINT "Wie lautet dein Name?" ^0LINE INPUT name$ ^0PRINT "Und wie lautet dein Pseudo?" ^0LINE INPUT pseudo$ ^0PRINT "Guten Tag, "; ^0PRINT name$; ^0PRINT "! Dein Pseudo lautet "; ^0PRINT pseudo$; ^0PRINT "." ^0PRINT "Willkommen im Club der QBasic-Programmierer!" Zur Wiederholung: Mit der ersten Zeile wird der Bildschirm gel”scht. Man sollte am Anfang eines jeden Programms den Bildschirm l”schen, weil es einfach sch”ner und bersichtlicher aussieht. Mit der zweiten Zeile wird der Text 'Wie lautet dein Name?' auf dem Bildschirm ausgegeben. In der dritten Zeile steht die Anweisung, mit der der Name eingegeben und in der Variablen 'name$' ge- speichert wird. Vierte und fnfte Zeile funktionieren genauso, nur wird dies- mal das Pseudo eingegeben. Mit den restlichen sechs Zeilen wird der Text auf dem Bildschirm ausgegeben. Zur Erinnerung: Der Punktstrich bzw. das Semikolon verhindert einen Zeilenvor- schub. Das heiát, daá der n„chste Text gleich anschlieáend und nicht erst in der n„chsten Zeile ausgegeben wird. Die zweite Aufgabe war es, ein Programm zu schreiben, das den Namen des Benutzers und den seiner Freundin einliest. Anschlieáend soll ein lustiger Text ausgegeben werden. Hier eine m”gliche L”sung: ^0CLS ^0PRINT "Wie heiát du?" ^0LINE INPUT benutzer$ ^0PRINT "Und wie heiát deine Freundin bzw. dein Freund?" ^0LINE INPUT freundin$ ^0PRINT freundin$; ": 'Wann wirst du mich endlich heiraten, "; benutzer$; "?'" Ihr seht, im Prinzip funktioniert es genauso wie in der ersten Aufgabe. Nur die letzte Zeile sieht etwas komisch aus. Keine Panik, es ist nur eine ver- krzte Form mehrerer PRINT-Anweisungen. Statt der letzten Zeile k”nnte man auch ^0PRINT freundin$; ^0PRINT ": 'Wann wirst du mich endlich heiraten, "; ^0PRINT benutzer$; ^0PRINT "?'" schreiben. Solange es nicht auf Kosten der šbersicht geht, wrde ich aber lieber zur verkrzten Methode raten. Die dritte und letzte Hau-Sauf-Gabe :-) war ein Programm, das mehrere Zeilen vom Benutzer einliest und sie mit Hilfe des Befehls LPRINT auf dem Drucker ausgibt. Hier eine m”gliche L”sung: ^0CLS ^0PRINT "Bitte gib drei kurze S„tze ein!" ^0LINE INPUT satz1$ ^0LINE INPUT satz2$ ^0LINE INPUT satz3$ ^0LPRINT "Der 1. Satz lautet:" ^0LPRINT satz1$ ^0LPRINT "Der 2. Satz lautet:" ^0LPRINT satz2$ ^0LPRINT "Der 3. Satz lautet:" ^0LPRINT satz3$ Dieses Listing k”nnte man noch optimieren, aber dazu sp„ter, wenn wir ber die Arrayverwaltung und die FOR/NEXT-Schleife h”ren werden. Das letzte Mal lernten wir die Befehle CLS, PRINT und LINE INPUT kennen. PRINT und LINE INPUT sind die grundlegendsten Befehle zur Verarbeitung von Zeichen- ketten (Strings). Nun wollen wir zur Abwechslung die Zahlenvariablen, wie wir sie aus der Mathematik kennen, unter die Lupe nehmen. Dazu gleich ein Bei- spielprogramm. Gebt es in QBasic ein und speichert es unter KURS0002.BAS. ^0CLS ^0zahl1 = 12 ^0zahl2 = 3 ^0PRINT "Zahl 1:"; ^0PRINT zahl1 ^0PRINT "Zahl 2:"; ^0PRINT zahl2 ^0PRINT "Addition:"; ^0PRINT zahl1 + zahl2 ^0PRINT "Subtraktion:"; ^0PRINT zahl1 - zahl2 ^0PRINT "Multiplikation:"; ^0PRINT zahl1 * zahl2 ^0PRINT "Division:"; ^0PRINT zahl1 / zahl2 Schon haben wir ein einfaches Rechenprogramm! Startet es, und QBasic fhrt euch alle Grundrechnungsarten vor. Wenn ihr andere Zahlen als 12 und 3 einset- zen wollt, so mát ihr einfach die entsprechenden Werte in die Zeilen 2 und 3 schreiben. 'zahl1' und 'zahl2' sind, wie sich manche von euch wahrscheinlich schon denken werden, Zahlenvariablen. Sie sind Platzhalter fr beliebige Flieákommawerte, die eine bestimmte Gr”áe und Anzahl von Nachkommastellen haben k”nnen. Es gibt noch andere sogenannte 'Datentypen', in denen man Zahlen speichern kann. Darauf m”chte ich erst sp„ter eingehen. Im Moment reicht es zu wissen, daá man in Variablen, die kein Stringzeichen ($) enthalten, Flieákommawerte speichern kann. Wie das Programm zeigt, lassen sich mit 'PRINT' auch Zahlenwerte auf dem Bild- schirm ausgeben. Vor und nach der Zahl wird jeweils ein Leerzeichen ausgege- ben. Bei negativen Zahlen entf„llt das erste Leerzeichen. Stattdessen wird das Vorzeichen ausgegeben. Ihr k”nnt dies leicht berprfen, indem ihr in der Zeile 2 oder 3 fr eine der beiden Variablen einen negativen Wert einsetzt. Die Zeichen '+', '-', '*', '/', '^' sind, wie ihr sicherlich schon bemerkt habt, Rechenzeichen, wobei '/' fr Division und '^' fr Potenz steht. Diese beiden sollte man sich besonders gut merken, weil sie von der schriftlichen Norm abweichen. Anf„nger k”nnten auch leicht '*' (Multikplikationszeichen) mit '.' (Komma) verwechseln. Auáerdem kann das '*' leicht vergessen werden (z.B. 2y statt 2 * y). Die englische Schreibweise des Kommas und der Rechenzeichen wird brigens in den meisten Anwendungsprogrammen und Programmiersprachen ver- langt. Basic ist daher kein Einzelfall, und falls ihr doch nicht mehr weiter- programmieren wollt (zu schwierig!?), solltet ihr euch diese Schreibweise trotzdem merken. Natrlich kann man nicht nur die Ergebnisse der Rechnungen anzeigen, sondern sie auch anderen Variablen zuweisen. Hier ein weiteres Beispielprogramm. Speichert es unter KURS0003.BAS und startet es mit F5. ^0CLS ^0zahl1 = 100 ^0DO ^0 zahl1 = zahl1 + 1.6 ^0 PRINT zahl1 ^0LOOP Das Programm l„uft unendlich lange. Keine Panik, der Computer ist nicht abge- strzt! Durch gleichzeitiges Bet„tigen von STRG und PAUSE l„át sich das Pro- gramm unterbrechen. Ihr gelangt in QBasic zurck. Die Programmzeile, bei deren Ausfhrung ihr STRG und PAUSE gedrckt habt, ist hervorgehoben. Kmmert euch jedoch nicht darum. Nun m”chte ich das Programm Zeile fr Zeile beschreiben. Zeile 1 l”scht den Bildschirm, Zeile 2 setzt die Variable 'zahl1' auf 100. Das habe ich vorhin vergessen zu erw„hnen: Das Gleichheitszeichen kann in Basic verschiede Bedeu- tungen haben. Hier bedeutet es 'Zuweisung'. Das heiát, daá der Variablen, die links von dem Gleichheitszeichen steht, der Wert rechts von dem Gleichheits- zeichen zugewiesen wird. Eine Anweisung wie ^0100 = zahl1 fhrt zu einer Fehlermeldung. Man kann brigens auch 'LET' vor die Variable schreiben. Unser Beispiel wrde dann folgendermaáen lauten: ^0LET zahl1 = 100 Die Verwendung von 'LET' ist aber heutzutage weder notwendig noch empfehlens- wert. Die n„chste Zeile enth„lt ein neues Schlsselwort. Es handelt sich um 'DO', einen sehr flexiblen und vielf„ltig einsetzbaren Befehl, den wir in der Folge ber Schleifen und Verzweigungen genau besprechen werden. Jetzt sei nur gesagt, daá der Programmteil zwischen 'DO' und 'LOOP' unendlich oft ausgefhrt wird. In der 4. Zeile wird der Variablen 'zahl1' das Ergebnis der Addition 'zahl1 + 1.6' zugewiesen. Das ist einfacher, als es klingt, denn es bedeutet nichts anderes, als daá 'zahl1' um 1,6 erh”ht wird. Danach wird die Zahl auf dem Bildschirm ausgegeben, und mit 'LOOP' wird das ganze ab Zeile 4 wieder- holt. Alles klar? Nun, zurck zum ersten Beispielprogramm. Wie w„re es, wenn der Benutzer die Zahlen selbst eingeben k”nnte? Dazu gibt es den Befehl 'INPUT'. Er funktio- niert genauso wie 'LINE INPUT', nur wird zus„tzlich ein Fragezeichen auf dem Bildschirm ausgegeben. Man kann zwar mit 'INPUT' auch Zeichenketten eingeben, doch dazu eignet sich 'LINE INPUT' meiner Meinung nach besser, weil sich damit auch Beistriche eingeben lassen. Erstellt ein solches Rechenprogramm gleich als "Hausaufgabe"! Und nun Schluá fr heute. ø9Dieser Basic-Kurs wurde created by ^4 The Real Adok!