******************************************************* * Skript, Teil 1 zum QBasic-Kurs I * * Von Robert Jessenberger * ******************************************************* Ausgabe auf den Bildschirm -------------------------- PRINT "Hallo Freunde!" Beachte: Text muß zwischen " " stehen Steht nur PRINT da, wird eine Leerzeile ausgegeben Für Tipfaule: schreibe statt PRINT ein ? Mit PRINT kann auch gerechnet werden: PRINT 6 / 2 + 7 - 5 Beachte: Willst du das Ergebnis werden, dürfen keine " verwendet werden. Textausgabe und Ergebnisausgabe können beliebig kombiniert werden: PRINT "Ergebnis von 1 + 1 ist:", 1 + 1 oder auch: ? "Das Ergebnis von 9/3 ist", 9 / 3 , "!" Bildschirm löschen ------------------ Um einen schönen, leeren, schwarzen Bildschirm zu erhalten, gibt es den Befehl: CLS Bsp.: CLS PRINT "Hier ist aber viel Platz!" Anmerkung: Beachte die Reihenfolge: Der Computer führt zuerst CLS aus, da dieser Befehl am Anfang steht, danach erst wird der Text geschrieben. Vertausche die Zeilen und du siehst ... nichts. Kommentare ---------- Kommentare sind alles, was hinter dem REM - Befehl steht. Ihren Nutzen haben sie, wenn die eigenen Programme mehrere Seiten groß werden - Kommentare helfen dann, sich später noch zurechtzufinden. Außerdem kann man sich im eigenen Programm damit verewigen. Bsp.: REM************************************** REM**** Windows 96 von Hein Blöd ******** REM************************************** Diese Zeilen werden vom Computer einfach übersprungen. Sie haben keine Wirkung. Variablen --------- Eine Variable ist nichts weiter als ein Name für einen bestimmten Speicherplatz im Computer. In diesem Speicherplatz können wir Zahlen oder Text ablegen und wieder holen. Speicher ist allgemein das Gedächtnis des Computers. Es gibt zwei unterschiedliche Typen von Variablen, welche zum Textmerken (mit $ am Namensende), und welche zum Zahlenmerken (mit % am Namensende). Bsp.: Name$="Hein Blöd" oder Alter%=129 In Name$ liegt der Text Hein Blöd In Alter% merken wir uns die Zahl 129 Bsp. 2: zahl1% = 5 zahl2% = 10 PRINT zahl1%,"+",zahl2%,"=",zahl1%+zahl2% Anmerkung: Den Namen für die Variablen kannst du dir selbst ausdenken. Er sollte passend sein für das, was du mit der Variable machen willst. Ändere im obigen Beispiel mal die Variablennamen. Eingabe von Tastatur -------------------- Jetzt wäre es sinnvoll, wenn in unserem Rechenprogramm vom Benutzer Zahlen eingegeben werden könnten. Befehl: INPUT Mit INPUT können wir vom Programmbenutzer Werte entgegennehmen und sie uns in einer Variablen merken. REM ******Mathematikprogramm vom schlauen Hein Blöd********* CLS INPUT "Gib die erste Zahl ein:",zahl1% INPUT "Gib die zweite Zahl ein:",zahl2% PRINT zahl1%,"+",zahl2%,"=",zahl1%+zahl2% Schleifen und Verzweigungen --------------------------- Unser Mathematikprogramm hat nun schon einen Sinn bekommen. Störend ist nur,daß wenn wir neu rechnen wollen, das Programm neu gestartet werden muß. Was wäre, wenn wir eine Möglichkeit hätten, wieder nach oben in die erste Zeile zu springen? Lösung: while Bedingung ... wend Die while-Schleife bietet uns diese Möglichkeit. Alles was zwischen WHILE und WEND steht, wird immer wieder abgearbeitet, solange "Bedingung" wahr ist. Bsp.: REM ******Mathematikprogramm Nr.2 vom schlauen Hein Blöd********* CLS abbruch%=1 while abbruch%=1 INPUT "Gib die erste Zahl ein:",zahl1% INPUT "Gib die zweite Zahl ein:",zahl2% PRINT zahl1%,"+",zahl2%,"=",zahl1%+zahl2% INPUT "Nochmal, tippe 1 Beenden, tippe 0",abbruch% WEND PRINT "Tschüss!" Wie funktioniert das Programm: Zuerst wird der Bildschirm gelöscht. Dann erhält die Variable abbruch% den Wert 1. Die while - Schleife verlangt nämlich, daß bei ihrem Beginn etwas da ist, dass sie vergleichen kann. Nur wenn der Vergleich positiv ausfällt, wird alles, was zwischen while ... wend steht, ausgeführt. Ich lasse in dem Fall den Wert von abbruch% mit der Zahl 1 vergleichen. Nun kann der Benutzer seine Zahlen eingeben und erhält das Ergebnis. Dann aber, das ist neu, wird er gefragt, ob er nochmal möchte! Wenn er nochmal rechnen will, wird der Benutzer eine 1 tippen. abbruch% wird also entweder 1 oder 0 enthalten. Nun kommt das WEND! Hier springt der Computer wieder hoch in die Zeile mit dem WHILE abbruch%=1 (Vergleich abbruch% mit 1) Wollte der Benutzer aufhören, hat er eine 0 getippt, und 0=1 ist nicht wahr. Deshalb springt er sofort zur Zeile nach dem WEND und verabschiedet sich mit "Tschüss". Wollte der Benutzer nicht aufhören, hat er eine 1 getippt 1=1 ist wahr, also wird die Schleife nochmal abgearbeitet. Alles klar? Kleine Aufgabe: Verändere das Programm so, daß der Bildschirm bei jeder Addition gelöscht wird. Verändere das Programm so, daß es sich bei Eingabe von "q" beendet. Nun machen wir das Programm perfekt. Es soll nun möglich sein,sich zwischen Addition und Subtraktion zu unterscheiden. Möglich macht uns das der IF ... THEN ... - Befehl Hinter dem IF steht wieder die Bedingung, und wenn diese erfüllt wird, und nur dann , wird der Befehl hinter dem THEN ausgeführt. REM ******Mathematikprogramm Nr.3 vom schlauen Hein Blöd********* CLS abbruch%=1 while abbruch%=1 INPUT "Gib die erste Zahl ein:",zahl1% INPUT "Gib die zweite Zahl ein:",zahl2% INPUT "Tippe + für Addition und - für Subtraktion",auswahl$ if auswahl&="+" THEN PRINT zahl1%,"+",zahl2%,"=",zahl1%+zahl2% if auswahl&="-" THEN PRINT zahl1%,"-",zahl2%,"=",zahl1%-zahl2% INPUT "Nochmal, tippe 1 Beenden, tippe 0",abbruch% WEND PRINT "Tschüss!" Übrigens: WHILE ... WEND und IF...THEN... sind die wichtigsten Anweisungen. Sie werden in fast jedem Programm gebraucht, und wer sie beherrscht, hat das Programmieren verstanden. MUSIK ----- Mit Sound machen Spiele doppelt so viel Spass. QBasic stellt den Play-Befehl zur Verfügung, welcher einfach zu verwenden ist. PLAY "MS o3 L4 C BAGFED P2 L2 C" o3 legt die Oktave fest (0-6) L4 legt die Tonlänge fest (1-64), wobei L1 eine ganze Note ist, L2 eine halbe Note, usw. P2 legt die Pausen fest (1-64) ML spielt die Töne in Legato MN spielt die Töne normal MS spielt die Töne in Staccato CDEFGAB legt die Tonhöhe fest Achtung! B=Ton H! Am besten ist hier, man experimentiert einfach ein bißchen, und schon gelingen (falls man das Talent hat) die ersten Eigenkompositionen. REM Klavier CLS PRINT " Klavierstunde" taste$ = "" WHILE taste$ <> "q" taste$ = INKEY$ IF taste$ = "1" THEN PLAY "o1 l8 C" IF taste$ = "2" THEN PLAY "o1 l8 D" IF taste$ = "3" THEN PLAY "o1 l8 E" IF taste$ = "4" THEN PLAY "o1 l8 F" IF taste$ = "5" THEN PLAY "o1 l8 G" IF taste$ = "6" THEN PLAY "o1 l8 A" IF taste$ = "7" THEN PLAY "o1 l8 B" IF taste$ = "8" THEN PLAY " l8 o2 C" IF taste$ = "9" THEN PLAY "l8 o2 D" IF taste$ = "0" THEN PLAY "l8 o2 E" WEND Anmerkung zum Programm: INKEY$ ist ein Befehl, welcher die gerade gedrückte Taste als Text zurückliefert. Diesen Text speichern wir in taste$. Du kannst jetzt mit deinem Computer richtig Klavier spielen! Erweitere doch das Programm um alle Oktaven u.s.w.!