V
Inhaltsverzeichnis
Einleitung ' 1
Was vermittelt das Buch? 1
Wie Sie mit diesem Buch arbeiten sollten 2
Nobody is perfect! 2
Kapitel 1 - Installation
3Systemanforderungen 5
Speicherplatzbedarf 5
Externe Speichermedien 5
Installation von QuickBASIC 6
Installation mit dem SETUP-Programm 6
Installation ohne SETUP-Programm 6
Sonstige Besonderheiten 7
Arbeit mit der Maus 7
Hercules-(kompatible) Grafikkarte 7
Ein Startprogramm für Ihr QuickBASIC 7
Kapitel 2 - Zahlen, Ziffern, Zeichen
9Die Zahlensysteme des Rechners 11
Das Binärsystem oder duale Zahlensystem 11
Bit und Byte 11
Das Hexadezimalsystem 13
Oktalzahlen 14
Das Dezimalsystem 14
Zahlensysteme des Computers sind Stellwertsysteme 14
Computersysteme 15
Ein paar Hinweise zur Exponentialrechnung 15
Wie aus Zahlen Zeichen werden 17
Steuerzeichen 17
Erweiterte ASCII-Werte 19
http://d-nb.info/910498946
V I Programmentwicklung mit QuickBASIC
Kapitel 3 - Allgemeines zu BASIC 21
Computersprachen 2 3
Die Entwicklung von BASIC 23
Wie QuickBASIC entstand 24
Der erste Kontakt mit QuickBASIC 24
Der QuickBASIC-Editor 24
Kapitel 4 - CLS und PRINT für die Bildschirmgestaltung 31
CLS ... klar Schiff zum Gefecht 3 3
Bestätigung mit <Return> 34
PRINT ... wie man auf den Bildschirm schreibt 34
Die PRINT-An Weisung 34
Anweisungen aus dem Arbeitsfenster ausführen 36
Start mit RUN 36
Start über das Menü 37
Starten mit < S h i f t x F 5 > 38
CLS wirkt auch vom Arbeitsfenster 39
Komma und Semikolon als Formatierungszeichen 4 0
Syntaxprüfung ist Hilfe! 42
Kapitel 5 - Daten: Futter für den Rechner
4 7Was sind Daten? 4 9
Die indirekte Datenübergabe mit LET 4 9
Erste Versuche mit dem QuickBASIC-Menüsystem 55
Kapitel 6 - INPUT: Wie Variablen wirklich variabel werden
61Ein Programm wird verändert 6 3
INPUT für Dateneingabe 6 3
Variablen gehören zu einem Datentyp 65
Verwendung von PRINT zur Ausgabe von Text vor der Abfrage mit INPUT 6 7
Verwendung von Anfragetext in INPUT 67
Programme sollte man speichern 68
Speichern 69
Laden 69
Kapitel 7 - CHR$ und ASC: Zeichen und ihre Codes
Die Funktion CHR$
Die Funktion A S C
71 7 3 75
Inhaltsverzeichnis VII
Kapitel
8 -STRING$, SPACES und Co: Automatische Strings
77Verwendung von PRINT "Zeichenkette" 7 9
Verwendung von STRINGS 80
Leerzeichenkette mit SPACES 81
Verwendung von SPC 83
Verwendung von TAB 83
i
Kapitel 9 - LOCATE: Bitte Platz nehmen
87PRINT USING für die formatierte Ausgabe 92
Kapitel 10 - Schleifen und ihre Laufzeit
95GOTO - die verwöhnte ASIC-Schleife 97
Die FOR-NEXT-Schleife 97
Zeitschleifen mit FOR-NEXT 101
Schleifenfehler lokalisieren 102
Wie FOR-NEXT-Schleifen abgearbeitet werden 104
Die Laufzeit von Schleifen 104
Die Typdefinition mit DEF Typ 107
Echte Zeitschleifen 108
WHILE-WEND für echte Zeitschleifen 108
Kapitel 11 - IF-THEN: Wählen und Entscheiden 111
Die einzeilige IF-THEN-Anweisung 113
Das Programm zum Zahlenvergleich 115
Kapitel 12 - Zeichenvergleich: A ist gar nicht größer als a
117Ein Zeichenvergleichsprogramm entsteht 119
Wie man Programmzeilen ändert 120
Zeichen werden verglichen 123
Deutsche Umlaute sind Sonderzeichen 124
VAL - Ziffern und ihre Werte 127
Zeichenketten - wie die Perlen auf der Schnur 129
Logikfehler - das größte Programmierproblem 132
Kapitel 13 - Zeichenketten: Aus Teilen und zu teilen
Zeichenketten zusammenfügen Zeichenketten zerlegen
133 135 136
VIII Programmentwicklung mit QuickBASIC
Zeichenketten überschreiben 138
Wie lang sind Zeichenketten? 140
Die DATE$-Funktion 141
Kapitel 14 - IF-THEN mit ELSE
145Boole'sche Operatoren 147
IF-THEN geschachtelt und gestaffelt 147
Was Zeichenketten enthalten ( 150
Programme richtig beenden 152
STOP für das Anhalten in Programmen 153
Kapitel 15 - GOTO und GOSUB: Die gezielten Sprünge
155Ergänzungen zu INPUT 157
GOTO und BEEP, zwei neue Befehle 159
Ein Programm erhält Routinen 160
GOSUB ... Subroutinen sind Unterprogramme 162
INKEY$ für die Tastaturabfrage 164
Kapitel 16 - READ-DATA: Wie Variablen konstant werden
169READ-DATA ... und was dazu gehört 171
Eine multilinguale Benutzeroberfläche entsteht 175
Kapitel 17 - DIM: Felder müssen bestellt werden 181
Bessere Übersicht über Variablen 183
Aussagefähige Variablennamen 183
Verzeichnis der Variablen und Konstanten 184
Datenfelder 184
Allgemeines zu Datenfeldern 184
Dateiformen 186
Die Organisationsform von Dateien 186
Die sequentielle Datei 187
Die implizite Dimensionierung 187
Die explizite Dimensionierung 189
Kapitel 18 - Datenfelder, um Daten austauschbar zu machen
193Datenfeld statt Einzelvariablen 195
Daten und Programme brauchen Platz 195
Inhaltsverzeichnis IX
FRE zeigt den freien Platz 196
Datum - einmal anders 197
Kapitel 19 - OPEN: Offen für Laden und Speichern
201Textdateien mit dem QuickBASIC-Editor 203
Löschen von Zeilentext in den Zwischenspeicher 204
Einfügen von Text aus dem Zwischenspeicher 205
Dateien werden geöffnet 205
Wie man sequentielle Dateien öffnet 207
Wie man Daten aus sequentiellen Dateien einliest 208 Geöffnete Dateien müssen auch geschlossen werden 210
Dateibegrenzer 210
Das Programm mit externer Textdatei 212
Wie man Dateien abspeichert 213
EOF und das Dateiende 215
LÖF und die Länge von Dateien 215
Wie PRINTS und WRITES wirken 216
Kapitel 20 - COLOR: Auch Schwarz und Weiß sind Farben
219Die Grafikkarten 221
SCREEN bestimmt den Bildschirmmodus 222
COLOR bestimmt die Farbe 222
Auch der Monochrombildschirm braucht Farbe 226
Ein COLOR-Programm für Monochrom und Multichrom 226
Palette wählt die Farben 229
Kapitel 21 - RND und RANDOMIZE: Wie der Zufall so will
231Zufallszahlenreihen starten und ausgeben 233
Zufällige Zufallszahlenreihen 236
Zufallszahlen kleiner als 0 oder größer als .9999 240
RND und die Philosophie des Zufalls 242
Kapitel 22 - Druck ... denn was man auf Papier besitzt
245Wie man Programme überarbeitet 247
Listings sind wichtige Dokumente 248
LPRINT für die Druckerausgabe 249
Druckersteuerung mit LPRINT 250
X Programmentwicklung mit QuickBASIC
Kapitel 23 - QuickBASIC: Das Programmentwicklungssystem
257QuickBASIC ist mehr als BASIC 259
Prozeduren und Module 259
MAK-Datei, das Modulverzeichnis der Programme 261
Von der Skizze zum Programmentwurf 262
Und was machen Sie mit den Programmen auf der Diskette? 263
Ohne Zeilennummern programmieren 263
Simultan programmieren 264
Mit Programmbausteinen simultan strukturiert programmieren 265
Ein Programm simultan programmieren 265
Zufallszahlen 265
Wie man HILFE/BEGRIFF benutzt 266
Wie ein Programm simultan entsteht 268
Programme bestehen aus Teilen 273
Programmentwicklung erfolgt in Schritten 273
Programme brauchen einen Programmentwurf 275
Die drei Grundelemente des Programmablaufs 275
Programmskizze 276
In BASIC strukturiert programmieren 276
Flußdiagramm 279
Struktogramm 279
Kompaktprogramm oder Programmbausteine 279
Was ist ein Algorithmus? 281
Kapitel 24 - Die Benutzeroberfläche von QuickBASIC 4.5
283Benutzeroberflächen nach SAA 285
Das QuickBASIC-Menüsystem 287
Erweiterte Hilfe bei QuickBASIC 288
Die unsichtbaren Hilfen von QuickBASIC 288
Mausunterstützung 289
Die sichtbaren Hilfen von QuickBASIC 290
Crossreferenzen 290
Der QuickBASIC-Editor 290
Allgemeines zum QuickBASIC-Menü 291
Was zu Fehlern führen kann 292
Laden und Speichern 292
Die Dialogfenster 293
Kopieren und Ändern 294
Inhaltsverzeichnis X I
Kapitel 25 - Modular programmieren mit QuickBASIC
295Wie man Prozeduren erstellt 297
Wie man Prozeduren aufruft 300
FUNCTION-Prozeduren müssen deklariert sein 303
Die Datenübergabe zwischen Modulen und Prozeduren 303 Was bedeutet Übergabe als Referenz oder als Wert? 305
Die Gültigkeit von Variablen und Konstanten 308
Automatische und statische Variablen 309
Datenübergabe in Programmen 309
DIM SHARED... 309
COMMON... und SHARED... 310
Benannte und unbenannte COMMON-Blöcke 311
INCLUDE - die Datei für die Parameter 312
Datenübergabe zwischen Programmen 312
Kapitel 26 - Schleifen und Entscheidungen 313
Die Schleifen bei QuickBASIC 315
Fallentscheidungen, bedingte Anweisungen 316
Programmbausteine 319
Die Warte-Schleife 320
Die Universaltastaturabfrage Antwort 321
Kapitel 27 - Bildschirmgestaltung
323Die Befehle für die Bildschirmgestaltung 325
CLS macht den Bildschirm sauber 325
KEY ON/OFF für die Funktionstastenanzeige 326
LOCATE schreibt in den letzten Winkel 328
PRINT USING für formatierte Zeichen 329
SCREEN steht für die Ermittlung von Zeichen und Farben 330 Formeln für Zeichenwert und Farbwert aus SCREEN 331
WIDTH - so weit die Zeichen tragen 332
PEEK und POKE erreichen jeden Punkt 334
Programmbausteine 336
Partielle Bildschirmlöschung 336
Rahmen und Linien 337
Die kleine Farbwahl ganz groß 346
Farbattribute zerlegen 346
Die Prozedur COLORNeu 347
Der Farbspiegel 347
XII Programmentwicklung mit QuickBASIC
Farbpalette speichern und laden 348
Der integrierte Farbspiegel 350
Die Farbe des Punktes 354
Farben invertieren 354
Wie man den Bildschirm schont 354
Fußzeilen sind immer ganz unten 356
FUNCTION-Prozeduren deklarieren 358
Verwendung von 'SINCLUDE 358
Einkopieren von DECLARE-Zeilen in alle Module 359
Die ersten Basismodule 359
Kapitel 28 - Stringmanipulation
361Die QuickBASIC-Befehle zur Stringmanipulation 363
Zeichenkette, String oder Text 363
Wie man Zeichenketten verändert 364
Das Zusammenfügen von Strings 364
Wie man Zeichenketten trimmt 364
STR$ und VAL - vom Wert der Zeichen 365
UCASE$ und LCASE$ 366
LEN für die Länge von Zeichenketten 367
Sortieren mit Umlauten 367
Zeilen kopieren und einfügen 372
Fehler bei falschem Datentyp 373
Programmbausteine 373
Die Umwandlung der deutschen Umlaute mit LOWER$ und UPPERS 373
Sortieren mit Routine 375
Der Zeileneditor INCASE$ 378
Die Funktionstastenprozedur 380
Der Punkt im Fenster 390
Kapitel 29 - Zahlen und Zahlenmanipulation
393Die mathematischen Funktionen 395
Befehle, die wir nicht besprechen 396
Was man zum Rechnen braucht 397
Mathematische Operatoren 397
Die runde Klammer 397
Vergleichsoperatoren 398
Logische oder Boolesche Operatoren 398
ABS ergibt den absoluten Wert, SNG das Vorzeichen 398
Inhaltsverzeichnis XIII
HEX$ und OCT$ liefern Strings 401
Den Wert von Strings liefert VAL 401
Potenzen und Wurzeln 402
Exponenten und Logarithmen 402
Boolesche Operatoren und Bitmanipulationen 404
Binäres Rechnen 406
Programmbausteine 406
Die Binärzahl 406
Kaufmännisches Runden i 408
Maximal- und Minimalwert 408
Mathematische Funktionen 408
Die Basis der natürlichen Logarithmen 408
Die Fakultät einer Zahl 409
Die Stellen vor dem Komma 409
Kapitel 30 - Datenfelder und ihre Dimensionen
411Dimensioniert wird mit DIM 413
Die Dimensionierung auf Prozedurebene 415
Die Dimensionierung auf Modulebene 417
Benutzerdefinierte Datentypen 417
Dynamische oder statische Speicherzuweisung 419
Die Metabefehle SSTATIC und SDYNAMIC 420
ERASE und REDIM 420
Wieviel Speicherplatz belegt ein Datenfeld? 423
Verwenden Sie möglichst SDYNAMIC-Datenfelder 424
Programmbausteine 425
Wenn ASCIIZ-Strings vorliegen 425
Ein Fensterprogramm entsteht 425
Ein Fensterprogramm mit TYPE 426
Das Dialogfenster 435
Kapitel 31 - Dateien
439Worin sich Dateien unterscheiden 441
Dateiorganisation 441
Zugriffsart 441
Bearbeitungsform 442
Dimension und Zugriff 442
Relative Dateien und ihre Dimensionen 443
Wie man Dateien öffnet 443
X I V Programmentwicklung mit QuickBASIC
Relative Dateien öffnen 446
Mit FIELD variabel dimensionieren 447
TYPE oder FIELD 448
Platzbedarf von sequentiellen Dateien 449
Die binäre Dateibearbeitung 450
Programmbausteine 453
Die random-sequeritielle Datei 454
HEXDUMP zeigt Dateien von innen 458
Kapitel 32 - Rund um die Uhr
463Der Rahmen erhält seine Zeit 465
Der Tag, die Woche, der Monat 468
Der Wochentag wird bestimmt 470
Kapitel 33 - ERROR, Ereignis und INTERRUPT
483Fehler sind zum Erkennen da 485
Wie eine Fehlerroutine aussehen muß 486
Ereignisverfolgung 490
Wie man die <ALT>-Taste "verfolgt" 491
INTERRUPT, der Zugang zum DOS 492
Die Register Ihres Prozessors 493
Programmbausteine 493
Dateinamen und Verzeichnisse direkt einlesen 502
Die Mausfunktionen 506
Kapitel 34 - Bedienerführung, Benutzeroberfläche 511
Warum Bedienerführung? 513
Befehl oder Menü 513
Menüs, Menüs 514
Bildschirmanordnung von Menüs 514
Die unterschiedlichen Wahlmöglichkeiten 515
Text oder Grafik 515
Verzweigung oder Aktion 516
Welche Tasten wofür? 518
Programmbausteine 520
Fullscreenmenü 520
Kopfzeilenmenü 521
Pulldownmenü 534
Inhaltsverzeichnis X V
Popup-Fenster 541
Automatikfenster 542
Fenster vergrößern oder verkleinern 542
Wie man Funktionen aktiviert 552
Info- und Hilfefenster 553
Kapitel 35 - Bildschirminhalte bewegen und retten
559Bildschirminhalt scrollen 561
Bildschirminhalte retten und ausgeben 562
Die Organisation des Bildschirmspeichers 563
Die SCREEN-Funktion 563
Retten mit PEEK 565
BSAVE und BLOAD für ganze Bildschirme 566
Fenster retten 568
Programmbausteine 572
Kapitel 36 - Ein Programm entsteht
575Die Bibliothek, ein Modul für alle Fälle 577
Die Verwendung von QBIBDRU.BAS bzw. QLBDUMP.BAS 578
Programme zusammenfügen 579
Kompilieren 579
Wir kompilieren unser Programm 579
Wir bauen einen Fehler ein 580
Fehlermeldungen ausdrucken 581
Das Programm wird erweitert 581
Kapitel 37 - Tips für den Profi
583Programme und ihre Größe 585
Die Namen von Modulen 585
Programmbausteinpaket 586
Bibliothek der Programmbausteine 587
Prozeduren einfacher erstellen 587
Einzelne Prozeduren aus anderen Modulen erstellen 588
Markieren, kopieren, einfügen, löschen 588
Längere Texte oder Texte mehrfach ersetzen 589
Wenn die Zeichenkette zu lang ist 590
Wenn der Rechner streikt 591
Zum guten Schluß 591
X V I Programmentwicklung mit QuickBASIC