Curso
Einführung in die Imperative Programmierung 1 - 5
Einführung in die Informatik. Grundlagen. Programmierkonzepte. Pascal
Módulos (6)
-
1.1 Einleitung
1.1 Informatik: Systematische Verarbeitung Informationen Computer Computer: Algorhytmus: Folge von Anweisungen, schrittweise Abarbeitung Anweisung des Algorhytmus: Instruktionen Ausführung des Logarhytmus: Ausführung des Logyrhytmus: Programmiersprache: Algorythemen in einer Sprache, die der Computer versteht. Programm: Algorythmus in Programmiersprache. Geschwindgikeit: Speicher: Speicher muss adressiert sein. Fehler: Liegen meißt am Programm.
-
1.2 Grundlagen
Lernziele: 1. Problembeschreibung Problemspezifikation abgrenzen. Einzelne Teil Problemspezifikation erläutern 2. Algorythmus Programm voneinander abgrenzen 3. Maschinensprache, Assemblersprache und Programmiersprache erläutern abgrenzen 4. das prozedurale imperative und das objektorientierte Programmparadigma kennen und vom deklarativen Programmierparadigma abgrenzen. 5. Funktion Steuerwerk Rechenwerk erklären abgrenzen Speichertypen 6. Anwendungssoftware vom Betriebssystem abgrenzen. Hauptaufgaben Betriebssystem. 2.1 Problem und Algorythmus Problem enthält relevante Tatbestände legt fest was getan wird. Eine präzisierte und formalisierte Problembeschreibung ist eine Problemspezifikation Problemspezifikation sollte enthalten Eingabe, Vorbedingung, Ausgabe, Nachbedingung Aus der Problemspezifikation erhalten wir die Problembeschreibung indem wir das eigentliche Lösungsverfahren ergänzen. Algorithmus unter Verfahren angegeben. Beispiel 2.1.2 > Definition Algorythmus Algorithmus: Menge von Regeln Verfahren aus Eingabegrößen Ausgabegrößen herleiten wobei folgende Bedingungen erfüllt sein müssen. Finitheit: Verfahren muss in endlichen Text vollständig beschrieben sein. Effektivität: Jeder einzelne Schritt des Verfahrens muss ausführbar sein. Terminierung: Das Verfahren kommt in endlich vielen Schritte Determinierheit: Der Ablauf des Verfahrens ist zu jedem Punkt fest vorgeschrieben. Funktion muss berechnbar sein. 2.2 Programmiersprache Regeln denen ein Programm gehrochen muss bestimmt von Programmiersprache Syntax: Regeln auch durch Syntax. Vokabular, Regeln über Aufbau. Semantik: Präzisiert Bedeutung erlaubter Anweisungen. (Auswirkung etc.) Programmdarstellung: Keine Toleranz für Fehler. Maschinensprach: Binärsprache. Maschinenprogramm: Programm in Maschinensprache, kann direkt ausgeführt werdne. Übersetzer: Übersetzt Anweisungen in Maschinensprache Assemblersprache: Der Befehl einer Assemblersprache wird meist eins zu eins auf einen Maschinenbefehl abgebildet. Praktisch gleiche primitiven Operationen wie Maschinenprogramme. Höhere Programmiersprachen: Befehle, die für den Menschen versändlicher sind. Compiler: Übersetzt höhere Programmiersprache in Maschinensprache. Problemorientierte Programmiersprachen. 2.3 > Korrektheit: Nachweis für Korrektheit des Aglorithmus in Ermittlung eines Lösungswegs enthalten. Korrektheitsbeweis: Nachweise, dass der Algorithmus für jede Eingabe, welche die Nachbedingung erfüllt, terminiert und Ausgabe die Nachbedingung erfüllt. (Vor u Nachbedingungen in Problemspezifikation). Algorithmus muss hinreichend formal beschrieben sein. Algorithmen in natürlicher Sprache können nicht bewiesen werden, das geht aber über eine Programmiersprache mit formal definierter Syntax und Semantik. Große Programme ermöglichen nicht immer einen Korrektheitsbeweiß. Testen kommt zum Zuge. Dokumentation: 2.4 Programmierparadigmen (Paradigma grundlegendes Prinzip) Imperatives Programmierparadigma: Programm Lösungsweg in Form eines Algorithmus vorgeben. Es wird angegeben, wie ein Problem zu lösen ist. Konzept von Neumann Achitektur. Sprungbefehele geben dem starren Geflecht Flexibilität. Befehle verarbeiten Daten, die im Speicher abgelegt sind. Variable: Logischer Speicherplatz, der einen Wert enthält. Die wichtigsten Ausprägungen des imperativen Programmierparadigmas sind die prozedurale, imperative, und die objektorientierte imperative Programmierung. Prozedurale Imperative Programmierung: Befehle, Daten werden separat behandelt. Prozedur: Zentrale Strukturierungsprodukt. Prozedur Zusammenfassung on Unterprogrammen aktiviert durch einen Befehl (Aufruf). Befehle im Vordergrund. Zentrale Strukturierungskonstrukt Prozedur. Prozedur fasst...
-
1.3 Programmierkonzepte orientiert an Pascal
Lernziele: Den grundlegenden Aufbau einfacher Pascalprogramme kennen. Struktur und Bedeutung einfacher Pascal Programme erläutern können. Erste einfache Programmrichtlinien zur erhöhrung der Lesbarkeit von Pasal bennen können. Struktur Pascal Programme: program - program heading - block - .> S. 31 Declaration Part - Statement Part Vereinbarungsteil werden Daten beschrieben und benannt im Anweisungsteil die auszuführenden Operationen ausgegeben. Bezeichner: Beginnt mit Buchstabe. Pascal nicht CS 3.4 Zahlen Integer Zahlen: ganze Zahl maxint, maximaler Wert (8 16 32 etc. bit) Maxint vorzeichen und 2^7,15 etc. Zahl muss im Maxint Bereich liegen. Real Zahlen: Gleitpunktdarstellung > S.37 Festpunktdarstellung > S.38 3.5 Beschreibung der Daten Pascal Deklarations Anweisungstel Deklaration erklärt bezeichner B > S.39 Jeder Teil kann weggelassen werden. Reihenfolge wichtig. Konstanten, Typen, definiert Variablen, Prozeduren, deklariert Konstanten, Typen deiniert 3.5.1 Datentypen Datentype definiert Menge von Werten mit ausführbaren Operationen. Typisierte Programmiersprache -Typ bestimmt Werte und Operationen für Datenobjekt -=== 1 Typ -Objekt erfordert Operanden bestimmten Types ergebnis bestimmten Typs Pascal Typen: integer, real, char, boolean: Unstrukturierte Dateitypen Integer: + - * div mod Intervall der ganzen Zahlen dyadische Infixoperatoren zwischen zwei Operanden notiert. Standardfunktionen Ergebnis Integer succ (x) Nachfolger X pred(x) Vorgänger Beispiel >S.42 Datentyp real Teilmenge der reelen Zahlen, die man als real darstellen kann. Reele Zahlen: + - * / abs (X) sqr(x) sin(x) cos(x) artcan(x) exp(x) ln(x) sqrt(x) >S.42 abs sqr liefert integer und real werte je nach Fütterung Datentyp char Alle darstellbaren Zahlen des Pascal Zeichensatzes, Steuerzeichen Wertebereich char unterliegt Ordnung ord (c) Ordinalzahl chr(i) Zeichen mit Ordinalzahl i Resultat hängt von Verschlüsselungsart ab. Oft ASCII Siehe Beispiel > S. 43 Datentyp boolean true false and or not = gleich <> ungleich < kleiner > größer <= >= für char wird die Ordinalzahl herangezogen false < true odd(x) true für gerade Wertebereiche Disjunkt 6 != 6.0!='6' string char zeichenkette <=255 Zeichen nicht vordefiniert wird bereitgestellt 3.5.2 Definition Konstanten > S. 46 3.5.3 Deklaration von Variablen Variabeldeklaration Grafik > 49 3.6 Beschreibung der Aktionen Sequentielle Ausführung. 3.6.1 Einfache Anweisung Leere Anweisung Einfachste Anweisung Zuweisung, Wertzuweisung wichtigste einfache Zuweisung := selber Datentyp außer Typ: Real Ausdruck: Integer Höchste Prio 1. not 2. * / div mod and Punktoperatoren 3. +- or Strichoperatoren Niedrigste Prio 4 = <> < <= >= Vergleichsoperatoren Im Gegensatz zu Turbopascal wertet Pascal alles aus, dh. nach einem or can das Programm über einen undefinierten Begriff stolpern. Sequenz: Zusammengesetzte Anweisung durch Semikolon getrennt begin A1;A2...; end 3.6.2 Standard ein und Ausgabe read readin Eingabe write writein Ausgabe eoln Zeilenende eof Eingabeende read (x1,xn) Tastatureingabe write (A) wobei A x x:b x:b:k sein kann. write kann Ausgabe sein. x entweder char integer real boolean oder string b integer Ausdruck positiv minimale Feldbreite. Zeichen die X bei Ausgabe belegen soll. kein B standartwet von 1 für für chart, länge string für string und abhängig von Implementierung für integer, real, boolean. K wenn x vom Typ real ist. Bestimmt Anzahl Nachkommastellen. if else Felher, falsch gesetztes Semikolon (nach then) oder...
-
2.4
Nach diesem Kapitel sollten Sie 1. die drei Wiederholungsanweisungen von Pascal kennen und wissen, in welcher Situation welche Schleifenart sinnvollerweise zu verwenden ist, 2. eine gegebene Wiederholungsanweisung in eine andere, bedeutungsgleiche Wiederholungsanweisung umformen können, 3. die Anwendungsbereiche der strukturierten Datentypen Feld (array) und Verbund (record) kennen, 4. mit Hilfe strukturierter Datentypen von Pascal problemadäquate, selbstdefinierte Datentypen festlegen und die darauf zulässigen Operationen anwenden können, 5. eine Funktion deklarieren und aufrufen können, 6. die Begriffe .„formaler Parameter.“, .„aktueller Parameter.“ und .„lokale Variable .“ kennen, 7. einfache Programme schreiben können, die ein übersichtliches Layout, sinnvolle Kommentierung sowie wohlüberlegte Datentypen und Kontrollstrukturen verwenden. 4. Programmierkonzepte orientiert an Pascal (Teil2) 4.1 Wiederholungsanweisungen 4.1.1 for-Anweisung, die while-Anweisung und die repeat-Anweisung. Schleife, Schleifenrumpf, Schleifenbedingung. for Schleife Fig. S. 81 Die for-Schleife, auch Laufanweisung genannt, wird verwendet, wenn die Anzahl der Schleifendurchläufe vor dem Eintritt in die Schleife bekannt ist. Nach Beendigung der for-Schleife ist der Wert der Kontrollvariablen nicht mehr definiert. Es dürfen deshalb im weiteren Verlauf des Programms keine Annahmen über ihren Wert gemacht werden. 4.1.2 Die while-Schleife wird verwendet, wenn die Anzahl der Schleifendurchläufe vor dem Eintritt in die Schleife nicht bekannt ist. Fig. S. 86 Die Schleifenbedingung muß eine Variable enthalten, deren Wert sich bei der Bearbeitung des Schleifenrumpfes ändert. Andernfalls haben wir eine Endlosschleife programmiert, und die Programmbearbeitung bricht nicht ab 4.1.3 Repeat Schleife see fig. 89 Abbruchkriteriums repeat-Schleife Gegensatz zur while-Schleife nicht vor, sondern nach Schleifenrumpf mehreren Anweisungen besteht, brauchen wir diese nicht mittels begin und end zu einer zusammengesetzten Anweisung zu klammern, Die while-Schleife while expression do statement läßt sich stets schreiben als if expression then repeat statement until not expression Umgekehrt läßt sich jede repeat-Schleife durch eine while-Schleife mit derselben Bedeutung ersetzen: repeat statement until expression ist äquivalent zu statement; while not expression do begin statement end Die repeat-Schleife ist zu wählen, wenn unabhängig von der Schleifenbedingung stets mindestens ein Schleifendurchlauf erfolgen soll. Hängt bereits der erste Schleifendurchlauf von der Erfüllung der Schleifenbedingung ab, so ist die while- Schleife die geeignete Wahl. Die for-Schleife ist gewöhnlich das geeignete Schleifenkonstrukt, wenn die Anzahl der Schleifendurchläufe vor Eintritt in die Schleife bekannt ist. Ist das Ende der input-Datei erreicht (und damit eof = true), dürfen keinen weiteren read-Befehle mehr für die input-Datei erfolgen. Führt das Programm einen weiteren read-Befehl aus, so erfolgt meist ein Programmabbruch. 4.2 Strukturierte Datentypen 4.2.1 Der array-Typ Array Fig. S. 95 Siehe Beispiel top s.96 Bereichsüberschreitung Wenn Sie versuchen, dieses Programm so abzuändern, daß es auch für andere Feldgrößen benutzt werden kann, werden Sie feststellen, daß nicht nur die Typdefinition, sondern auch die Anfangs- bzw. Endwerte der for-Schleifen angepaßt werden müssen. Günstiger ist es, die Grenzen eines Feldes als Konstanten zu definieren und diese in den Operationen, die auf dem Feld arbeiten, konsequent einzusetzen. Wir werden fortan so verfahren. Feldgrenzen dynamisch festlegen zu können, Mehrdimensionale Arrays > S. 105 4.2.2 Feld festgelegte Anzahl typgleicher Komponente > fig. S. 109 Komponente Verbund zugreifen Verbund Name, Punkt, Bezeichner. Derart ausgewählte record Komponente selektierte Variable Schachtelung möglich (> S.110) (revisit B. 4.2.2.2) 4.3 Funktionen Pascal stellt nicht nur...
-
3.5
Nach diesem Kapitel sollten Sie 1. eine Prozedur deklarieren und aufrufen können, 2. die wesentlichen Vorteile von Prozeduren und Funktionen kennen, 3. die Unterschiede (in Syntax und Semantik) zwischen Prozeduren und Funktionen nennen können, 4. die Realisierung einer Aufgabe als Funktion oder Prozedur begründen können, 5. das Parameterkonzept von ParaPascal beherrschen, die Wirkung der unterschiedlichen Übergabearten (in, out und inout) beschreiben und problembezogen einsetzen können, 6. die Umsetzung des allgemeineren Parameterkonzeptes von ParaPascal in das Parameterkonzept von Standard-Pascal angeben können, 7. die Wirkung der Übergabearten von Standard-Pascal (Wertübergabe, Referenzübergabe) kennen und problembezogen einsetzen können, 8. das Konzept der statischen und dynamischen Blockstruktur kennen sowie die damit zusammenhängenden Begriffe (Schachtelung, Gültigkeitsbereich, globale und lokale Variablen, Lebensdauer bzw. Existenz) verstanden haben, 9. die Begriffe Namenskonflikt und Seiteneffekt kennen, deren Auswirkungen erläutern können und wissen, wie man sie vermeidet, 10. durch Einhaltung von Layoutregeln und geeignete Bezeichnerwahl Prozeduren und Funktionen übersichtlich und verständlich formulieren können, 11. das Zeigerkonzept von Pascal verstanden haben, 12. grundlegende Operationen auf linearen Listen kennen und programmtechnisch 5.1 Prozeduren 5.1.1 Prozeduren und Parameterübergabe Prozedur, Prozedurdeklaration: Eine Prozedur (procedure) ist einer Funktion sehr ähnlich. Eine Prozedurdeklaration unterscheidet sich von einer Funktionsdeklaration zunächst einmal durch das Schlüsselwort procedure (an Stelle von function) und durch das Fehlen des Ergebnistyps. Prozeduraufruf: Angabe Prozedurname Liste Parameter Parameterübergabe: Um unterscheiden Schlüsselwörter Eingangsparameter: Schlüsselwort in. Lokale Konstante. Formale und aktuelle Parameter können durch Funktion nicht verändert werden. Formaler Parameter und aktueller Parameter können nicht verändert werden. out Parameter: Durch vorangestelltes Out charackterisiert. Lokale Variabel deren Wert nicht abgefragt aver verändert werden kann. Referenzparameters :sondern es wird der Verweis (Referenz) auf den aktuellen Parameter an den formalen Parameter übergeben. Technisch gesehen können wir uns einen Verweis vorstellen als die Adresse der Speicherzelle bzw. des Speicherbereichs, in dem der aktuelle Parameter abgelegt ist. Die Konsequenz ist, daß jede Änderung des formalen Parameters zu- gleich eine Änderung des aktuellen Parameters bedeutet, so daß nach Abarbeitung der Prozedur der letzte Wert des formalen Parameters zugleich der Wert des aktu- ellen Parameters ist. Wegen des Schlüsselwortes var sprechen wir auch von var-Parametern. ! Übersetzung Procedure Parapascal Standard Pascale Fig.>S.150 Gültigkeitsbereich und Lebensdauer fallen oft nicht zusammen. Dieinteger-Va- riable j aus Beispiel 5.2.2, die lokal zum Programm P deklariert ist, lebt während des gesamten Programmablaufs, ist aber in der Prozedur R nicht gültig, da hier eine lokale real-Variable mit demselben Bezeichner deklariert ist.
| Recurso do curso | Recurso original | Criado por |
|---|---|---|
| 2.4 | Sem título | Marco Urso |
| Sem título | Sem título | Marco Urso |