Hans-Joachim Ludwig Programmoptimierung für Taschenrechner (AOS)
Taschenrechner-Literatur---------- Programmieren von Taschenrechnern Band 1 Lehr- und Übungsbuch für den SR 56, von H. H. Gloistehn Band 2 Lehr- und Übungsbuch für den TI-57, von H. H. Gloistehn Band 3 Lehr-undÜbungsbuchfürdenTl-58undTI-59, von H. H. Gloistehn Band 4 Lehr- und Übungsbuch für den HP 29C, 19C, 67 und 97, von P. Thießen Band 5 Programmoptimierung für Taschenrechner (AOS), von H.-J. Ludwig Anwendung programmierbarer Taschenrechner Band 1 Angewandte Mathematik-Finanzmathematik Statistik-I nformatik für UPN-Rechner, von H. Alt Band 2 Allgemeine Elektrotechnik-Nachrichtentechnik-Impulstechnik für UPN-Rechner, von H. Alt Band 3/1 Mathematische Routinen der Physik, Chemie und Technik für AOS-Rechner Teil 1, von P. Kahlig Taschenrechner + Mikrocomputer Jahrbuch, herausgegeben von H. Schumny Anwendungsbereiche - Produktübersichten - Programme - Entwicklungstendenzen - Tabellen - Adressen. Taschenrechner Handbuch - Naturwissenschaftenl Technik, von H. Schumny Elektronische T a s c h e in n der ~ hschule, n e r von A. Wynands und U. Wynands Programmierbare Taschenrechner in Schule und Ausbildung, von U. Bromm Vieweg----------------...
Hans-Joachim Ludwig Programmieren von Taschenrechnern 5 Programmoptimierung für Taschenrechner (AOS) Friedr. Vieweg & Sohn Braunschweig/Wiesbaden
CIP-Kurztitelaufnahme der Deutschen Bibliothek Ludwig, Hans-Joachim: Programmoptimierung für Taschenrechner (AOS)! Hans-Joachim Ludwig. - Braunschweig, Wiesbaden: Vieweg, 1979. (Programmieren von Taschenrechnern; 5) ISBN 978-3-528-04159-5 ISBN 978-3-322-89715-2 (ebook) DOI 10.1007/978-3-322-89715-2 1979 Alle Rechte vorbehalten Friedr. Vieweg & Sohn Verlagsgesellschaft mbh, Braunschweig, 1979 Die Vervielfältigung und Übertragung einzelner Textabschnitte, Zeichnungen oder Bilder, auch für Zwecke der Unterrichtsgestaltung, gestattet das Urheberrecht nur, wenn sie mit dem Verlag vorher vereinbart wurden. Im Einzelfall muß über die Zahlung einer Gebühr für die Nutzung fremden geistigen Eigentums entschieden werden. Das gilt für die Vervielfältigung durch alle Verfahren, einschließlich Speicherung und jede Übertragung auf Papier, Transparente, Filme, Bänder, Platten und andere Medien. Satz: Viewag, Wiesbaden ISBN 978-3-528-04159-5
Vorwort Der programmierbare Taschenrechner hat inzwischen eine weite Verbreitung gefunden. Nicht nur in die Technik, sondern auch in Forschung und Lehre hat er seinen Einzug gehalten. Dabei erschließen ihm seine vielfältigen Einsatzmöglichkeiten, die hochentwickelte Technologie und der immer günstiger werdende Preis weiterhin ständig neue Anwendungsbereiche und Abnehmerkreise. Der Umgang mit ihm ist denkbar einfach, wie auch der Anfänger sofort erkennen wird. Die inzwischen erschienene einführende Literatur tut ein übriges dazu, schnell mit ihm vertraut zu werden. Doch gehören Erfahrung und Detailkenntnisse dazu, optimale Lösungen zu finden. Das geschickte Ausnutzen des Taschenrechners bis an die Grenzen seiner Möglichkeiten vermag die Leistungsfähigkeit eines Programms erstaunlich zu erhöhen. Trainierte Rechnerbenutler können arbeitsfähige Programme nicht nur in sehr kurzer Zeit erstellen, sondern auch für Probleme entwickeln, die mit programmierbaren Taschenrechnern zu lösen man nicht für möglich gehalten hätte. Zweck des Buches ist es, in diesem Sinne gezielte Anleitung zu optimaler Programmierung zu geben. Wir setzen dafür erste Kenntnisse des Lesers in dem Umgang mit seinem Taschenrechner voraus. Die einzelnen Tasten sollten ihm bekannt sein, auch sollte er wissen, wie man ein Programm in den Rechner eingibt und ablaufen läßt. Wir erwarten aber nicht, daß er sich bereits gründlich mit ihm befaßt hat. Die erforderlichen mathematischen Kennt nisse haben wir mit Absicht so gering gehalten, daß das Buch gleichermaßen von I nge nieuren, Lehrern und Studenten aller Fachrichtungen nutzbringend gelesen werden kann. Wir denken ferner an interessierte Schüler der Sekundarstufe II und an alle, die sich einfach nur aus Spaß mit dem Programmieren eines Taschenrechners beschäftigen wollen. Im I. Teil des Buches erläutern wir, warum man Programmoptimierung betreibt und welche Aspekte sie umfaßt. Die einzelnen Techniken und Maßnahmen werden im 11. Teil beschrieben, natürlich ohne Anspruch auf Vollständigkeit. Systematische Gliederung, Verwendung häufiger Querverweise und bewußt knappe Formulierung sollen das Nach schlagen und Auffinden einzelner Hinweise bei der Arbeit mit dem Rechner erleichtern. Diesem Zweck dient auch das ausführliche Sachwortverzeichnis. Im 111. Teil schließlich bringen wir Beispiele optimierter Programme, die absichtlich aus verschiedenen Disziplinen gewählt sind. Der vorliegende Band behandelt die Familie der AOS-Rechner (AOS ; Algebraisches Operationssvstem), also die Rechner mit algebraischer Hierarchie und Klammern. Die Beispiele sind für den SR-56 von Texas Instruments formuliert, weil sich dessen Programme und die an ihm demonstrierten Techniken sehr leicht auf die ebenfalls ver breiteten Typen SR-52, T1 57, TI-58 und TI-59 übertragen lassen. Diese Rechner werden, wenn immer möglich, in die Diskussion mit einbezogen. Aber auch für viele andere programmierbare Taschenrechner, selbst aus der UPN Familie (UPN ; Umge kehrte Polnische Notation), kann man einen Großteil der beschriebenen Maßnahmen V
verwenden. Der als Arbeitsteil gedachte Anhang enthält zu diesem Zweck die Angaben, die zu Programmübersetzungen notwendig sind. Auf Fragen, die die Anwendung von Magnetkarten, Software-Moduln und des Druckers betreffen, gehen wir nur am Rande ein. Mein Dank gilt den Mitarbeitern im Vieweg Verlag für die gute Zusammenarbeit und allen, die an der Entstehung des Buches Anteil haben. In besonderer Weise aber und für mehr als das Erstellen der Reinschrift danke ich meiner Frau. Hans-Joachim Ludwig Münster, im Mai 1979 VI
Inhaltsverzeichnis I. Teil: Wozu dient Programmoptimierung?.... 11. Teil: Techniken der Programmoptimierung... 5 Rationalisierung der Programmerstellung.......................... 5 1.1 Phasen der Programmierung.............................. 5 1.2 Problemanalyse... 5 1.3 Flußdiagramm... 7 1.4 Programmierphase... 7 1.5 Programmtest und Fehlerdiagnose.......................... 9 1.6 Besondere Fehlersuchtechniken............................ 11 1.7 Rechenlauf........................................ 12 1.8 Dokumentation... 13 1.9 Verwendung übernommener Programme...................... 13 2 Steigerung der Effektivität................................... 13 2.1 Vollständige Problemlösung... 13 2.2 Wiederverwendbarkeit des Programms... 14 2.3 Dokumentation... 14 2.4 Schleifen... c 16 3 Erhöhung der Betriebssicherheit... 17 3.1 Mechanische und elektrische Betriebssicherheit... 17 3.2 Vermeiden von Tast und Bedienungsfehlern... 17 3.3 Kontrolle auf Tastfehler nach Eingabe des Programms............. 18 3.4 Kontrolle auf Tastfehler nach Eingabe von Daten................ 18 3.5..last X"... 19 3.6 Postenzähler... 19 3.7 Displaydesign für die Dateneingabe... 19 3.8 Kontrolle auf richtige Programmbedienung.................... 20 3.9 Wiederanlaufsicherung.................................. 20 3.10 "Sperren" der Rechnertastatur............................ 21 3.11 Genauigkeit... 21 4 Verbesserung des Bedienungskomforts........................... 23 4.1 Anzeigeformate... 23 4.2 Pausen Taste... 24 4.3 Ablaufsteuerung beim Programmstart........................ 24 4.4 Komplexe Eingaben... 25 4.5 Rationalisierte Dateneingabe.............................. 26 4.6 Einheitliche Speicherbelegung............................. 26 VII
4.7 Datenorganisation..................................... 26 4.8 Stapeltechnik........................................ 27 4.9 Zyklische Registervertauschung............................ 27 4.10 Eigenständige Programmdurchführung vom Rechner.............. 28 5 Förderung der Programmübersichtlichkeit......................... 28 5.1 Baukastenprinzip..................................... 28 5.2 Unterprogramme... 29 5.3 Demonstrationsmodelle................................. 29 6 Erhöhung der Flexibilität... 29 6.1 Wie hält man ein Programm flexibel?........................ 30 6.2 Programmanpassung über den Datenspeicher................... 30 6.3 Selbsttätige Programmanpassung........................... 31 7 Verringerung des Programmspeicherbedarfs........................ 31 7.1 Hinweise für die Programmanlage........................... 32 7.2 Speicheroperationen................................... 32 7.3 Sprungoperationen.................................... 33 7.4 Unterprogramme... 34 7.5 Sonderfunktionen..................................... 35 7.6 Verzahnung von Programmteilen... 35 7.7 Programmstopp... 36 7.8 Konstanten... 37 7.9 Zerlegung in Moduln... 38 8 Verringerung des Datenregisterbedarfs......... 38 8.1 Hinweise für die Programmanlage... 38 8.2 Dateneingabe und -ausgabe............................... 39 8.3 Flexible Registerbelegung................................ 39 8.4 Konstanten... 40 8.5 Verschlüsseln... 40 9 Verkürzung der Rechenzeit................................... 41 9.1 Hinweise für die Programmanlage........................... 41 9.2 Such- und Sprungoperationen............................. 42 9.3 Genauigkeit bei Schleifen................................ 42 9.4 Rechenzeitanalyse... 43 9.5 Dateipufferung... 43 111. Teil: Programmbeispiele... 45 1 X l-lehrprogramm....................................... 46 1.1 Formulierung der Aufgabe............................... 46 1.2 Problemanalyse... 47 1.3 Programmbeschreibung................................. 50 1.4 Diskussion... 57 VIII
2 Rationalisierte Dateneingabe I................................. 59 3 Rationalisierte Dateneingabe "... 61 4 Normalverteilung......................................... 63 5 Wechselkurse............................ 67 6 Trendanalyse............................................ 71 Anhang... 84 1 Terminologie... 84 2 Die algebraische Hierarchie mit Klammern......................... 85 3 Transkriptionsschlüssel tür Texas-Rechner......................... 85 4 Transkriptionsschlüssel tür andere Rechner... 89 5 Programmiertehier... 90 Literaturhinweise........................................... 99 Sachwortverzeichnis...................................... 100 IX
Mathematische Zeichen und Abkürzungen Adr, Reg, RA RB Rn Adresse Register Anzeigeregister Befehlsadreßregister Datenregister mit der Adresse n R T T- Register a; ab Absolute Adresse (je nach Rechner zwei- oder dreisteilig) Rn = X der Inhalt des Registers Rn hat den Wert x x -+ Rn die Zahl x wird in das Register Rn gebracht IN IR E $ [a, b] x,v Ergibt - Zeichen; gelesen: "wird ersetzt durch", Zum Beispiel n := n + 1 bedeutet: n wird ersetzt durch n + 1 Taste steht für die Präfixtaste 12nd I, z, B, 1*log I statt I 2nd I ~ Menge der natürlichen Zahlen Menge der reellen Zahlen ist Element von ist nicht Element von Menge der x E IR mit a";; x..;; b (abgeschlossenes Intervall) x, yyyyyyy.., (Periode)