ebook img

Einführung in die Programmiersprache SIMULA: Anleitung zum Selbststudium Skriptum für Hörer aller Fachrichtungen ab 1. Semester PDF

217 Pages·1982·4.31 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 Einführung in die Programmiersprache SIMULA: Anleitung zum Selbststudium Skriptum für Hörer aller Fachrichtungen ab 1. Semester

G. Lamprecht Einführung in die Programmiersprache SIMULA Programmiersprachen Formale Sprachen, von H. Becker und H. Walter Einführung in ALGOL 60, von H. Feldmann Einführung in ALGOL 68, von H. Feldmann Einführung in die Programmiersprache PASCAL, von K.-H. Becker und G. Lamprecht Einführung in PASCAL, von H. Feldmann Die Programmiersprache PASCAL, von D. Krekel und W. Trier Einführung in die Programmiersprache PL/1, von H. Kamp und H. Pudlatz Einführung in die Programmiersprache FORTRAN 77, von G. Lamprecht Einführung in die Programmiersprache SIMULA, von G. Lamprecht Einführung in die Programmiersprache BASIC, von W.-D. Schwill und R. Weibezahn BASIC in der medizinischen Statistik, von H. Ackermann Einführung in die Programmiersprache COBOL, von W.-M. Kähler PEAR L, Processand Experiment Automation Realtime Language, von W. Werum und H. Windauer Vieweg Günther Lamprecht Einführung in die Programmiersprache SIMULA Anleitung zum Selbststudium 2., überarbeitete und erweiterte Auflage Skriptum für Hörer aller Fachrichtungen ab 1. Semester Springer Fachmedien Wiesbaden GmbH CIP-Kurztitelaufnahme der Deutschen Bibliothek Lamprecht, Günther: Einftihrung in die Programmiersprache SIMULA: Anleitung zum Selbststudium; Skriptum ftir Hörer aller Fachrichtungen ab 1. Sem./Günther Lamprecht. - 2., überarb. u. erw. Aufl. - Braunschweig; Wiesbaden: Vieweg, 1982. (Uni-Text) Eng!. Ausg. u. d. T.: Lamprecht, Günther: Introduction to SIMULA sixty-seven ISBN 978-3-528-13321-4 ISBN 978-3-322-85538-1 (eBook) DOI 10.1007/978-3-322-85538-1 1. Auflage 1976 2., überarbeitete und erweiterte Auflage 1982 Alle Rechte vorbehalten © Springer Fachmedien Wiesbaden 1982 Ursprünglich erchienen bei Friendr. Vieweg & Sohn Verlagsgesellschaft mbH. Braunschweig 1982 Die Verviellaltigung 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 ftir die Verviellaltigung durch alle Verfahren einschließlich Speicherung und jede Übertragung auf Papier, Transparente, Filme, Bänder, Platten und andere Medien. Inhaltsverzeichnis 1 Ein einfaches Programmierbeispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 Ganze Zahlen; Auswertung arithmetischer Ausdrücke . . . . . . . . . . . . . . 5 3 Sprunganweisung, Schleifensteuerung, Boolesche Variable . . . . . . . . . . . 9 4 Polynomberechnung; Vektoren, Matrizen . . . . . . . . . . . . . . . . . . . . . . 19 5 Eingabe von Datenkarten (Standard-Eingabe) . . . . . . . . . . . . . . . . . . . . 26 6 Ausgabe auf dem Drucker (Standard-Ausgabe) . . . . . . . . . . . . . . . . . . . 33 7 Verarbeitung von Texten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 8 Programmstruktur: zusammengesetzte Anweisungen, Blöcke, Unterprogramme . . . . . . . . . . 55 9 Rekursive Prozeduren; vorgegebene Unterprogramme . . . . . . . . . . . . . . 69 10 Klassen als Verbund . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 11 Klassen mit Anweisungen, Klassen als Programmsystem . . . . . . . . . . . . . 91 12 Ko-Routinen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 13 Listenverarbeitung ..................................... 103 14 Simulation .......................................... 110 1 5 Zugriff auf Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... 120 16 EXTERNAL-Deklaration ................................. 130 Lösungen zu den Aufgaben und Beispielen ........................ 135 Anhang A Interne Zahlendarstellung ........................... 188 B Schlüsselwörter ................................. 190 c ln SIMULA benutzte Zeichen und ihre Darstellung .......... 192 D Systemklassen SIMSET und SIMULATION ............... 193 E Erzeugung zufälliger Werte .......................... 198 F Vorgegebene externe Prozeduren ...................... 200 Literaturhinweise ......................................... 201 Sachwortverzeichnis ....................................... 203 Vorwort Diese Einführung in die Programmiersprache SIMULA ist aus Lehrveranstaltungen entstanden, die seit mehreren Jahren am Rechenzentrum der Universität Bremen abgehalten wurden. Das Buch wendet sich an .,Hörer aller Fakultäten" und will ihnen den Zugang zur Datenverarbeitung an Hand einfacher Aufgabenstellungen erleichtern. Die Programmiersprache SIMULA, die am Norwegian Computing Center von 0. J. Dahl, B. Myhrhaug und K. Nygaard entwickelt wurde, ist eine Erweiterung der Programmiersprache ALGOL 60. Die Sprache bietet eine Fülle von Anweisungen, so daß man den Lösungsweg auch bei komplexer Aufgabenstellung übersichtlich beschreiben kann. Das Ziel dieser Einführung in die Programmiersprache SIMULA ist es, den Leser nach und nach mit den Sprachelementen vertraut zu machen. Dabei kommt es weniger darauf an, die Sprache vollständig zu beschreiben, als vielmehr, beispielhaft zu zeigen, wie man die einzelnen Anweisungen anwenden kann. Die Programmierbeispiele und Aufgaben wurden auf der Rechenanlage Siemens 7.880 der Universität Bremen gerechnet und die Ergebnisse im Lösungsteil angegeben und erläutert. Damit hat der Leser die Möglichkeit, seine eigenen Programme und Ergebnisse zu kontrollieren. Herrn Dr. Lohmann möchte ich für die Durchsicht des Manuskripts und Frau U. Kleinschmidt für ihre Sorgfalt beim Schreiben der Druckvorlagen danken. Bremen, im April 1982 G. Lamprecht -I- 1 Ein einfaches Programmierbeispiel Es soll mit Hilfe der Rechenanlage die Funktion y = 0,3 x2 + 0,25 x - I an der Stelle x = 0,5 berechnet werden. Wie man leicht nachrechnen kann, muß das Ergebnis -0,8 lauten. Das SIMULA-Programm soll angegeben und anschließend erläutert werden. Beispiel I. I BEG IN REAL X,Y; X := 0.5; Y := 0.3*X**2+0.25•X-I; OUTFIX(X,6,20); OUTFIX(Y,6,20); OUTIMAGE; END Jedes Programm wird mit dem Schlüsselwort BEGIN begonnen und mit END beendet. Diese beiden Schlüsselwörter bilden sozusagen eine Klammer, mit der alle Anweisungen zu einem Programm zusammengehalten werden. Wie später gezeigt wird, können sie auch an anderer Stelle benutzt werden, wobei sie dann einen Teil des Programms verklammern. Durch die auf BEGIN folgende Anweisung REAL X,Y; werden zwei Speicherplätze im Arbeitsspeicher bereitgestellt, auf die im weiteren Programmablauf über die Namen X und Y zugegriffen werden kann. Da sich der Inhalt der Speicherplätze im Laufe der Programmausführung ändern kann, spricht man auch von den "Variablen" X und Y und sagt, daß sie durch die Anweisung REAL X,Y; "deklariert" werden. Allgemein kann man Variable deklarieren, indem man nach dem Schlüsselwort REAL deren Namen durch Kommata getrennt aufführt. Die Deklarationsanweisung wird mit einem Semikolon abgeschlossen. Es ist darauf zu achten, daß alle Variablen vor ihrer ersten Benutzung im Programm deklariert sind; insbesondere ist festzuhalten, daß ihre Deklaration nach dem Schlüsselwort BEGIN zu erfolgen hat. Durch die Deklarationsanweisung mit dem Schlüsselwort REAL und der Aufzählung der Variablen geschieht dreierlei: - Bereitstellung von Speicherplätzen, die die vorgesehenen Namen erhalten, - Festlegung der internen Zahlendarstellung ("Typ der Variablen", hier REAL) und - Vorbesetzung der bereitgestellten Speicherplätze mit dem Wert Null. -2- Obwohl nach der Sprachdefinition von SIMULA für die Festlegung von Variablennamen Groß und Kleinbuchstaben erlaubt werden, sind bei praktisch allen Compilern*) nur Großbuch staben zugelassen. Es gilt folgende Festlegung für die Vergabe von Namen: Das erste Zeichen eines Namens muß ein Buchstabe sein, dann dürfen Buchstaben und Ziffern in beliebiger Reihenfolge angegeben werden. Von manchen Compilern wird das Unterstreichungszeichen (_) bei der Wahl von ~amen den Ziffern gleichgestellt, so daß man Variablennamen sinnfälliger angeben kann (z.B. X_WERT statt XWERT). Weil man das Unterstreichungszeichen (_) beim Ablachen und beim Lesen des Programms leicht mit einem Subtraktionszeichen (-) verwechseln kann, sollte man auf die Benutzung des Unterstreichungszeichens möglichst verzichten. Außer Buchstaben, Ziffern und - bei manchen Compilern - dem Unterstreichungszeichen (_) darf in einem Namen kein weiteres Zeichen angegeben werden. So dürfen Sonderzeichen und insbesondere Leerzeichen in einem Namen nicht auftreten. Selbstverständlich müssen die Namen eindeutig sein und dürfen nicht mit vorgegebenen Namen oder Schlüsselwörtern über einstimmen (siehe Anhang B, Seite 190). Dabei wird nur eine bestimmte Anzahl von Zeichen eines Namens zur Unterscheidung herangezogen. Die nachfolgenden Zeichen des Namens bleiben unberücksichtigt. Je nach vorgegebenem Compiler variiert diese Zahl von 12 bis 256. So kann es geschehen, daß von einem Compiler beispielsweise die Variablennamen MITTELWERTEID und MITTELWERTEll als gleich angesehen werden, während ein anderer Compiler sie als zwei verschiedene Variable erkennt. Durch die im Beispiel I. I der Deklaration von X und Y folgende Anweisung wird der Variablen X der Wert 0,5 in der für sie gewählten Speicherungsform (Typ REAL) zugewiesen. Allgemein wird in einer Zuweisungsanweisung der Variablen, die links von dem Zuweisungszeichen := steht, der Wert zugewiesen, der auf der rechten Seite angegeben ist. Wie man an der nächsten Anweisung erkennen kann, braucht die rechte Seite nicht aus einer Konstanten zu bestehen. Vielmehr kann hier ein b~liebig komplizierter arithmetischer Ausdruck angegeben sein. Nach der Auswertung des arithmetischen Ausdrucks wird der berechnete Wert der Variablen auf der linken Seite des Zuweisungszeichens zugewiesen. Die Auswertung wird nach Prioritäten durchgeführt, die den einzelnen Rechenarten (Exponentiation, Multiplikation und Division, Addition und Subtraktion) zugeordnet sind. Im nächsten Abschnitt wird ausführlicher auf die Berechnung arithmetischer Ausdrücke eingegangen. *)Ein Compiler ist ein tlbersetzungsprogramm, das aus den eingegebenen (SIMULA-) An weisungen die Befehle erzeugt, die von der Rechenanlage unmittelbar ausgeführt werden können. Außerdem werden von dem Compiler die (formalen) Verstöße des Programms gegen die Sprachdefinition erkannt und mitgeteilt. -3- Nach der Wertzuweisung an die Variable Y werden die Inhalte der Variablen X und Y auf dem Drucker ausgegeben. Dies geschieht durch die drei Anweisungen OUTFIX(X,6,20); OUTFIX(Y,6,20); OUTI~~GE; die später ausführlicher beschrieben werden sollen. Im Augenblick soll nur testgehalten werden, daß durch die Anweisung OUTFIX mit anschließender Angabe des Variablennamens und zweier Angaben für die Größe des Druckfeldes der Wert der Variablen in aufbereiteter Form in einen internen Ausgabebereich ("Ausgab.;puCfer") geschrieben \vird. Erst durch die Anweisung OUTI~GE; wird der interne Ausgabebereich seinerseits auf dem Drucker ausgegeben. Da nun die ge wünschten Ergebnisse ausgedruckt sind, kann das Programm beendet werden. Hierzu dient, wie bereits erklärt, die Anweisung END In dem Beispiel 1.1 wurden die einzelnen Anweisungen untereinander aufgeführt. Dies hatte nur den Grund, das Programm dem menschlichem Leser leichter lesbar zu machen. Für den Compiler, der das Programm in die jeweilige Maschinensprache übersetzt, hätte es ausge reicht, zwischen den Schlüsselwörtern BEGIN und REAL und dann vor dem Variablennamen X jeweils ein Leerzeichen zu lassen. Alle anderen Angaben des Programms hätte man unmittel bar aneinanderreihen können. Allgemein kann man sagen, daß nur die Schlüsselwörter und die entweder gewählten oder vorgegebenen Namen nicht aneinanderstoßen dürfen. Sie müssen durch mindestens ein Leer zeichen oder durch ein Sonderzeichen voneinander getrennt sein. Umgekehrt dürfen fast überall Leerzeichen eingefügt werden, um das Programm übersichtlicher zu gestalten. Sie dürfen aber nicht in Schlüsselwörtern und 1n Namen sowie in zusammengesetzten Sonder zeichen auftreten. So darf z.B. nicht REAL an Stelle des Schlüsselwortes REAL und nicht : = an Stelle des Zuweisungszeichens := geschrieben werden. Zum Ablachen der SIMULA-Anweisungen stehen die Spalten I bis 72 zur Verfügung, wobei es erlaubt ist, eine einzelne Anweisung ohne besondere Markierung über mehrere Lochkarten auszudehnen. Die Spalten 73 bis 80 dienen zur Kennzeichnung des Programms und zum Durchnumerieren der Programmkarten. Die Spalten 73 bis 80 werden vom Compiler nicht interpretiert.*) Falls man zu einzelnen Anweisungen des Programms Hinweise oder Erläuterungen für den menschlichen Leser einfügen möchte, kann man dies nach dem Schlüsselwort BEGIN oder nach Abschluß einer Anweisung, d.h. nach einem Semikolon (;) tun. Man hat hierzu das Schlüsselwort COMMENT anzugeben und daran anschließend den gewünschten Text. Der Kommentar wird durch ein *)Insbesondere bei interaktiver Programmeingabe gibt es hiervon Abweichungen; so sind· bei einigen Compilern 80 bzw. 120 Zeichen pro Eingabezeile möglich.

Description:
Diese Einführung in die Programmiersprache SIMULA ist aus Lehrveranstaltungen entstanden, die seit mehreren Jahren am Rechenzentrum der Universität Bremen abgehalten wurden. Das Buch wendet sich an .,Hörer aller Fakultäten" und will ihnen den Zugang zur Datenverarbeitung an Hand einfacher Aufgab
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.