ebook img

Effektiv Programmieren mit Turbo Pascal 5.0/5.5 PDF

380 Pages·1990·13.384 MB·German
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Effektiv Programmieren mit Turbo Pascal 5.0/5.5

Christos Emmanuilidis Spiros Alexakis Effektiv Programmieren mit Turbo Pascal 5.0/5.5 Aus dem Bereich ---------------------------------- ~--- Computerliteratur Turbo Pascal 5.0/5.5 Units und Utilites von A. Liebetrau - Vieweg Software Turbo Pascal von A ... 2 von A. Liebetrau Turbo Pascal Wegweiser Grundkurs . Aufbaukurs . Kompaktkurs von E. Kaier Effektiv Programmieren in C von D. Herrmann Effektiv Programmieren mit Turbo Pascal 5.0/5.5 von Ch. Emmanuilidis und Sp. Alexakis Microsoft QuickBASIC - Toolbox fi.ir Programmierer von J. C. Craig - Ein Microsoft Press/Vieweg-Buch dBASEIV Programmierung fi.ir betriebswirtschaftliche Anwendungen von R. A. Byers - Ein Ashton TateNieweg-Buch '----Vieweg ---------------------" Christos Emmanuilidis Spir~s Alexakis EFFEKTIV PROGRAMMIEREN MIT TURBO PASCAL 5.0/5.5 M Friedr. Vieweg & Sohn Braunschweig IWiesbaden Das in diesem Buch enthaltene Programm-Material ist mit keiner Verpflichtung oder Garantie irgend einer Art verbunden. Die Autoren und der Verlag iibernehmen infolgedessen keine Verantwortung und werden keine daraus folgende oder sonstige. Haftung iibernehmen, die auf irgendeine Art aus der Benutzung dieses Programm-Materials oder Teilen davon entsteht. Der Verlag Vieweg ist ein Unternehmen der Verlagsgruppe Bertelsmann International. Aile Rechte vorbehalten © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig 1990 Softcover reprint of the hardcover 1st edition 1990 Das Werk einschlieBlich aller seiner Teile ist urheberrechtlich geschiitzt. J ede Verwertung auBerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzuliissig und strafbar. Das gilt insbesondere ftir Vervielfiiltigungen, Obersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Umschlaggestaltung: Schrimpf und Partner, Wiesbaden Druck und buchbinderische Verarbeitung: Lengericher Handelsdru.:kerei, Lengerich ISBN-13: 978-3-528-04636-1 e-ISBN-13: 978-3-322-83692-2 DOl: 10.1007/978-3-322-83692-2 v Vorwort Turbo Pascal ist seit langem die Standardsprache fUr die Programmierung von Mikrocomputern. Durch die Versionen 5,.0 und 5.5 ist Turbo Pascal ein profes sionelles Entwicklungswerkzeug geworden. Z.B. gehOren zu den neuen Fea tures die Uberschreitung der 64 KB-Grenze, die strenge Modularisierung durch die Unit-Struktur, die UnterstUtzung der IEEE-Gleitpunktzahlenformate und die 8087 Emulation, das wiederaufgenommene Overlay-Konzept, der eingebaute Quellcode-Debbuger sowie die neuen Moglichkeiten der objektorientierten Programmierung. Dieses Buch ist nicht fUr den unerfahrenen Pascal-Anwender bestimmt, sondern setzt umfassende Pascal-Programmierkenntnisse voraus. Es solI dem Leser einen tieferen Einblick in Turbo Pascal vermitteln und ihn in fortgeschrittene Programmiertechniken einweihen. Das Buch behandelt eine groBe Vielfalt von Themen, die Uber Rechnergrundla gen und interne Datendarstellung bis zur Implementierung von Datenmaschinen und Interrupt-Routinen reichen. Ziel des Buches ist es nicht nur, abstraktes Wissen zu vermitteln, sondern auch praktische Tips zu geben, die den Pro grammieralltag erleichtern. Alle Programmbeispiele wurden zu Units zusam mengefaBt und dadurch zu nUtzlichen Tools aufgewertet. Bemerkenswert sind zwei vollstandige Programme, die im Buch enthalten sind: eine Adressenverwaltung und, als Kronung, einFunktionsparser/-plotter mit eingebautem Editor im Graphik-Modus. AIle in diesem Buch enthaltenen Programme wurden mit den Compilern von Turbo Pascal 4.0, 5.0 und 5.5 erstellt. FUr die KompHierung der eingebun denen Assembler-Module wurde der Assembler MASM 5.0 verwendet. An dieser Stelle wollen wir allen danken, die uns beim Schreiben dieses Buches unterstiltzt haben, insbesondere Georg Poulimenos fUr seine praxisbezogenen RatschHige, Kostas Daniilidis fUr seine hilfreichen Anregungen und Karin Heise fUr die Textkorrektur. Hinweis: AIle in diesem Buch vorgestellten Programme und Units sowie eini ges mehr, sind auf einer Diskette erhaltlich, die Sie mit der diesem Buch beige hefteten Bestellkarte erwerben konnen. Karlsruhe, August 1989 Spiros Alexakis Christos Emmanuilidis VI InhaItsverzeichnis Vorwort ............. ..................................................................... V Inhaltsverzeichnis ..................................................................... VI 1 Computer-Grundlagen C. Emmanuilidis 1.1 Binardarstellung von Zahlen ................................................. 1 1.2 Zweierkomplement ............................................................ 2 1.3 Hexadezimale Darstellung von Zahlen ..................................... 3 1.4 Gleitpunktzahlen ............................................................... 4 1.5 Arbeitsweise eines Rechners ................................................. 5 1.5.1 Die Prozessorregister ................................................. 5 1.5.2 Unterprogramme ...................................................... 7 1.5.3 Stack ..................................................................... 8 1.5.4 Uber Segment-und Offsetwerte .................................. 10 1.5.5 Interrupts (Unterbrechungen) ..................................... 12 1.6 BIOS ............................................................................ 14 1.7 DOS ............................................................................ 14 2 Programmqualitaten S. Alexakis 2.1 Fehlersuche ................................................................... 16 2.2 Effizienz ....................................................................... 17 2.2.1 Automatische Optimierung des Programmcodes ............... 17 2.2.2 Optimierungen durch den Programmierer ...................... 20 2.2.3 Datenkompression................................................... 23 2.2.3.1 Bitweise Operationen ................................... 24 2.2.3.2 Packen von Boole'schen Arrays ...................... 27 2.2.3.3 Packen von ASCII-Zeichen in 7 Bits ................. 28 2.2.3.4 Komprimieren lexikographisch geordneter Strings ..................................................... 30 3 Units in Turbo Pascal 4.0 und 5.0 S. Alexakis / C. Emmanuilidis 3.1 Die Struktur Modul .......................................................... 35 3.2 Das Unit-Konzept ............................................................ 36 3.3 Turbo Pascal Units ........................................................... 38 3.4 Arbeiten mit Units ........................................................... 39 Inhaltsverzeichnis VII 3.5 Einige ntitzliche Units ....................................................... 41 3.5.1 Unit types ............................................................. 41 3.5.2 Unit maths ............................................................ 42 3.5.3 Unit strings ........................................................... 53 3.5.4 Unit convert .......................................................... 57 4 Daten und Datenstrukturen C. Emmanuilidis in Turbo Pascal 4.0 und 5.0 4.1 Was sind Daten? ....................................... ....................... 61 4.2 Datentypen von Turbo Pascal 4.0 und 5.0 ............................... 62 4.2.1 Neue vordefinierte Datentypen .................................... 62 4.2.2 Interne Darstellung der Datentypen .............................. 64 4.3 Variablen und typisierte Konstanten in Turbo Pascal .................. 70 4.3.1 Globale und lokale Variablen ..................................... 70 4.3.2 Automatische und statische Variablen ........................... 71 4.4 Wertzuweisungen ............................................................ 72 4.4.1 Konstanten von Turbo Pascal ..................................... 74 4.4.2 Implizite Datentyp-Umwandlungen .............................. 76 4.4.3 Explizite Datentyp-Umwandlung von Werten .................. 79 4.4.4 Explizite Datentyp-Umwandlung von Variablen ............... 80 4.4.5 Umwandlung von Zeigern ......................................... 82 4.4.6 Umwandlung von untypisierten Parametern .................... 84 4.4.7 absolute -eine andere Art der Datentyp-Umwandlung ....... 84 5 Zeigervariablen in Turbo Pascal 4.0 und 5.0 S. Alexakis 5.1 Der Datentyp pointer ........................................................ 86 5.2 Dynamische Speicherbelegung ............................................ 88 5.2.1 Belegen des Heaps ................................................... 89 5.2.2 Freisetzen des Heaps ................................................ 90 5.2.3 Die Fragmentliste ................................................... 93 5.2.4 Die Variable HeapError ............................................ 95 5.3 Aufrufe von Unterprogrammen tiber Zeiger ............................ 96 5.4 Implementierung eines Sortieralgorithmus mit Hilfe von Zeigern ....................................................... 98 6 Datenmaschinen: Listen, Warteschlangen, S. Alexakis Stacks und binare Biiume 6.1 Verkettete Listen ............................................................ 101 6.1.1 Adressenverwaltung durch eine doppelt verkettete Liste ...................................................... 109 VIII Inhaltsverzeichnis 6.2 Binare Baume ................................................................ 118 6.2.1 Das Unit treeunit ................................................... 124 6.3 Warteschlangen .............................................................. 130 6.4 Stacks ......................................................................... 138 6.4.1 Das Unit stack ....................................................... 139 7 Suchen und Sortieren S. Alexakis 7.1 Sortieren...................................................................... 143 7.1.1 Bewertung von Sortiermethoden ................................. 143 7.1.2 Sortieren im Speicher .............................................. 144 7.1.2.1 Klassen von Sortieralgorithmen ...................... 144 7.1.2.2 Fortgeschrittene Sortieralgorithmen ................. 148 7.1.2.2.1 Sortieren mit Baumen ..................... 148 7.1.2.2.2 Quicksort ................................... 155 7.1. 3 Sortieren von Dateien .............................................. 157 7.1.4 Vergleich der Sortierverfahren ................................... 161 7.2 Suchen ........................................................................ 162 7.2.1 Binares Suchen ...................................................... 162 7.2.2 Das Hash-Verfahren (hashing) ................................... 163 7.3 Das Unit sortunit ............................................................ 167 8 Assemblerschnittstelle C. Emmanuilidis 8.1 Methoden-der ParameterUbergabe ........................................ 171 8.2 Konventionen beim Aufrufvon Unterprogrammen ................... 172 8.2.1 Ubergabe von Parametern ........................................ 172 8.2.2 Ein-und Ausgangscode von Unterprogrammen .............. 173 8.2.3 Unterprogramme rufen Unterprogramme auf ................. 175 8.2.4 Ergebnisse von Funktionen ....................................... 177 8.3 inline-Maschinencode ...................................................... 178 8.3.1 Die Anweisung inline und ihre Fallen .......................... 178 8.3.2 inline als Makro .................................................... 181 8.3.2.1 inline-Makros erleichtern die Anwendung inline ...................................................... 182 8.3.2.2 Aufrufen von Unterprogrammen mit Hilfe von Zeigern ................................................... 188 8.3.2.3 Das Unit inlines ......................................... 190 8.4 external: Einbinden von OBJ-Modulen ................................. 194 8.5 Das Unit macro .............................................................. 198 Inhaltsverzeichnis IX 8.5.1 BIOS Tastaturpuffer ............................................... 198 8.5.2 Das Konzept von Unit macro ..................................... 201 8.5.3 Die Implementierung vom Unit macro ......................... 203 9 Die Systemschnittstelle von Turbo Pascal C. Emmanuilidis 9.1 Das Unit bios ................................................................ 215 9.2 Interrupts mit Turbo Pascal ............................................... 222 9.2.1 Anforderungen an Interrupt-Handler ........................... 222 9.2.2 Die interrupt-Deklaration ......................................... 223 9.2.3 Herculesgraphik auf dem Drucker ............................... 225 9.2.4 Die TUcken der interrupt-Deklaration .......................... 229 9.2.5 Speicherresidente Programme .................................... 232 9.2.5.1 DOS-Speicherstrukturen .............................. 233 9.2.5.1.1 Environment-Tabelle von Programmen ................................ 233 9.2.5.1.2 Program Segment Prefix (PSP) ......... 233 9.2.5.1.3 Memory-Control-Blocks ................. 235 9.2.5.2 Entfernbare, speicherresidente Programme ........ 236 9.2.5.3 Das Unit mcb ............................................ 240 9.2.5.4 Das Unit shell ........................................... 248 9.2.5.5 Programm memorymirror ............................. 255 10 Overlays S. Alexakis 10.1 Das Overl;ty-Konzept ................................................. 260 10.2 Arbeiten mit Overlays ................................................. 261 10.3 Das Unit overlay ....................................................... 262 11 Graphik mit Turbo Pascal 4.0 und 5.0 C. Emmanuilidis 11.1 Das Unit windows ..................................................... 265 12 Ansatze zum Parserbau C. Emmanuilidis 12.1 Parser .................................................................... 302 12.2 Programm Funktionsplotter .......................................... 307 12.2.1 Bedienungsanleitung des Funktionsplotters ............. 316 12.2.2 Der Quellcode vom Funktionsplotter .................... 318 x Inhaltsverzeichnis 13 Objektorientiertes Programmieren mit Turbo PascalS.S S. Alexakis 13.1 Grundlagenwissen zum Objektorientierten Programmieren .......................................................... 350 13.1.1 Objektorientiertes Programmieren ..................... '" 352 13.1.2 Objekte, Klassen und Vererbung .......................... 352 13.1.3 Datenkapselung und Erweiterbarkeit ..................... 355 13.1.4 Virtuelle Methoden .......................................... 356 13.1.5 Dynamische Objekte ......................................... 358 13.1.6 Die Unit listunit .............................................. 359 13.2 Erweiterungen des Overlay-Managers ............................... 363 13.2.1 Neue Variablen und Routinen der Unit overlay ........... 363 Literaturverzeichnis .................................................................. 365 Sachwortverzeichnis.................................. ............. . . . ........ ..... . .. 366

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.