3. Methodik der Programmerstellung 3.1 Vorgehen 3.2 Programmerstellung 3.2.1 Konventionen 3.2.2 Schlüsselwörter und Bezeichner 3.2.3 Fehlertypen 3.2.4 Programmierstil 3.3 Formaler Aufbau eines Pascal-Programms Folie 46 Apr-05 Vorgehensweise Aufteilung in einzelne Arbeitsschritte Methode der schrittweisen Verfeinerung (Top-Down-Strategie) Programm- erstellung Programmiersprachenunabhängig Definition der Aufgabe Festlegen der Programmstruktur nach dem EVA-Prinzip: EINGABE - VERARBEITUNG - AUSGABE Algorithmus in einer graphikorientierten Beschreibungssprache (Struktogramm) jeder Programmablauf basiert auf wenigen Grundstrukturen (Sequenz, Auswahl, Wiederholung) Problem- aufbereitung Problem- analyse Formulierung in einer höheren Programmiersprache Übersetzen des Quellcodes in Maschinensprache durch den Compiler Fehlerbeseitigung und Programmtest Folie 47 Apr-05
3. Methodik der Programmerstellung 3.1 Vorgehen 3.2 Programmerstellung 3.2.1 Konventionen 3.2.2 Schlüsselwörter und Bezeichner 3.2.3 Fehlertypen 3.2.4 Programmierstil 3.3 Formaler Aufbau eines Pascal-Programms Folie 48 Apr-05 Programmerstellung: Konventionen in Pascal kein Unterschied zwischen Groß- und Kleinschreibung i.d.r. keine Verwendung deutscher Sonderzeichen (ä,ö,ü,ß) im Quellcode jede Anweisung endet i.d.r. mit dem Semikolon (;) Punkt als Dezimaltrennzeichen (z.b. 2.6 statt 2,6) ein Kommentar wird im Quellcode durch geschweifte Klammern { } oder durch die Zeichenfolgen (* und *) eingerahmt Beispiele: { Dies ist ein Kommentar } (* und das ist auch ein Kommentar *) Folie 49 Apr-05
Programmerstellung: Schlüsselwörter vs. Bezeichner Schlüsselwörter / reservierte Wörter integraler Bestandteil einer Programmiersprache, die nicht durch den Programmierer neu definiert werden können ermöglichen eine korrekte Übersetzung und Ausführung des Quellcodes, da sie die Programmstruktur bestimmen Beispiele: BEGIN, CONST, PROCEDURE, REPEAT, USES Bezeichner / Namen benutzerdefiniert dienen der Identifikation bestimmter Objekte (z.b. Datenobjekte, Programmteile) Standard-Funktionen und Standard-Prozeduren sind auch Bezeichner Syntaktischer Aufbau: werden aus Buchstaben und Ziffern gebildet (erste Zeichen stets ein Buchstabe) Keine Verwendung von Sonderzeichen und Umlauten (Ausnahme: Unterstrich _ ) Bezeichner können beliebig lang sein, es sind aber nur die ersten 63 Zeichen relevant Beispiele: nettopreis, anz_studenten, Sin(x), Write, Read Folie 50 Apr-05 Programmerstellung: Fehlerarten Fehler zur Übersetzungszeit (Compiler-Fehler) Beim Übersetzen des Quellcodes in die Maschinensprache werden die syntaktischen und die semantischen Fehler erkannt. Borland Pascal aktiviert das Editor-Fenster und positioniert den Cursor an die Stelle, an der der Fehler im Quellcode aufgetreten ist. Laufzeitfehler (Runtime-Error) Diese Fehler treten beim Ablauf des Programms auf und führen zum Programmabbruch durch das Betriebssystem. Beispiel: Division durch 0, Wertebereichsüberschreitungen Logische Fehler Die Aufgabenstellung wird durch das Programm nicht gelöst, weil z.b. ein nicht geeigneter Algorithmus gewählt wurde. Der Compiler erkennt keine logischen Fehler! Folie 51 Apr-05
Programmerstellung: Programmierstil Folie 52 Apr-05 Ziele: Lesbarkeit und Verständlichkeit Erleichterung der Fehlersuche, Wartung und Pflege Stil-Regeln: Optische Trennung der Programmbausteine Leerzeilen Einrücken des Programmtextes Großbuchstaben für Schlüsselwörter, Kleinbuchstaben für Bezeichner, nur der erste Buchstabe groß bei Standard-Funktionen und Standard- Prozeduren sprechende Namen für Bezeichner bzw. Verwendung von anerkannten Namenskonventionen (ungarische Notation von Charles Simonyi) häufiger Einsatz von Konstanten Strukturierung der Programme nach Eingabe, Verarbeitung und Ausgabe (EVA-Prinzip) Großzügiger Einsatz von Kommentaren Benutzerfreundlich programmieren (z.b. verständliche Dialoge) 3. Methodik der Programmerstellung 3.1 Vorgehen 3.2 Programmerstellung 3.2.1 Konventionen 3.2.2 Schlüsselwörter und Bezeichner 3.2.3 Fehlertypen 3.2.4 Programmierstil 3.3 Formaler Aufbau eines Pascal-Programms Folie 53 Apr-05
Formaler Aufbau eines Pascal-Prg: Programmkopf (Identifikationsteil) PROGRAM Programmkopf BEGIN Deklarationsteil END. Verarbeitungsteil Überschrift für das Programm Bestandteile reservierte Wort PROGRAM Bezeichner für Programmname Semikolon Bezeichner darf im Programm nicht mehr für etwas anderes verwendet werden Beispiel: PROGRAM rechnungspruefer; Folie 54 Apr-05 Formaler Aufbau eines Pascal-Prg: Deklarationsteil (Vereinbarungsteil) PROGRAM Programmkopf BEGIN Deklarationsteil END. Verarbeitungsteil Elemente werden angemeldet, deklariert (konkrete Werte) oder definiert (Beschreibung) entsprechender Speicherplatz für Elemente wird reserviert programmspezifische Vereinbarungen Units USES Konstanten CONST Datentypen TYPE Variablen VAR Prozeduren PROCEDURE Funktionen FUNCTION Folie 55 Apr-05
Formaler Aufbau eines Pascal-Prg: Verarbeitungsteil (Anweisungsteil) PROGRAM Programmkopf BEGIN Deklarationsteil END. Verarbeitungsteil Sammlung von Anweisungen beginnt mit dem reservierten Wort BEGIN mit dem reservierten Wort END und dem folgenden Punkt wird das Ende des Verarbeitungsteils (und damit des gesamten Programms) signalisiert die einzelnen Anweisungen werden durch Semikolon getrennt (Semikolon ist ein Anweisungstrennzeichen und kein Anweisungsendezeichen) Folie 56 Apr-05 Exkurs: Syntaxdiagramme graphische Notation, um den grammatikalischen Aufbau einer Sprache darzustellen gerichteter Graph, bei dessen Durchlauf automatisch syntaktisch richtiger Programmcode entsteht Notation Sprachelement der Programmiersprache (Quellcode) Syntaktische Einheit, die durch weitere Syntaxdiagramme erklärt werden müssen Verbindung der Symbole durch Linien, entsprechend der Ablaufrichtung Folie 57 Apr-05
Syntaxdiagramm Pascal-Programm Programmkopf Programmkopf PROGRAM Programmname ; Verarbeitungsteil Verarbeitungsteil Deklarationsteil Deklarationsteil USES Bezeichner ;, CONST Bezeichner = Konstante ; TYPE Bezeichner = typ ; VAR Bezeichner : typ ;, Folie 58 Apr-05 BEGIN Anweisung END. ; Beispielaufgabe Rechnungsbetrag Aufgabenstellung: Fertigen Sie ein Programm an, das nach der Eingabe einer Bestellmenge einer Ware und des Warenpreises den Rechnungsbetrag ausgibt. Problemaufbereitung: Eingabe: Einlesen der Bestellmenge Einlesen des Warenpreises Verarbeitung Rechnungsbetrag = Bestellmenge * Warenpreis Ausgabe Schreiben von Rechnungsbetrag Folie 59 Apr-05
Beispielaufgabe - Fortsetzung Problemanalyse: Eingabe bestellmenge Eingabe warenpreis rechnungsbetrag = bestellmenge * warenpreis Ausgabe rechnungsbetrag Folie 60 Apr-05 Beispielaufgabe - Fortsetzung Folie 61 Apr-05
Beispielaufgabe Benzinverbrauch Aufgabenstellung: Erstellen Sie ein Programm benzin, das aus der Eingabe der geeigneten Werte den Durchschnittsverbrauch pro 100 Kilometer ermittelt. Problemaufbereitung: Eingabe: Einlesen der gefahrenen Kilometer Einlesen der getankten Benzinmenge Verarbeitung Durchschnittsverbrauch = Benzinmenge/Kilometer * 100 Ausgabe Schreiben von Durchschnittsverbrauch Folie 62 Apr-05 Beispielaufgabe - Fortsetzung Problemanalyse: Eingabe kilometer, menge durchschnittsverbrauch = menge / kilometer * 100 Ausgabe durchschnittsverbrauch Folie 63 Apr-05
Programmerstellung - Fortsetzung Folie 64 Apr-05