QBasic Projekt - Klaus Zickner
QBasic Projekt - Klaus Zickner
QBasic Projekt - Klaus Zickner
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>Projekt</strong> Basic<br />
Einführung in QBASIC - Programmieren mit QBASIC<br />
1. Grundlagen:<br />
QBASIC ist ein Werkzeug mit dem man programmieren kann.<br />
Icon „QBASIC“ mit der rechten Maustaste doppelt anklicken .... und es erscheint folgendes Bild am Bildschirm:<br />
.... das Programm QBASIC wurde geladen.<br />
Bitte jetzt den weiteren Anweisungen am Bildschirm folgen: drücken.<br />
<strong>QBasic</strong><strong>Projekt</strong>.DOC / <strong>Klaus</strong> <strong>Zickner</strong> / 05.11.2005<br />
1
<strong>QBasic</strong><strong>Projekt</strong>.DOC / <strong>Klaus</strong> <strong>Zickner</strong> / 05.11.2005<br />
2
2. Übungsaufgaben<br />
Testen und ausprobieren:<br />
Tastatur<br />
Cursorbewegungen<br />
Maus-Bewegungen<br />
QBASIC-BEFEHLE und Aufgaben<br />
1. Aufgabe<br />
Gib über die Tastatur ein:<br />
PRINT „GUTEN TAG, LIEBER LEHRER<br />
END<br />
Das Ergebnis sieht dann so aus<br />
Erklärung:<br />
Mit dem Befehl „PRINT“<br />
ist es möglich einen Text auf dem Bildschirm erscheinen zu lassen<br />
Der Befehl „END“<br />
beendet den Programmablauf. Es werden alle Dateien geschlossen. Der Befehl muss nicht unbedingt am<br />
Programmende stehen, da automatisch der Programmablauf beendet wird, wenn keine weiteren Befehle<br />
folgen.<br />
<strong>QBasic</strong><strong>Projekt</strong>.DOC / <strong>Klaus</strong> <strong>Zickner</strong> / 05.11.2005<br />
3
Ausprobieren<br />
Du hast ein „Programm“ programmiert, welches immer wieder ausgeführt werden kann. Wähle aus dem<br />
Menü – oder F5<br />
Ergebnis:<br />
Das Programm wurde ausgeführt. Auf dem Bildschirm erscheint der im Programm festgelegte Satz „Guten<br />
Tag lieber Lehrer“<br />
<strong>QBasic</strong><strong>Projekt</strong>.DOC / <strong>Klaus</strong> <strong>Zickner</strong> / 05.11.2005<br />
4
Speichern der Aufgabe<br />
Eine Hauptfunktion des Computers ist die Möglichkeit der Speicherung von Daten.<br />
„Daten“ ist alles, was Du über die Tastatur eingegeben hast. Damit der Satz PRINT „GUTEN TAG, LIE-<br />
BER LEHRER beim Ausschalten des Computers nicht verloren geht, muss er gespeichert werden. In der<br />
Fachsprache nennt man dies Daten sichern oder DATENSICHERUNG. Du hebst Dein Aufsatzheft ja<br />
auch auf und schmeißt es nicht weg!<br />
Die „Daten“ werden in DATEIEN gespeichert. DATEIEN werden auf Laufwerken in Verzeichnissen „abgelegt“.<br />
Laufwerke sind bezeichnet mit A und C. A ist das Diskettenlaufwerk, C ist die Festplatte. Verzeichnisse<br />
sind auf den Laufwerken angelegt.<br />
Achtung: Verzeichnisse und Dateien haben im Programm Qbasic Namen mit höchstens acht Buchstaben!<br />
Gehe bitte jetzt so vor:<br />
in der Menüleiste „Datei“ mit der Maus anklicken<br />
dann „Speichern unter“ anklicken.<br />
<strong>QBasic</strong><strong>Projekt</strong>.DOC / <strong>Klaus</strong> <strong>Zickner</strong> / 05.11.2005<br />
5
und bei „Dateiname“ den Namen der Datei eingeben:<br />
mit bestätigen<br />
Regeln für Dateinamen<br />
- Dateinamen können höchstens acht Zeichen haben! (Nur in QBASIC!)<br />
- Dateinamen werden mit Kleinbuchstaben geschrieben<br />
- die ersten beiden Zeichen sind die Anfangsbuchstaben Deines Vor- und Familiennamens. Dann folgt<br />
ohne Leerzeichen der eigentliche Name mit dem Du erkennen kannst, was in der Datei „steckt“<br />
Hinweis: .BAS ist eine Dateikennzeichnung. Diese Kennzeichnung macht das Programm selbständig<br />
<strong>QBasic</strong><strong>Projekt</strong>.DOC / <strong>Klaus</strong> <strong>Zickner</strong> / 05.11.2005<br />
6
Alle weiteren Speicherungen gehen dann etwas einfacher: - in der Menüleiste „Datei“ und dann „Speichern“<br />
anklicken.<br />
Neues Programm beginnen<br />
in der Menüleiste „Datei“ und dann „Neu“ anklicken.<br />
im Dialogfeld wird gefragt, ob die Datei gesichert werden soll<br />
dies mit beantworten<br />
Dateinamen eingeben<br />
Arbeit beenden<br />
in der Menüleiste „Datei" und dann „Beenden“ anklicken.<br />
...Neu anfangen<br />
QBASIC laden<br />
Programmtext eingeben<br />
in der Menüleiste „Datei“ mit der Maus anklicken<br />
dann „Speichern“ anklicken.<br />
und bei „Dateiname" den Namen der Datei eingeben:<br />
Achtung:<br />
Denke daran, dass Dateien mit verschiedenem Inhalt auch unterschiedliche Dateinamen bekommen<br />
müssen: also hmaufg01.BAS.. hmaufg02.BAS.. hmaufg03.BAS..!<br />
„OK" anklicken<br />
...oder Datei öffnen<br />
<strong>QBasic</strong><strong>Projekt</strong>.DOC / <strong>Klaus</strong> <strong>Zickner</strong> / 05.11.2005<br />
7
2. Aufgabe<br />
Gib über die Tastatur ein:<br />
REM Dies ist das 2. Programm<br />
CLS<br />
PRINT „Gib bitte eine Zahl ein:<br />
INPUT A<br />
PRINT A<br />
END<br />
Erklärung:<br />
Der Befehl REM<br />
gibt die Möglichkeit im Programm Texte aufzunehmen, welche bei der Programmabarbeitung nicht berücksichtigt<br />
werden. Diese Texte benutzt der Programmierer, um sein Programm verständlicher zu machen.<br />
Der Befehl CLS<br />
löscht den Bildschirm<br />
Der Befehl INPUT<br />
macht es möglich, während eines Programmablaufes Zahlen oder Text einzugeben. Gelangt das Programm<br />
beim Ablauf an den Befehl INPUT, wird es erst nach einer Eingabe über die Tastatur fortgesetzt.<br />
Der Befehl PRINT<br />
bewirkt etwas anderes wie der Befehl PRINT „! Du siehst sicher den Unterschied!<br />
Im Gegensatz zu PRINT „ gibt PRINT A immer die Zahl aus, welche nach INPUT A eingegeben wurde. A<br />
steht für die Zahl.<br />
3. Aufgabe<br />
Gib über die Tastatur ein:<br />
REM Blinklicht<br />
1 CLS<br />
PRINT „AN“<br />
PRINT „AUS“<br />
GOTO 1<br />
END<br />
Erklärung:<br />
Der Befehl GOTO<br />
bewirkt, dass der Programmablauf an der angegebenen Zeilennummer (1) fortgesetzt wird.<br />
Das Programm wird endlos fortgesetzt. Es kann mit der Taste angehalten werden. Die Taste<br />
setzt das Programm fort und die Tasten + brechen es ganz ab.<br />
4. Aufgabe<br />
Gib über die Tastatur ein:<br />
REM Blinklicht 1. Programm<br />
1 CLS<br />
OUT 888,1<br />
FOR Z=1 TO 6000: NEXT<br />
OUT 888,0<br />
FOR Z=1 TO 6000: NEXT<br />
GOTO 1<br />
<strong>QBasic</strong><strong>Projekt</strong>.DOC / <strong>Klaus</strong> <strong>Zickner</strong> / 05.11.2005<br />
8
Erklärung:<br />
Der Befehl OUT 888,1<br />
sendet ein elektrisches Signal an das Interface<br />
Das Interface ist ein Gerät mit acht Schaltern. Jeder Schalter hat eine Adresse, vergleichbar mit einer<br />
Hausnummer. Mit diesen Schaltern können acht Leuchtdioden, die als Kontroll-Lämpchen dienen einund<br />
ausgeschaltet werden.<br />
Leuchtdioden von links nach rechts:<br />
1. Leuchtdiode OUT 888,1<br />
2. Leuchtdiode OUT 888,2<br />
3. Leuchtdiode OUT 888,4<br />
4. Leuchtdiode OUT 888,8<br />
5. Leuchtdiode OUT 888,16<br />
6. Leuchtdiode OUT 888,32<br />
7. Leuchtdiode OUT 888,64<br />
8. Leuchtdiode OUT 888,128<br />
Sicherlich ist Dir die Gesetzmäßigkeit dieser Zahlenreihe aufgefallen 1- 2 – 4 – 8 – 16 - 32 – 64 - 128<br />
Der Befehl OUT 888,0<br />
bewirkt, dass alle Leuchtdioden ausgeschaltet sind.<br />
Der Befehl FOR Z=1 TO 1000: NEXT<br />
bewirkt, dass der Rechner (Computer) zählt. Er zählt von 1 bis 6000 (FOR Z=1 TO 6000). Danach<br />
(NEXT) wird die nächste Anweisung ausgeführt: OUT 888,...<br />
Zusammenfassung<br />
REM Blinklicht 1. Programm Überschrift<br />
1 CLS Bildschirm löschen<br />
OUT 888,1<br />
Leuchtdiode 1 einschalten<br />
FOR Z=1 TO 6000: NEXT<br />
von 1 bis 6000 zählen und solange LED 1 anlassen<br />
OUT 888,0<br />
Leuchtdiode 1 ausschalten<br />
FOR Z=1 TO 6000: NEXT<br />
von 1 bis 6000 zählen und solange LED 1 auslassen<br />
GOTO 1<br />
zur Nummer 1 gehen und<br />
CLS<br />
Bildschirm löschen<br />
5. Aufgabe<br />
Verlängere das Programm der 4. Aufgabe so, dass nacheinander alle Leuchtdioden an- und wieder ausgeschaltet<br />
werden.<br />
Hinweis zur Arbeitserleichterung:<br />
Markieren: mit dem Mauszeiger auf den Anfang einer Zeile gehen - linke Maustaste drücken und festhalten<br />
- Maus von links nach rechts oder nach unten bewegen - Maustaste loslassen. Die hell unterlegte<br />
Fläche ist nun markiert. Markierte Textteile können ausgeschnitten, kopiert und gelöscht werden. Ausgeschnittene<br />
Textteile sind entfernt und können später an einer anderen Stelle eingefügt werden.<br />
Verwende für diese Arbeit aus der Menüleiste „Bearbeiten“ die Möglichkeiten „Ausschneiden" - „Kopieren"<br />
- „Einfügen" - „Löschen"<br />
Probiere auch die Tasten Einfügen / Entfernen / Escape - Ungültig machen<br />
<strong>QBasic</strong><strong>Projekt</strong>.DOC / <strong>Klaus</strong> <strong>Zickner</strong> / 05.11.2005<br />
9
6. Aufgabe<br />
Verändere das Programm aus der 5. Aufgabe entsprechend:<br />
REM Programm mit GOSUB und RETURN<br />
CLS<br />
PRINT „Beginn des Programms<br />
OUT 888,1<br />
PRINT „LED 1<br />
GOSUB 1<br />
OUT 888,2<br />
PRINT „LED 2<br />
GOSUB 1<br />
OUT 888,4<br />
PRINT „LED 3<br />
GOSUB 1<br />
OUT 888,8<br />
PRINT „LED 4<br />
GOSUB 1<br />
OUT 888,16<br />
PRINT „LED 5<br />
GOSUB 1<br />
OUT 888,32<br />
PRINT „LED 6<br />
GOSUB 1<br />
OUT 888,64<br />
PRINT „LED 7<br />
GOSUB 1<br />
OUT 888,128<br />
PRINT „LED 8<br />
GOSUB 1<br />
END<br />
1 REM 1. Unterprogramm<br />
PRINT „Alles OK, das Programm läuft korrekt<br />
FOR Z=1 TO 1000: NEXT<br />
RETURN<br />
Erklärung:<br />
Der Befehl GOSUB 1<br />
ruft ein Unterprogramm ab der angegebenen Zeile 1 auf und führt bei RETURN das Hauptprogramm<br />
weiter durch<br />
Öfters benötigte Anweisungen werden in einem Unterprogramm zusammengefasst. Die letzte Anweisung<br />
in diesem Unterprogramm ist RETURN<br />
GOTO ist eine Sprunganweisung ohne - GOSUB eine Sprunganweisung mit Rücksprung!<br />
<strong>QBasic</strong><strong>Projekt</strong>.DOC / <strong>Klaus</strong> <strong>Zickner</strong> / 05.11.2005<br />
10
Anhang<br />
ASCII-Tabelle<br />
Zeichen für Umrahmungen:<br />
Zur Darstellung der Zeichen müssen die Taste und gleichzeitig die Nummer eingegeben werden,<br />
z.B. +218 = Ú<br />
Einstellungen in <strong>QBasic</strong> - Bildschirmanzeige<br />
<strong>QBasic</strong><strong>Projekt</strong>.DOC / <strong>Klaus</strong> <strong>Zickner</strong> / 05.11.2005<br />
11
Beim normalen Text wird die Vordergrundfarbe (Textfarbe) auf Schwarz, die Hintergrundfarbe auf weiß<br />
gestellt.<br />
<strong>QBasic</strong><strong>Projekt</strong>.DOC / <strong>Klaus</strong> <strong>Zickner</strong> / 05.11.2005<br />
12
Beispiel - QBASIC-Programme<br />
TEBASIC1.BAS<br />
REM 1. Aufgabe TEBASIC Kurs<br />
PRINT „Guten Tag, lieber Techniklehrer"<br />
END<br />
TEBASIC2.BAS<br />
REM 2. Aufgabe TEBASIC Kurs<br />
REM Dies ist das 2. Programm<br />
CLS<br />
PRINT „Gib bitte eine Zahl ein:“<br />
INPUT a<br />
PRINT a<br />
END<br />
TEBASIC3.BAS<br />
REM 3. Aufgabe TEBASIC Kurs<br />
CLS<br />
INPUT „Gib bitte eine Zahl ein: „, A<br />
CLS<br />
PRINT „Du hast folgende Zahl eingegeben:“; A<br />
END<br />
TEBASIC4.BAS<br />
REM 4. Aufgabe TEBASIC Kurs<br />
1 CLS<br />
PRINT „AN“<br />
PRINT „AUS“<br />
GOTO 1<br />
END<br />
TEBASIC5.BAS<br />
REM 5. Aufgabe TEBASIC Kurs<br />
REM Blinklicht 1. Programm<br />
1 CLS<br />
OUT 888, 1<br />
FOR Z = 1 TO 6000: NEXT<br />
OUT 888, 0<br />
FOR Z = 1 TO 6000: NEXT<br />
GOTO 1<br />
TEBASIC6.BAS<br />
REM 6. Programm TEBASIC Kurs<br />
REM Blinklicht 2. Programm<br />
CLS<br />
OUT 888, 1<br />
PRINT „LED 1“<br />
FOR Z = 1 TO 6000: NEXT<br />
OUT 888, 2<br />
PRINT „LED 2“<br />
OUT 888, 4<br />
PRINT „LED 3“<br />
FOR Z = 1 TO 6000: NEXT<br />
OUT 888, 8<br />
PRINT „LED 4“<br />
<strong>QBasic</strong><strong>Projekt</strong>.DOC / <strong>Klaus</strong> <strong>Zickner</strong> / 05.11.2005<br />
13
FOR Z = 1 TO 6000: NEXT<br />
OUT 888, 16<br />
PRINT „LED 5“<br />
FOR Z = 1 TO 6000: NEXT<br />
OUT 888, 32<br />
PRINT „LED 6“<br />
FOR Z = 1 TO 6000: NEXT<br />
OUT 888, 64<br />
PRINT „LED 7“<br />
FOR Z = 1 TO 6000: NEXT<br />
OUT 888, 128<br />
PRINT „LED 8“<br />
FOR Z = 1 TO 6000: NEXT<br />
END<br />
TEBASIC7.BAS<br />
REM 7. Programm TEBASIC Kurs<br />
REM Programm mit GOSUB und RETURN<br />
CLS<br />
OUT 888, 1<br />
PRINT „LED 1“<br />
GOSUB 1<br />
OUT 888, 2<br />
PRINT „LED 2“<br />
GOSUB 1<br />
OUT 888, 4<br />
PRINT „LED 3“<br />
GOSUB 1<br />
OUT 888, 8<br />
PRINT „LED 4“<br />
GOSUB 1<br />
OUT 888, 16<br />
PRINT „LED 5“<br />
GOSUB 1<br />
OUT 888, 32<br />
PRINT „LED 6“<br />
GOSUB 1<br />
OUT 888, 64<br />
PRINT „LED 7“<br />
GOSUB 1<br />
OUT 888, 128<br />
PRINT „LED 8“<br />
GOSUB 1<br />
GOSUB 2<br />
END<br />
1 REM 1. Unterprogramm<br />
PRINT „Alles OK, das Programm läuft korrekt“<br />
FOR Z = 1 TO 6000: NEXT<br />
CLS<br />
RETURN<br />
2 REM 2. Unterprogramm<br />
PRINT „Das Programm ist beendet“<br />
FOR Z = 1 TO 6000: NEXT<br />
CLS<br />
RETURN<br />
<strong>QBasic</strong><strong>Projekt</strong>.DOC / <strong>Klaus</strong> <strong>Zickner</strong> / 05.11.2005<br />
14
Steuerungsprogramme / Beispiele<br />
AMPEL1.BAS<br />
REM AMPEL1.BAS<br />
REM Ampel-Steuerung von Hülja? Hauptschulabschlussprüfung Fach Technik 1990?<br />
REM Überarbeitete Version /<strong>Klaus</strong> <strong>Zickner</strong> 01.93 co<br />
CLS<br />
PRINT „Bitte starten Sie dieses Programm! Vergessen Sie nicht“<br />
PRINT „den Zeit-Takt einzugeben. Danke!“<br />
INPUT S<br />
1 REM Ampelsteuerung<br />
CLS<br />
PRINT „***********“<br />
PRINT „* AUS *“<br />
PRINT „***********“<br />
OUT 888,0<br />
FOR T=1 TO S:NEXT<br />
OUT 888,4+32<br />
CLS<br />
PRINT „**************************“<br />
PRINT „* Ampel schaltet grün *“<br />
PRINT „**************************“<br />
FOR T=1 TO S:NEXT<br />
OUT 888,8+64<br />
CLS<br />
PRINT „************************“<br />
PRINT „* Ampel schaltet auf *“<br />
PRINT „* gelb *“<br />
PRINT „************************“<br />
FOR T=1 TO S:NEXT<br />
CLS<br />
PRINT „**************************“<br />
PRINT „* Ampel schaltet auf *“<br />
PRINT „* rot *“<br />
PRINT „**************************“<br />
OUT 888,16+128<br />
FOR T=1 TO S:NEXT<br />
OUT 888,8+64<br />
CLS<br />
PRINT „*****************************“<br />
PRINT „* Es geht wieder zurück *“<br />
PRINT „* aufs gelb *“<br />
PRINT „*****************************“<br />
FOR T=1 TO S:NEXT<br />
CLS<br />
PRINT „******************************“<br />
PRINT „* Ampel schaltet auf grün *“<br />
PRINT „******************************“<br />
OUT 888,4+32<br />
FOR T=1 TO S:NEXT<br />
CLS<br />
PRINT „********************************“<br />
PRINT „* Bei Ampel 1. leuchtet rot *“<br />
PRINT „* und bei Ampel 2. leuchtet *“<br />
PRINT „* es grün *“<br />
PRINT „********************************“<br />
OUT 888,16+32<br />
FOR T=1 TO S:NEXT<br />
CLS<br />
PRINT „**********************************“<br />
PRINT „* Bei beiden Ampeln leuchtet *“<br />
PRINT „* es gelb *“<br />
PRINT „**********************************“<br />
OUT 888,8+64<br />
FOR T=1 TO S:NEXT<br />
<strong>QBasic</strong><strong>Projekt</strong>.DOC / <strong>Klaus</strong> <strong>Zickner</strong> / 05.11.2005<br />
15
CLS<br />
PRINT „***********************************“<br />
PRINT „* Bei Ampel 1. leuchtet es *“<br />
PRINT „* grün und bei Ampel 2. leuch-*“<br />
PRINT „* tet es rot *“<br />
PRINT „************************************“<br />
OUT 888,4+128<br />
FOR T=1 TO S:NEXT<br />
CLS<br />
PRINT „**********************************“<br />
PRINT „* Wegen Störung fallen die *“<br />
PRINT „* Ampeln auf der Strasse aus *“<br />
PRINT „***********************************“<br />
OUT 888,0<br />
FOR T=1 TO S:NEXT<br />
GOTO 1<br />
AMPEL2.BAS<br />
REM AMPEL2.BAS<br />
REM Ampel-Steuerung von Michael P. Stocker / Hauptschulabschlussprüfung<br />
REM Fach Technik 1989<br />
REM Überarbeitete Version /<strong>Klaus</strong> <strong>Zickner</strong> 01.93 co<br />
CLS<br />
PRINT „*********************************************************************“<br />
PRINT „* *“<br />
PRINT „* Geben Sie die Geschwindigkeit ein, mit der das Programm *“<br />
PRINT „* ablaufen soll. Maximal 5000 *“<br />
PRINT „* *“<br />
PRINT „*********************************************************************“<br />
INPUT S<br />
PRINT<br />
PRINT<br />
1 CLS<br />
PRINT „**********************************************“<br />
PRINT „* *“<br />
PRINT „* Ampel ist auf Grün geschaltet *“<br />
PRINT „* *“<br />
PRINT „**********************************************“<br />
OUT 888,4<br />
FOR T=1 TO S :NEXT<br />
CLS<br />
PRINT „**********************************************“<br />
PRINT „* *“<br />
PRINT „* Ampel hat auf gelb umgeschaltet *“<br />
PRINT „* *“<br />
PRINT „**********************************************“<br />
OUT 888,2<br />
FOR T=1 TO S :NEXT<br />
CLS<br />
PRINT „**********************************************“<br />
PRINT „* *“<br />
PRINT „* Ampel ist auf Rot gestellt *“<br />
PRINT „* *“<br />
PRINT „**********************************************“<br />
OUT 888,1<br />
FOR T=1 TO S :NEXT<br />
CLS<br />
PRINT „**********************************************“<br />
PRINT „* *“<br />
PRINT „* Ampel leuchtet Rot-Gelb auf *“<br />
PRINT „* *“<br />
PRINT „**********************************************“<br />
OUT 888,1+2<br />
FOR T=1 TO S :NEXT<br />
GOTO 1<br />
<strong>QBasic</strong><strong>Projekt</strong>.DOC / <strong>Klaus</strong> <strong>Zickner</strong> / 05.11.2005<br />
16
END<br />
AMPEL3.BAS<br />
REM AMPEL3.BAS<br />
REM Ampel-Steuerung von Ralf Hausch / Hauptschulabschlussprüfung Fach Technik 1988<br />
REM Überarbeitete Version /<strong>Klaus</strong> <strong>Zickner</strong> 01.93 co<br />
REM AMPELSCHALTUNG<br />
1 CLS<br />
LOCATE 10,14<br />
PRINT „AMPELSCHALTUNG VON 2 GEGENLÄUFIGEN AMPELN“<br />
LOCATE 11,14<br />
PRINT „ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!“<br />
LOCATE 12,14<br />
PRINT „WENN SIE ES SATT HABEN DIESES PROGRAMM ZU SEHEN,“<br />
PRINT „DRÜCKEN SIE BITTE DIE TASTEN“<br />
PRINT „+ !!“<br />
PRINT „AMPEL 1 UND 2 WERDEN ROT“<br />
OUT 888,1+32 : GOSUB 2<br />
PRINT „AMPEL 1 BLEIBT ROT 2 WIRD ROT UND GELB“<br />
OUT 888,32+64+1 : GOSUB 2<br />
PRINT „AMPEL 1 BLEIBT ROT 2 WIRD GRÜN“<br />
OUT 888,1+128 : GOSUB 3<br />
PRINT „AMPEL 1 BLEIBT ROT 2 WIRD GELB“<br />
OUT 888,64+1 : GOSUB 2<br />
PRINT „AMPEL 1 UND 2 WERDEN ROT“<br />
OUT 888,32+1 : GOSUB 2<br />
PRINT „AMPEL 2 BLEIBT ROT 1 WIRD ROT UND GELB“<br />
OUT 888,1+2+32 : GOSUB 2<br />
PRINT „AMPEL 2 BLEIBT ROT 1 WIRD GRÜN“<br />
OUT 888,4+32 : GOSUB 3<br />
85 PRINT „AMPEL 2 BLEIBT ROT 1 WIRD GELB“<br />
OUT 888,2+32 : GOSUB 2<br />
PRINT „AMPEL 1 UND 2 WERDEN ROT“<br />
OUT 888,1+32 : GOSUB 4<br />
GOTO 1<br />
2 FOR R=1 TO 6000 : NEXT<br />
RETURN<br />
3 FOR I=1 TO 11100 : NEXT<br />
RETURN<br />
4 FOR E=1 TO 1500 : NEXT<br />
RETURN<br />
AMPEL4.BS<br />
REM AMPEL4.BAS<br />
REM Ampel-Steuerung von Daniel Fassnacht<br />
REM Überarbeitete Version /<strong>Klaus</strong> <strong>Zickner</strong> 01.93 co<br />
CLS<br />
LOCATE 2,25:PRINT „************************“<br />
LOCATE 3,25:PRINT „********AMPEL********“<br />
LOCATE 4,25:PRINT „************************“<br />
6<br />
LOCATE 11,10:INPUT „GEBEN SIE DIE INTERWALLDAUER IN SEK. EIN“;IVD<br />
LOCATE 13,10:INPUT „GEBEN SIE EIN WIE OFT DER INTERWALL DURCHLAUFEN SOLL“;ID<br />
FOR I =1 TO 1000 :NEXT<br />
OUT 888,0 :GOSUB 1<br />
OUT 888,1+32 :GOSUB 1<br />
OUT 888,2+32 :GOSUB 1<br />
OUT 888,4+48 :GOSUB 1<br />
OUT 888,4+8 :GOSUB 1<br />
OUT 888,4+16 :GOSUB 1<br />
OUT 888,6+32 :GOSUB 1<br />
OUT 888,1+32 :GOSUB 1<br />
OUT 888,0 :GOSUB 1<br />
<strong>QBasic</strong><strong>Projekt</strong>.DOC / <strong>Klaus</strong> <strong>Zickner</strong> / 05.11.2005<br />
17
LOCATE 18,15:INPUT „MÖCHTEN SIE NOCH EINMAL (J/N)“;JN$<br />
IF JN$=„J“OR JN$ =„j“ THEN GOTO 4<br />
IF JN$=„N“ OR JN$= „n“ THEN GOTO 3<br />
IF JN =CR THEN GOTO 3<br />
4 CLS :GOTO 2<br />
2 GOTO 6<br />
3 END<br />
1 FOR I =1 TO 5000 :NEXT<br />
RETURN<br />
BLINK1.BAS<br />
REM BLINK1.BAS<br />
REM Blinklicht Grundprogramm<br />
1<br />
PRINT „Blinklicht Grundprogramm - nacheinander werden alle LED´s“<br />
PRINT „eingeschalten“<br />
FOR T = 1 TO 5000 : NEXT T<br />
OUT 888,1<br />
FOR T = 1 TO 5000 : NEXT T<br />
OUT 888,1+2<br />
FOR T = 1 TO 5000 : NEXT T<br />
OUT 888,1+2+4<br />
FOR T = 1 TO 5000 : NEXT T<br />
OUT 888,1+2+4+8<br />
FOR T = 1 TO 5000 : NEXT T<br />
OUT 888,1+2+4+8+16<br />
FOR T = 1 TO 5000 : NEXT T<br />
OUT 888,1+2+4+8+16+32<br />
FOR T = 1 TO 5000 : NEXT T<br />
OUT 888,1+2+4+8+16+32+64<br />
FOR T = 1 TO 5000 : NEXT T<br />
OUT 888,1+2+4+8+16+32+64+128<br />
GOTO 1<br />
BLINK2.BAS<br />
REM BLINK2.BAS<br />
REM Blinklicht - Grundprogramm mit Eingabe eines Zeit-Intervalls<br />
1<br />
CLS<br />
PRINT „Blinklicht Grundprogramm - mit Eingabe eines Zeit-Intervalls“<br />
PRINT „Zeit-Intervall eingeben:“ INPUT S<br />
OUT 888,1<br />
FOR T = 1 TO S : NEXT T<br />
OUT 888,1+2<br />
FOR T = 1 TO S : NEXT T<br />
OUT 888,1+2+4<br />
FOR T = 1 TO S : NEXT T<br />
OUT 888,1+2+4+8<br />
FOR T = 1 TO S : NEXT T<br />
OUT 888,1+2+4+8+16<br />
FOR T = 1 TO S : NEXT T<br />
OUT 888,1+2+4+8+16+32<br />
FOR T = 1 TO S : NEXT T<br />
OUT 888,1+2+4+8+16+32+64<br />
FOR T = 1 TO S : NEXT T<br />
OUT 888,1+2+4+8+16+32+64+128<br />
GOTO 1<br />
<strong>QBasic</strong><strong>Projekt</strong>.DOC / <strong>Klaus</strong> <strong>Zickner</strong> / 05.11.2005<br />
18
BOHRER1.BAS<br />
REM BOHRER1.BAS<br />
REM Platinenbohrer - Grundsteuerprogramm /co <strong>Klaus</strong> <strong>Zickner</strong> /01.93<br />
REM Voraussetzungen: Trafoanschluss 18 Volt / 1,5 Ampere Gleichstrom<br />
1<br />
CLS<br />
PRINT „Platinenbohrer - Grundsteuerprogramm /co <strong>Klaus</strong> <strong>Zickner</strong> /01.93“<br />
PRINT „Voraussetzungen: Trafoanschluss 18 Volt / 1,5 Ampere Gleichstrom“<br />
FOR T = 1 TO 50000: NEXT T<br />
CLS<br />
PRINT „Horizontal-Wagen nach LINKS“<br />
FOR N = 1 TO 20<br />
OUT 888, 5 + 32: FOR T = 1 TO 200: NEXT T<br />
OUT 888, 6 + 32: FOR T = 1 TO 200: NEXT T<br />
OUT 888, 10 + 32: FOR T = 1 TO 200: NEXT T<br />
OUT 888, 9 + 32: FOR T = 1 TO 200: NEXT T<br />
NEXT N<br />
OUT 888, 0<br />
CLS<br />
PRINT „Horizontal-Wagen nach RECHTS“<br />
FOR N = 1 TO 20<br />
OUT 888, 5 + 32: FOR T = 1 TO 200: NEXT T<br />
OUT 888, 9 + 32: FOR T = 1 TO 200: NEXT T<br />
OUT 888, 10 + 32: FOR T = 1 TO 200: NEXT T<br />
OUT 888, 6 + 32: FOR T = 1 TO 200: NEXT T<br />
NEXT N<br />
OUT 888, 0<br />
CLS<br />
PRINT „Vertikal-Wagen nach LINKS“<br />
FOR N = 1 TO 20<br />
OUT 888, 5 + 16: FOR T = 1 TO 200: NEXT T<br />
OUT 888, 9 + 16: FOR T = 1 TO 200: NEXT T<br />
OUT 888, 10 + 16: FOR T = 1 TO 200: NEXT T<br />
OUT 888, 6 + 16: FOR T = 1 TO 200: NEXT T<br />
NEXT N<br />
OUT 888, 0<br />
CLS<br />
PRINT „Vertikal-Wagen nach RECHTS“<br />
FOR N = 1 TO 20<br />
OUT 888, 5 + 16: FOR T = 1 TO 200: NEXT T<br />
OUT 888, 6 + 16: FOR T = 1 TO 200: NEXT T<br />
OUT 888, 10 + 16: FOR T = 1 TO 200: NEXT T<br />
OUT 888, 9 + 16: FOR T = 1 TO 200: NEXT T<br />
NEXT N<br />
OUT 888, 0<br />
CLS<br />
PRINT „Bohrmaschine AUF“<br />
FOR N = 1 TO 20<br />
OUT 888, 5 + 64: FOR T = 1 TO 200: NEXT T<br />
OUT 888, 9 + 64: FOR T = 1 TO 200: NEXT T<br />
OUT 888, 10 + 64: FOR T = 1 TO 200: NEXT T<br />
OUT 888, 6 + 64: FOR T = 1 TO 200: NEXT T<br />
NEXT N<br />
OUT 888, 0<br />
CLS<br />
PRINT „Bohrmaschine AB“<br />
FOR N = 1 TO 20<br />
OUT 888, 5 + 64: FOR T = 1 TO 200: NEXT T<br />
OUT 888, 6 + 64: FOR T = 1 TO 200: NEXT T<br />
OUT 888, 10 + 64: FOR T = 1 TO 200: NEXT T<br />
OUT 888, 9 + 64: FOR T = 1 TO 200: NEXT T<br />
NEXT N<br />
PRINT „ENDE“<br />
OUT 888, 0<br />
END<br />
<strong>QBasic</strong><strong>Projekt</strong>.DOC / <strong>Klaus</strong> <strong>Zickner</strong> / 05.11.2005<br />
19
GREIFER1.BAS<br />
REM GREIFER1.BAS<br />
REM Greifer Grundprogramm<br />
PRINT „Greifer - Grundsteuerprogramm /co <strong>Klaus</strong> <strong>Zickner</strong> /01.93“<br />
PRINT „Voraussetzungen: Interface 5 Volt / Trafo-Ventile 6 Volt / Luft 2,8 bar“<br />
PRINT „Alle Grundfunktionen des Greifers werden ausgeführt!“<br />
PRINT „ANFANG“<br />
OUT 888,1<br />
FOR T=1 TO 50000:NEXT T<br />
OUT 888,0<br />
FOR T=1 TO 50000:NEXT T<br />
OUT 888,2<br />
FOR T=1 TO 50000:NEXT T<br />
OUT 888,2+1<br />
FOR T=1 TO 50000:NEXT T<br />
OUT 888,2+1+4<br />
FOR T=1 TO 50000:NEXT T<br />
OUT 888,2+4<br />
FOR T=1 TO 50000:NEXT T<br />
OUT 888,4<br />
FOR T=1 TO 50000:NEXT T<br />
OUT 888,4+1<br />
FOR T=1 TO 50000:NEXT T<br />
PRINT „ENDE“<br />
GREIFER2.BAS<br />
REM GREIFER2.BAS<br />
REM Greifer - Grundsteuerprogramm /co <strong>Klaus</strong> <strong>Zickner</strong> /01.93<br />
REM Voraussetzungen: Interface 5 Volt / Trafo-Ventile 6 Volt / Luft 2,8 bar<br />
1<br />
CLS<br />
PRINT „Greifer - Grundsteuerprogramm /co <strong>Klaus</strong> <strong>Zickner</strong> /01.93“<br />
PRINT „Voraussetzungen: Interface 5 Volt / Trafo-Ventile 6 Volt / Luft 2,8 bar“<br />
FOR T = 1 TO 50000: NEXT T<br />
CLS<br />
PRINT „Grundstellung“<br />
OUT 888, 255<br />
FOR T = 1 TO 50000: NEXT T<br />
OUT 888, 1 + 2 + 4<br />
FOR T = 1 TO 50000: NEXT T<br />
CLS<br />
PRINT „Schwenken“<br />
OUT 888, 1 + 2<br />
FOR T = 1 TO 50000: NEXT T<br />
CLS<br />
PRINT „Senken“<br />
OUT 888, 2<br />
FOR T = 1 TO 50000: NEXT T<br />
CLS<br />
PRINT „Greifen und Schwenken“<br />
OUT 888, 4<br />
FOR T = 1 TO 50000: NEXT T<br />
CLS<br />
PRINT „Loslassen“<br />
OUT 888, 2 + 4<br />
FOR T = 1 TO 50000: NEXT T<br />
CLS<br />
PRINT „Grundstellung“<br />
OUT 888, 1 + 2 + 4<br />
FOR T = 1 TO 50000: NEXT T<br />
GOTO ANFANG<br />
END<br />
<strong>QBasic</strong><strong>Projekt</strong>.DOC / <strong>Klaus</strong> <strong>Zickner</strong> / 05.11.2005<br />
20
GREIFER3.BAS<br />
REM GREIFER3.BAS<br />
REM DANIEL FASSNACHT ZIEGELBACHSTR.33 7332 EISLINGEN FILS<br />
REM Hauptschulabschlussprüfung Fach Technik 1991?<br />
REM Form überarbeitet 01.93/ <strong>Klaus</strong> <strong>Zickner</strong> co<br />
3 CLS<br />
OUT 888,0<br />
LOCATE 4,28 : PRINT „****************“<br />
LOCATE 5,28 : PRINT „**ROBOTER**“<br />
LOCATE 6,28 : PRINT „****************“<br />
LOCATE 8,20 : INPUT „WIE OFT SOLL ER SICH BEWEGEN“;B<br />
FOR I = 1 TO B<br />
OUT 888,1 : CLS : LOCATE 10,33 : PRINT „**SENKT**“ : GOSUB 1<br />
OUT 888,1+2 : CLS : LOCATE 10,33 : PRINT „**GREIFT**“ : GOSUB 1<br />
OUT 888,2 : CLS : LOCATE 10,33 : PRINT „**HEBT**“ : GOSUB 1<br />
OUT 888,2+4 : CLS : LOCATE 10,33 : PRINT „**SCHWENKT**“ : GOSUB 1<br />
OUT 888,2 : CLS : LOCATE 10,33 : PRINT „**SCHWENKT ZURÜCK**“: GOSUB 1<br />
OUT 888,4+2 : CLS : LOCATE 10,33 : PRINT „**SCHWENKT**“ : GOSUB 1<br />
OUT 888,1+4+2 : CLS : LOCATE 10,33 : PRINT „**SENKT**“ : GOSUB 1<br />
OUT 888,1+4 : CLS : LOCATE 10,33 : PRINT „**LÄSST LOS**“ : GOSUB 1<br />
OUT 888,4 : CLS : LOCATE 10,33 : PRINT „**GEHT HOCH**“ : GOSUB 1<br />
OUT 888,0 : CLS : LOCATE 10,33 : PRINT „**GEHT ZUM ANFANG**“: GOSUB 1<br />
NEXT I<br />
GOSUB 2<br />
1 FOR Z = 1 TO 7000 : NEXT Z<br />
RETURN<br />
2 CLS<br />
5 LOCATE 11,30 : INPUT „ NOCH EINMAL (J/N)“;AB$<br />
IF AB$ =„J“THEN GOTO 3<br />
IF AB$ =„N“THEN 4<br />
IF AB$ = „“ THEN 5<br />
4 CLS : FILES : NEW<br />
GREIFER4.BAS<br />
REM GREIFER4.BAS<br />
REM Greifersteuerung von Paul Lampert/Hauptschulabschlussprüfung 1989?<br />
REM Überarbeitete Version für QBASIC /<strong>Klaus</strong> <strong>Zickner</strong> 01.93<br />
REM ***********************************************<br />
REM *** G R E I F E R - S T E U E R U N G ***<br />
REM ***********************************************<br />
4 CLS : COLOR 7, 0, 0<br />
COLOR 15: LOCATE 8, 25: PRINT „Programm Greifersteuerung“<br />
COLOR 4: LOCATE 9, 23: PRINT „Copyright (c) by Paul Lambert“<br />
COLOR 15<br />
LOCATE 12, 15<br />
PRINT „Bevor Sie das Programm starten muss einiges beachtet“<br />
PRINT TAB(15); „werden :“<br />
COLOR 7<br />
PRINT TAB(21); „Sie müssen den DATA TRANSFER SCHALTER auf -B-“<br />
PRINT TAB(21); „stellen. Der Transformator für den Greifer ein-“<br />
PRINT TAB(21); „schalten.“<br />
COLOR 15<br />
PRINT TAB(21); „ACHTUNG :“<br />
COLOR 7<br />
PRINT TAB(21); „Der Greiferarm darf bei seinen Bewegungen nicht“<br />
PRINT TAB(21); „behindert werden.“<br />
COLOR 15<br />
1 LOCATE 22, 25: PRINT „Wenn fertig, eine Taste drücken“<br />
A$ = INKEY$: IF A$ = „„ THEN 1<br />
CLS<br />
LOCATE 10, 20: INPUT „Wie oft soll der Vorgang wiederholt werden :“, V<br />
LOCATE 12, 20: INPUT „Intervalle zwischen den Bewegungen in (sec.):“, Z<br />
2 LOCATE 16, 30: PRINT „Wenn fertig, eine Taste drücken“<br />
<strong>QBasic</strong><strong>Projekt</strong>.DOC / <strong>Klaus</strong> <strong>Zickner</strong> / 05.11.2005<br />
21
A$ = INKEY$: IF A$ = „“ THEN 2<br />
FOR A = 1 TO V<br />
OUT 888, 0: GOSUB 3<br />
OUT 888, 1: GOSUB 3<br />
OUT 888, 1 + 2: GOSUB 3<br />
OUT 888, 2: GOSUB 3<br />
OUT 888, 2 + 4: GOSUB 3<br />
OUT 888, 2: GOSUB 3<br />
OUT 888, 2 + 4: GOSUB 3<br />
OUT 888, 1 + 2 + 4: GOSUB 3<br />
OUT 888, 1 + 4: GOSUB 3<br />
OUT 888, 4: GOSUB 3<br />
OUT 888, 0: GOSUB 3<br />
NEXT A<br />
CLS<br />
6 COLOR 15: LOCATE 12, 25: INPUT „Möchten Sie noch einmal (J/N)“; JN$<br />
IF JN$ = „J“ OR JN$ = „j“ THEN 4<br />
IF JN$ = „N“ OR JN$ = „n“ THEN 5<br />
IF JN = CR THEN 6<br />
5 CLS<br />
COLOR 31<br />
LOCATE 10, 30: PRINT „****************“<br />
LOCATE 11, 30: PRINT „*** E N D E ***“<br />
LOCATE 12, 30: PRINT „****************“<br />
CLS : FILES<br />
END<br />
3 FOR I = 1 TO Z * 2000: NEXT I<br />
RETURN<br />
MAGAZIN1.BAS<br />
REM MAGAZIN1.BAS<br />
REM PC Programm für SM-Transportautomat/ co <strong>Klaus</strong> <strong>Zickner</strong> /01.93<br />
REM Voraussetzungen: Interface 5 Volt / Trafo-Ventile 6 Volt / Luft 2,8 bar<br />
1 CLS<br />
PRINT „Magazin - Grundsteuerprogramm /co <strong>Klaus</strong> <strong>Zickner</strong> /01.93“<br />
PRINT „Voraussetzungen: Interface 5 Volt / Trafo-Ventile 6 Volt / Luft 2,8 bar“<br />
FOR T = 1 TO 50000: NEXT T<br />
CLS<br />
PRINT „Vorschub“<br />
OUT 888, 0<br />
FOR T = 1 TO 50000: NEXT T<br />
CLS<br />
PRINT „Rückschub“<br />
OUT 888, 1<br />
FOR T = 1 TO 50000: NEXT T<br />
CLS<br />
GOTO 1<br />
END<br />
MAGAZIN2.BAS<br />
REM MAGAZIN2.BAS<br />
REM PC Programm für SM-Transportautomat/ co <strong>Klaus</strong> <strong>Zickner</strong> /01.93<br />
REM Voraussetzungen: Interface 5 Volt / Trafo-Ventile 6 Volt / Luft 2,8 bar<br />
REM Mit Abfrage der Taktzeit/Bildschirm-Farbgestaltung/Sound<br />
1<br />
SCREEN 0<br />
COLOR 15, 1, 4<br />
LOCATE 5, 15<br />
PRINT „Geben Sie die Taktzeit in Sekunden ein:“<br />
LOCATE 5, 55<br />
INPUT t<br />
w = 1000 * t<br />
REM Steuerprogramm - Pneumatikzylinder<br />
2 CLS<br />
<strong>QBasic</strong><strong>Projekt</strong>.DOC / <strong>Klaus</strong> <strong>Zickner</strong> / 05.11.2005<br />
22
LOCATE 5, 15<br />
PRINT „In Betrieb /Takt Nr.:“<br />
OUT 888, 1<br />
n = n + 1<br />
LOCATE 5, 35<br />
PRINT n<br />
FOR z = 1 TO 2000: NEXT z<br />
OUT 888, 0<br />
FOR z = 1 TO w: NEXT z<br />
REM Abfrage des Füllstandes<br />
REM IF joy(0) = 0 THEN GOTO 1<br />
REM Nachfüllen<br />
CLS<br />
LOCATE 7, 15<br />
PRINT „Bitte nachfüllen!“<br />
LOCATE 8, 15<br />
PRINT „Danach die Leertaste drücken!“<br />
3 a$ = INKEY$<br />
SOUND 440, 1<br />
IF a$ = „“ THEN 2<br />
GOTO 3<br />
STYROPOR.BAS<br />
REM STYROPOR.BAS<br />
REM Styroporschneider - Grundsteuerprogramm /co <strong>Klaus</strong> <strong>Zickner</strong> /01.93<br />
REM Voraussetzungen: Interface 5 Volt / Trafo 6 Volt<br />
1<br />
CLS<br />
OUT 888, 0<br />
PRINT „Styroporschneider - Grundsteuerprogramm /co <strong>Klaus</strong> <strong>Zickner</strong> /01.93“<br />
PRINT „Das Programm schneidet ein kleines Rechteck“<br />
PRINT „Voraussetzungen: Interface 5 Volt / Trafo 6 Volt“<br />
PRINT „Maschine in Ausgangsposition bringen. Dabei darauf achten,“<br />
PRINT „dass die END Markierungen nicht überfahren werden!“<br />
PRINT „In der Probephase Trafo-Schalter zum EIN/AUS schalten benutzen“<br />
PRINT „<br />
PRINT „Ausgangsposition TRAFO JETZT EINSCHALTEN“<br />
FOR T = 1 TO 50000: NEXT T<br />
CLS<br />
PRINT „Wagen bewegt sich nach LINKS“<br />
OUT 888, 8<br />
FOR T = 1 TO 100000: NEXT T<br />
CLS<br />
PRINT „Heizdraht bewegt sich nach OBEN“<br />
OUT 888, 2<br />
FOR T = 1 TO 50000: NEXT T<br />
CLS<br />
PRINT „Wagen bewegt sich nach RECHTS“<br />
OUT 888, 4<br />
FOR T = 1 TO 100000: NEXT T<br />
CLS<br />
PRINT „Heizdraht bewegt sich nach UNTEN“<br />
OUT 888, 1<br />
FOR T = 1 TO 50000: NEXT T<br />
CLS<br />
PRINT „Anfang“<br />
GOTO 1<br />
END<br />
<strong>QBasic</strong><strong>Projekt</strong>.DOC / <strong>Klaus</strong> <strong>Zickner</strong> / 05.11.2005<br />
23
TURTLE1.BAS<br />
REM TURTLE1.BAS<br />
REM Turtle - Grundsteuerprogramm /co <strong>Klaus</strong> <strong>Zickner</strong> /01.93<br />
1<br />
CLS<br />
OUT 888, 0<br />
PRINT „Turtle - Grundsteuerprogramm /co <strong>Klaus</strong> <strong>Zickner</strong> /01.93“<br />
PRINT „Voraussetzungen: Interface 5 Volt / Trafo 4,5 Volt“<br />
PRINT „Interface jetzt EINSCHALTEN“<br />
FOR T = 1 TO 50000: NEXT T<br />
CLS<br />
PRINT „Kreisfahrt LINKS“<br />
OUT 888, 2 + 8<br />
FOR T = 1 TO 50000: NEXT T<br />
CLS<br />
PRINT „Stop“<br />
OUT 888, 0<br />
FOR T = 1 TO 50000: NEXT T<br />
CLS<br />
PRINT „Kreisfahrt RECHTS“<br />
OUT 888, 1 + 4<br />
FOR T = 1 TO 50000: NEXT T<br />
CLS<br />
PRINT „Stop“<br />
OUT 888, 0<br />
FOR T = 1 TO 50000: NEXT T<br />
CLS<br />
GOTO 1<br />
END<br />
<strong>QBasic</strong><strong>Projekt</strong>.DOC / <strong>Klaus</strong> <strong>Zickner</strong> / 05.11.2005<br />
24