Programmieren mit PASCAL

Ähnliche Dokumente
Syntax der Sprache PASCAL

4.Grundsätzliche Programmentwicklungsmethoden

(Aufgaben zu Wertzuweisungen siehe Vorlesungsbeilage S. 49)

Um mit dem Computer über ein Programm in Kontakt treten zu können braucht man sogenannte Ein- und Ausgabebefehle.

C.3 Funktionen und Prozeduren

2.2 Einfache Datenstrukturen

INHALTSVERZEICHNIS. 1 Strukturierte Datentypen. 1.1 String. 1.2 Array (Feld) 1.3 Record. 1.4 Set. 2. Erweiterungen in Pascal

1953/54 (USA) PS FORTRAN (FORmula TRANslating system) 1958/60 (Europa) ALGOL (ALGOrithmic Language)

5. Übung - Kanalkodierung/Programmierung

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Java Anweisungen und Ablaufsteuerung

1.3 Handhabung eines Programmiersystems

Grundlagen wissenschaftlichen Arbeitens (ws /05)

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

Arrays. Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3

Eigenschaften strukturierter Datentypen

15 Der strukturierte Datentyp»set«(Mengen)

PROGRAMMIERKURS FORTRAN

3. Methodik der Programmerstellung

Inhalt. Einführung in die Strukturierte Programmierung 15

Einstieg in die Informatik mit Java

Felder (1) Felder (Arrays) speichern viele Datenelemente des gleichen Typs. Auf einzelne Elemente kann über einen Index zugegriffen werden

Informatik I Übung, Woche 40

Informatik I Übung, Woche 40

16 Der strukturierte Datentyp "record"

TURBO PASCAL VERSION 5.5

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

GI Vektoren

2. Programmierung in C

Einführung in die Programmierung mit VBA

Einstieg in die Informatik mit Java

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen

Ekkehard Kaier. Informationstechnische Grundbildung Turbo Pascal

Grundlagen der Fortran Sprache

Klausur zur Wirtschaftsinformatik II im Grundstudium

Kapitel 1: Informationsverarbeitung durch Programme

Kompaktkurs Einführung in die Programmierung. 4. Kontrollstrukturen

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Programmiertechnik Kontrollstrukturen

Projekt 3 Variablen und Operatoren

10 Wiederholungsanweisungen

Taschenrechner Version 6.1

Einstieg in die Informatik mit Java

Einführung in die Programmierung II. 3. Kontrollstrukturen

Javakurs für Anfänger

Einstieg in die Informatik mit Java

2. Programmierung in C

Boolean Wertemenge: Wahrheitswerte {FALSE,TRUE}, auch {0,1} Deklaration:

Java Ablaufsteuerung (Beispiele)

Java Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017

Ursprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java

EINI WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

Funktionen. mehrfach benötigte Programmteile nur einmal zu schreiben und mehrfach aufzurufen

1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster

VBA-Programmierung: Zusammenfassung

Programmierkurs I. Gliederung: Deklarationsteil als BNF 2. Blöcke in Ada95 (Lebenszeit, Sichtbarkeit von Variablen)

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Kontrollstrukturen

9 Steueranweisungen. if... then if... then... else case... of goto. Gliederung. 9.1 Die einseitige Verzweigung if... then...2

4.4 Imperative Algorithmen Verzweigung und Iteration

2 Programmieren in Java I noch ohne Nachbearbeitung

2 Eine einfache Programmiersprache

C++ - Einführung in die Programmiersprache Schleifen

Einfache Bedingte Ausführung

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

Institut für Computational Science Prof. Dr. H. Hinterberger. Praxismodul 1. Einführung in die Programmierung Erste Programme

Kapitel 1: Informationsverarbeitung durch Programme

RO-Tutorien 3 / 6 / 12

Wiederholungsanweisungen. fußgesteuert kopfgesteuert Zählschleife

3. Anweisungen und Kontrollstrukturen

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Herzlich willkommen!

Aufgabe Total Punkte

RO-Tutorien 15 und 16

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 14/15

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Algorithmen und ihre Programmierung

2. Programmierung in C

Grundlagen und Konzepte von C Datenstrukturen

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 16/17

Java: Eine kurze Einführung an Beispielen

Transkript:

Programmieren mit PASCAL Eine Kurzanleitung Informatik Sekundarstufe II Städtische Gesamtschule Duisburg-Hamborn/Neumühl August 2000

1 EINLEITUNG...3 2 GRUNDLAGEN...3 2.1 AUFBAU EINES EINFACHEN PASCAL-PROGRAMMS...3 2.2 AUFBAU EINES KOMPLEXEN PASCAL-PROGRAMMS...4 2.3 VARIABLEN UND DATENTYPEN...5 2.4 VARIABLENDEKLARATION...5 3 ANWEISUNGEN UND KONTROLLSTRUKTUREN...5 3.1 EINGABEANWEISUNGEN...5 3.2 AUSGABEANWEISUNGEN...5 3.3 DIE ZUWEISUNG...5 3.4 DIE BEDINGTE ANWEISUNG (IF...THEN...ELSE)...6 3.4.1 Geschachtelte Fallunterscheidungen...6 3.4.2 Die Case-Anweisung...6 3.5 WIEDERHOLUNGEN (SCHLEIFEN)...6 3.5.1 Die for-schleife...6 3.5.2 Die repeat-schleife...7 3.5.3 Die while-schleife...7 4 SELBSTDEFINIERBARE DATENTYPEN...7 4.1 DER AUFZÄHLUNGSTYP...7 4.2 DER AUSSCHNITTSTYP...7 4.3 DER SET-TYP...7 4.4 DER ARRAY-TYP (DATENTYP FELD)...8 4.5 DER RECORD-TYP (VERBUNDDATENTYP)...8 5 FUNKTIONEN UND PROZEDUREN...8 5.1 FUNKTIONEN...8 5.2 REKURSIVE FUNKTIONEN...9 5.3 PROZEDUREN...9 5.4 REKURSIVE PROZEDUREN...9 2

Vorbemerkungen Diese Kurzanleitung führt in die wesentlichen Sprachkonzepte und Kontrollstrukturen der Programmiersprache Pascal ein. Die Kursanleitung ist als Nachschlagewerk bei der Programmierung von Pascalprogrammen im Informatikunterricht und bei Hausaufgaben gedacht. Anstatt die typischen Konzepte, Kontrollstrukturen und Merkmale der Programmiersprache systematisch einzuführen, wird häufig mit einfachen, eingängigen Programmbeispielen gearbeitet, die einen schnellen Einblick erlauben. 1 Einleitung Die Programmiersprache Pascal wurde an der Eidgenössischen Technischen Hochschule Zürich unter der Leistung von Nikolaus Wirth um das Jahr 1970 entwickelt. Eine Programmiersprache ist eine Sprache, in der man einem Computer einen Algorithmus mitteilt. Ein Algorithmus ist ein Verfahren zur systematischen, schrittweisen Lösung eines Problems. 2 Grundlagen In diesem Abschnitt sollen zunächst einmal die Grundlagen des Aufbaus von Pascalprogrammen angegeben werden. Dabei wird zuerst der Aufbau eines sehr einfachen Programms betrachtet und im folgenden der Aufbau eines Aufwendigen, komplexen Pascal-Programms. 2.1 Aufbau eines einfachen Pascal-Programms Ein Pascal-Programm besteht im Wesentlichen aus drei Teilen, einem Programmkopf, einem Deklarationsteil und einem Anweisungsteil. Im Programmkopf wird der Programmname zur Identifizierung des Programms eingetragen. Dieser Programmname kann frei gewählt werden und muß nur den Anforderungen für die Schreibweise von Bezeichnern entsprechen. Im Deklarationsteil werden die Variablen vereinbart, indem Variablenname (Bezeichnername) und datentyp festgelegt werden. Im Anweisungsteil des Pascalprogramms stehen die eigentlichen Anweisungen des Algorithmus als Pascal-Befehle. Kommentare erleichtern das Verständnis des Pascal-Programms und werden in geschwungenen Klammern notiert. Es wird empfohlen, wichtige Programmteile wie z.b. Variablendeklarationen, Anfang () und Ende () von Blöcken, Prozeduren, komplizierte Anweisungen und Berechnungen und Programmiertricks zu kommentieren. Ein Beispiel soll dies verdeutlichen. program KleinesEinMalEins; uses wincrt; {Unit für Windows-Fenster} var i : integer; {Zählvariable bzw. Muliplikand} j : integer; {Zählvariable bzw. Multiplikator} {Hauptprogramm} for i:=1 to 10 do for j:=1 to 10 do writeln(i,' * ',j,' = ',i*j) {for j} {for i} end. {Hauptprogramm} 3

2.2 Aufbau eines komplexen Pascal-Programms Das folgende Beispiel zeigt den Aufbau eines komplexen Pascal-Programms zur Verwaltung einer Siegerliste bei einem Ballonwettbewerb. Das Beispielprogramm demonstriert die folgenden Konstrukte: Deklaration von Konstanten mit dem Schüsselwort const Deklaration von Datentypen mit dem Schlüsselwort type Deklaration von Variablen mit dem Schlüsselwort var Deklaration von Funktionen mit dem Schlüsselwort function. (Prozeduren werden ähnlich deklariert.) Die Verwendung der Datenstruktur Array Die Kontrollstruktur while... do program ballonwettbewerb; uses wincrt; {Unit für Windows-Fenster Ein-/Ausgabe verwenden} const {Deklaration der Konstanten} WortLaenge = 10; MaxTeilnehmer = 1000; type {Deklaration von selbstdefinierten Datentypen} TWort = String[WortLaenge]; {Stringdatentyp der Länge 10} TTeilnehmer = record {Verbunddatentyp} Entfernung : integer; Name : TWort; Vorname : TWort; TIndex = 1..MaxTeilnehmer; {Auszählungstyp} TSiegerliste = array[tindex] of TTeilnehmer; {Kombinierter Datentyp} var EinTeilnehmer : TTeilnehmer; {Variable m vom Typ TTeilnehmer} sliste : TSiegerliste; {Variable Sliste vom Typ TSiegerliste} s : TIndex; {Variable s vom Typ TIndex, siegerzahl} j : TIndex; {Zählvariable} function liesteilnehmerdatenoderende(var Teilnehmer:TTeilnehmer):boolean; writeln('bitte Daten eingeben oder "Ende" für Beenden'); write('vorname: '); readln(teilnehmer.vorname); if (Teilnehmer.Vorname='Ende') then liesteilnehmerdatenoderende:=false else write('nachname: '); readln(teilnehmer.name); write('entfernung: '); readln(teilnehmer.entfernung); liesteilnehmerdatenoderende:=true; {function liesteilnehmerdatenoderende} {Hauptprogramm} s := 1; {s initialisieren als lfd. Nr. des unechten Elements in die Siegerliste} sliste[1].entfernung := 0; {Entfernung des unechten Elements eintragen} while liesteilnehmerdatenoderende(einteilnehmer) do if EinTeilnehmer.Entfernung = sliste[s].entfernung then {füge EinTeilnehmer zu sliste hinzu, d.h. Entfernungsgleiche werden nach} {Zeitpunkt des Eintreffens sortiert eingetragen} s := s+1; {Listenzeiger um 1 weitersetzen} sliste[s] := EinTeilnehmer; {EinTeilnehmer eintragen} end else if EinTeilnehmer.Entfernung > sliste[s].entfernung {weiter als akt. Gewinner} then {lösche s, setze EinTeilnehmer als einziges neues Element aus sliste} s:=1; sliste[s] := EinTeilnehmer; {while} writeln('siegerliste:'); for j:=1 to s do writeln(sliste[j].vorname,' ',sliste[j].name);{ausgabesiegerlste} end.{hauptprogramm} 4

2.3 Variablen und Datentypen Eine Variable besteht aus den drei Komponenten Name, Inhalt und Datentyp: Beispiel 1 Beispiel 2 Beispiel 3 Beispiel 4 Name otto theo MeinName ErsterBuchstabe Inhalt 3 3. 5 otto x Datentyp Integer (ganze Zahl) Real (reele Zahl) String (Zeichenkette) Char (Zeichen) 2.4 Variablendeklaration Im Deklarationsteil eines Pascalprogramms werden Name und Datentyp einer Variablen vereinbart. VAR a : integer; {ganze Zahl} B : real; {reele Zahl} Name : string; {Zeichenkette} Eingabe : char; {Zeichen} Gefunden : boolean; {Wahrheitswerte true/false} Liste : array [1..10] of integer; {Datentyp Feld} Auf der Maschinenebene ist eine Variable als Adresse zu verstehen, die auf eine Speicherzelle im Speicher des Rechners zeigt. 1111010111011010 otto 1001010111001010 3 Anweisungen und Kontrollstrukturen In diesem Abschnitt werden Anweisungen und Kontrollstrukturen der Programmiersprache Pascal beschrieben, die den Programmablauf steuern. 3.1 Eingabeanweisungen Mit den Pascal-Anweisungen read(_) und readln(_) ist es möglich, Variablenwerte einzulesen. VAR a : integer; read(a); {bewirkt, dass nach der Eingabe von a der Cursor } {hinter der Eingabe steht.} readln(a); {bewirkt, dass nach dem Eingabe von a der Cursor in der} {nächsten Zeile steht} 3.2 Ausgabeanweisungen Mit den Pascal-Anweisungen write(_) und writeln(_) ist es möglich, Variablenwerte auf dem Bildschirm auszugeben. VAR a : integer; write(a); {bewirkt, dass nach der Ausgabe von a der Cursor } {hinter der Ausgabe steht.} writeln(a); {bewirkt, dass nach dem Ausgabe von a der Cursor in der} {nächsten Zeile steht} 3.3 Die Zuweisung 1000100110011010 Die Zuweisung oder auch Wertzuweisung genannt ist der Befehl zur Zuweisung eines aus einem Ausdruck zu ermittelnden Werts an eine Variable. Die Syntax der Zuweisung lautet: Variablenbezeichner := Ausdruck; Der Ausdruck auf der rechten Seite des Zuweisungsoperators := wird zuerst ausgewertet und dann wird diese Wert an die Varaible auf der linken Seite übergeben. Der angegebene Name der Variablen muß im Deklarationsteil definiert worden sein. Der Zuweisungsoperator wird syntaktisch wie ein Zeichen behandelt. Der Datentyp des Ausdrucks auf der rechten Seite muß mit dem Datentyp der Variablen auf der linken Seite übereinstimmen. 5

3.4 Die bedingte Anweisung (if...then...else) Die bedingte Anweisung ermöglicht die Ausführung verschiedener alternativer Programmblöcke in Abhängigkeit von der Auswertung eines logischen Ausdrucks. Syntax: IF <Bedingung> THEN BEGIN Anweisungsblock Alternative 1 END ELSE BEGIN Anweisungsblock Alternative 2 END; Der sogenannte ELSE-Fall (Sonst-Fall) kann dabei entfallen. Besteht der jeweilige Anweisungsblock nur aus einem einzelnen Befehl, so kann die Schachtelung mit BEGIN und END entfallen. 3.4.1 Geschachtelte Fallunterscheidungen Bedingte Fallunterscheidungen mit if...then...else können selbstverständlich auch geschachtelt werden, wie das folgende Beispiel zeigt. 3.4.2 Die Case-Anweisung IF a<30 then if a<20 then writeln('a ist kleiner als 20') else writeln('a liegt zwischen 20 und 30') else writeln('a ist größer oder gleich 30'); Die Case-Anweisung erlaubt die Auswahl genau einer von mehreren alternativen Anweisungen in Abhängigkeit vom Wert eines Ausdrucks z.b.: Type farbe = (rot,blau,gruen,gelb,weiss); 3.5 Wiederholungen (Schleifen) CASE farbe OF weiss : writeln('weiß'); rot : writeln('rot'); gruen : writeln('grün'); Wiederholungen sind Kontrollstrukturen, die die wiederholte Ausführung eines Anweisungsblocks ermöglichen.. In der Programmiersprache Pascal stehen zwei Schleifen mit Abbruchbedingungen (repeat...until und while...do) und eine Zählschleife (for...to...do) zur Verfügung. 3.5.1 Die for-schleife Mit der for-schleife ist die Wiederholung eines Anweisungsblocks für eine zu Beginn der Wiederholung feststehende Anzahl an aufeinanderfolgenden Werten eine sogenannten Zählvariablen möglich: anfang := 1; ende := 10; for i:=anfang to ende do for j:=anfang to ende do write('*'); writln; Die Zählvariablen der for-schleifen können innerhalb des Schleifenrumpfes benutzt werden, sollten dort aber auf keinen Fall in ihrem Wert verändert werden. Var a : array [1..10] of integer; i : integer; for i:=1 to 10 do writeln(a[i]); Hier darf kein Semikolon stehen! 6

3.5.2 Die repeat-schleife Die repat...until-schleife ist eine Schleife, bei der der Schleifenrumpf zuerst durchlaufen wird, bevor die Abbruchbedingung überprüft wird. Deshalb erfolgt bei dieser Schleife mindestens ein Durchlauf des Schleifenrumpfes. 3.5.3 Die while-schleife Repeat Writeln('Hauptmenü'); Writeln('(E) Eingabe der Daten'); Writeln('(A) Ausgabe der Daten'); Writeln('(B) Berechnung der Funktion'); Writeln('(X) Programm beenden); Readl(eingabe); CASE eingabe of 'E' : Eingabe; {Prozeduraufrufe} 'A' : Ausgabe; 'B' : Berechnung; {case} until eingabe='x'; Die while...do-schleife ist eine Schleife, bei der zuerst die Abbruchbedingung überprüft wird, bevor der Schleifenrumpf durchlaufen wird. Deshalb kann in Abhängigkeit von der Bedingung bei dieser Schleife ein Durchlauf des Schleifenrumpfes auch gar nicht erfolgen. While x<y do y := y-1; x := x-1; Aufgabe: Für welche Werte von x und y arbeitet das Programmstück korrekt? 4 Selbstdefinierbare Datentypen 4.1 Der Aufzählungstyp Mit dem Schlüsselwort TYPE kann man einen Aufzählungstyp definieren. (Die Deklaration von selbstdefinierten Datentypen erfolgt vor der Variablendeklaration mit dem Schlüsselwort VAR): TYPE spielfarbe = (karo,herz,pik,kreuz); farbe = (rot,blau,gelb,gruen); Entsprechend können dann Variablen von diesem Typ deklariert werden: VAR trumpf : spielfarbe; grundierung : farbe; Damit sind dann Anweisunge der folgenden Form möglich: IF trumpf = herz then writeln('kontra'); 4.2 Der Ausschnittstyp 4.3 Der Set-Typ TYPE wochentag = (mon,die,mit,don,fre,sam,son); {Aufzählungstyp} werktag = mon..fre; wochenende = sam..son; TYPE zutaten = (zucker, mehl, sahne, honig, mandeln); nachtisch = set of zutaten; 7

4.4 Der Array-Typ (Datentyp Feld) Ein Array ist die Zusammenfassung einer festen Anzahl von Elementen des gleichen Datentyps. Die Deklarierung soll an einem Beispiel erklärt werden. Index Inhalt VAR zahlenfolge : array [1..10] of integer; 1 2 3 4 5 6 7 8 9 10 13 22 15 100 200 300 11 144 32 0 Array mit dem Namen ''Zahlenfolge' Arrays können als Elemente, Objekte beliebigen Typs haben. So ist zum Beispiel folgende Deklaration möglich: TYPE person = RECORD name : string; vorname : string; END; personenliste = ARRAY [1..100] of person; 4.5 Der record-typ (Verbunddatentyp) Der Verbunddatentyp stellt eine sehr elegante Möglichkeit dar, Informationen zu einem strukturierten Datentyp zusammenzufassen. Dadurch ist es möglich sehr komplexe Datenstrukturen zu entwickeln und komfortabel mit ihnen zu arbeiten. TYPE Zeit = RECORD Stunde : integer; Minute : integer; END; Nach der Typdeklaration kann man verschiedene Variablen dieses Typs deklarieren. VAR MeineZeit : Zeit; DeineZeit : Zeit; Zugriff auf die Komponenten der jeweiligen Variable erhält man über den sogenannten 'Punktoperator MeineZeit.Stunde := 12; MeineZeit.Minute := 30; Erleichtert wird der Umgang mit Verbunddatentypen durch die with-anweisung. with MeineZeit do Stunde := 12; Minute := 30; 5 Funktionen und Prozeduren Funktionen und Prozeduren stellen Möglichkeiten dar, ein umfangreiches Programm in sinnvolle Einheiten zu unterteilen und inhaltlich zusammengehörige Vorgänge in einem Programmblock zusammenzufassen.. Programm gewinnen durch die Verwendung von Funktionen und Prozeduren deutlich an Übersichtlichkeit. Zudem verringert sich die Fehleranfälligkeit. Außerdem ist die Wiederverwendbarkeit der Prozeduren und Funktionen von großer Bedeutung. Dadurch werden Programm um vieles kürzer. 5.1 Funktionen Eine Funktion ist ein Unterprogramm, das einen Rückgabewert liefert. Übergabeparameter vom Datentyp integer function quadrat(x : integer):integer; quadrat := x * x; Rückgabewert vom Datentyp integer Der Aufruf der Funktion erfolgt dann mit Hilfe ihres Funktionsnamens und der Übergabe der Parameter. ErsteZahl := 2; ergebnis := quadrat(erstezahl); writeln(ergebnis); ZweiteZahl := 4; writeln(quadrat(zeitezahl)); 8

5.2 Rekursive Funktionen Eine Funktion, die sich selbst aufruft wird rekursive Funktion genannt. 5.3 Prozeduren function pot(a,n:integer):integer; if n=0 then pot := 1 else pot := pot(a,n-1) * a; Prozeduren sind Unterprogramme die dazu dienen können immer wiederkehrende Vorgänge zusammenzufassen oder ein größeres Programmprojekt in überschaubare Einzelteile (Module) zu zerlegen. procedure hauptmenue(kundenname:string); var eingabe; Repeat Writeln('Hauptmenü'); Writeln('(E) Eingabe der Daten'); Writeln('(A) Ausgabe der Daten'); Writeln('(B) Berechnung der Funktion'); Writeln('(X) Programm beenden); Writeln('Sehr geehrte/r Frau/Herr ',Kundenname,' bitte wählen Sie!'); Readl(eingabe); CASE eingabe of 'E' : Eingabe; 'A' : Ausgabe; 'B' : Berechnung; {case} until eingabe='x'; {procedure hauptmenue} Prozeduren werden über ihren Prozedurnamen aufgerufen. Angenommen die Prozeduren 'Begruessung', 'Verabschiedung' und die oben dargestellte Prozedur 'Hauptmenue' seien bereits deklariert, dann kann das Hauptprogramm wie folgt sehr übersichtlich aussehen. {Hauptprogramm} Begruessung; hauptmenue(name); Verabschiedung; end. {Hauptprogramm} 5.4 Rekursive Prozeduren Eine rekursive Prozedur ist eine Prozedur, die sich selbst aufruft. 9

A Abbruchbedingung 6 Adresse 5 Algorithmus 3 Anweisungen 3 Anweisungteil 3 Array-Typ 8 Aufzählungstyp 7 Ausdruck 5 Ausgabeanweisungen 5 Ausschnittstyp 7 B bedingte Anweisung 6 C Case-Anweisung 6 D Datentypen 5 Deklarationsteil 3 F Feld 8 for...to...do 6 for-schleife 6 Funktionen 8 G Geschachtelte Fallunterscheidungen 6 geschwungenen Klammern 3 Grundlagen 3 I if...then...else 6 Inhalt 5 K Kommentare 3 Kontrollstrukturen 5 M Module 9 P Pascal-Befehle 3 Pascal-Programm 3 Programmiersprache 3 Programmkopf 3 Programmname 3 Prozeduren 9 Prozedurnamen 9 Punktoperator 8 R record-typ 8 Rekursive Funktionen 9 Rekursive Prozeduren 9 repeat...until 6 repeat-schleife 7 S Schleifen 6 Schleifenrumpf 7 Selbstdefinierbare Datentypen 7 Set-Typ 8 Speicher 5 Speicherzelle 5 Suche 9 U Unterprogramme 9 V Variable 5 Variablen 5 Variablenbezeichner 5 Variablendeklaration 5 Verbunddatentyp 8 W Wertzuweisung 5 while...do 6 while-schleife 7 Wirth 3 with-anweisung 8 Z Zählvariablen 6 Zuweisung 5 Zuweisungsoperators 5 10