Weiter zum Dokument
Dies ist ein Premium-Dokument.. Einige Dokumente auf Studocu sind Premium-Dokumente. Upgrade dein Konto auf Premium, um Zugriff zu erhalten.

Zusammenfassung Imperative Programmierung Pascal

WS23/24, Free Pascal Version
Kurs

Einführung in die imperative Programmierung (01613)

65 Dokumente
Studierenden haben 65 Dokumente in diesem Kurs geteilt
Akademisches Jahr: 2023/2024
Hochgeladen von:
0Follower
1Uploads
0upvotes

Kommentare

Bitte logge dich ein oder registriere dich, um Kommentare zu posten.

Text Vorschau

Inhaltsverzeichnis

  • 1 Grundwissen .................................................................................
    • 1 Zahlenmengen
    • 1 Primzahlen...
    • 1 Mengenlehre.
    • 1 Mathematische Zeichen
  • 2 Problemspezifikation und Algorithmus
  • 3 Allgemeine Sprachelemente von Pascal
    • 3 Standardfunktionen..........................................................................
    • 3 Darstellung... ............
    • 3 Typen.................................................................................
    • 3 Allgemeiner Programmaufbau
    • 3 Schleifen und Bedingungen
      • 3.5 If - then – else
      • 3.5 For-Schleife
      • 3.5 While-Schleife..........................................................................
      • 3.5 Repeat-Schleife
    • 3 Funktionen und Prozeduren.............................................................
      • 3.6 Funktionen
      • 3.6 Prozeduren
      • 3.6 Parameterübergabe: Wertübergabe vs Referenzübergabe
      • 3.6 Rekursion
      • 3.6 Wann Interativ, Wann Rekursiv?
    • 3 Zeiger.................................................................................
    • 3 Listen ..............................................................................
      • 3.8 Liste aufbauen
      • 3.8 Liste durchlaufen
      • 3.8 Liste durchsuchen
      • 3.8 Liste sortiert einfügen
      • 3.8 Listenelement entfernen
    • 3.8 Binär Baum
    • 3.8 Binär Baum Knoten suchen
    • 3.8 Binär Baum Knoten einfügen
    • 3.8 Binär Baum aufbauen
  • 3 Testen ..............................................................................
    • 3.9 Kontrollflussgraph
    • 3.9 Anweisungsüberdeckung (C0 Test).........................................
    • 3.9 Zweigüberdeckung (C1 Test)
    • 3.9 Einfache Bedingungsüberdeckung (C2 Test)
    • 3.9 Mehrfache Bedingungsüberdeckung (C3 Test)
      • zwischen C2 und C3 Test) 3.9 Minimale Mehrfach-Bedingungsüberdeckung (Kompromiss
    • 3.9 Pfadüberdeckung (C4 Test)
    • 3.9 Boundary-interior-Pfadtest (Zweigüberdeckungstest)..............
    • 3.9 Black-Box-Testverfahren
    • 3.9 Funktionsorientierter Test: Funktionale Äquivalenzklassen

1 Grundwissen .................................................................................

1 Zahlenmengen

1 Primzahlen...

1 Mengenlehre.

1 Mathematische Zeichen

Zeichen Auf deutsch Beispiel / Hinweis

 daraus folgt Beispiel: n ist durch 4 teilbar ⇒ n ist durch 2 teilbar ⇔ genau dann, wenn Beispiel: n ist eine gerade Zahl ⇔ n ist durch 2 teilbar ≈ ungefähr gleich Beispiel: 1 / 3 ≈ 0. ≠ ungleich Beispiel: 2 ≠ 1 < kleiner Beispiel: 1 < 2 > größer Beispiel: 2 > 1 ≤ kleiner-gleich Beispiel: −x 2 ≤ 0 für jede reelle Zahl x ≥ größer-gleich Beispiel: x 2 ≥ 0 für jede reelle Zahl x ≡ identisch Beispiel: a × a ≡ a 2 ± plus-minus Beispiel: Aus x 2 = 4 folgt x = ± 2 (d. x = −2 oder x = 2) { ...} Menge Beispiel: A = {1, 4, 9, 16, 25} N oder N Menge der natürlichen Zahlen N = {1, 2, 3, ...} Achtung: Manchmal wird die Null zur Menge N hinzugenommen. Z oder Z Menge der ganzen Zahlen Z = {..., -3, -2, -1, 0, 1, 2, 3, ...} Q oder Q Menge der rationalen Zahlen Menge aller Bruchzahlen m/n (wobei m, n ganzzahlig und n ≠ 0) R oder R Menge der reellen Zahlen Menge aller Zahlen mit Dezimaldarstellung C oder C Menge der komplexen Zahlen Menge aller x+iy mit x,y∈R (a, b) offenes Intervall Achtung: Verwechslungsgefahr mit "geordnetes Paar" (s.) [a, b] abgeschlossenes Intervall [a, b) und (a, b] bezeichnen halboffene Intervalle. ∞ unendlich

2 Problemspezifikation und Algorithmus

Informelle Problembeschreibung Durch eine sprachliche Fassung, verbunden mit einem Abstraktionsschritt, der überflüssige Details durch Konzentration auf die für das Problem relevanten Tatbestände eliminiert. Wesentlich ist, dass die Problembeschreibung festlegt, was getan werden soll. Beispiel: Auf einem Parkplatz stehen PKW und Motorräder ohne Beiwagen. Zusammen seien es n Fahrzeuge mit insgesamt r Rädern. Es soll die Anzahl P der PKW bestimmt werden. Problemspezifikation Eingabe: Zwei natürliche Zahlen r und n Vorbedingung: r gerade, 2n≤ r ≤ 4n Ausgabe: Eine natürliche Zahl P, falls Nachbedingung erfüllbar, sonst „keine Lösung" Nachbedingung: Es gibt eine natürliche Zahl M mit P+M=n und 4P + 2M = r Algorithmus Alles aus der Problemspezifikation und zusätzlich das: Verfahren: Berechne 𝑃 = (𝑟 − 2𝑛)/2 ( Gleichungsauflösung von P+M=n und 4P + 2M = r) Definition 2. Ein Algorithmus ist eine Menge von Regeln für ein Verfahren, um aus gewissen Eingabegrößen bestimmte Ausgabegrößen herzuleiten, wobei die folgenden Bedingungen erfüllt sein müssen:

1 der Beschreibung: Das Verfahren muss in einem endlichen Text vollständig beschrieben sein. Die elementaren Bestandteile der Beschreibung nennen wir Schritte. 2ät: Jeder einzelne Schritt des Verfahrens muss tatsächlich ausführbar sein. 3: Das Verfahren kommt in endlich vielen Schritten zu einem Ende., 4: Der Ablauf des Verfahrens ist zu jedem Punkt fest vorgeschrieben Syntax  Vokabular, reservierte Wörter, erlaubte Wörter  Vorschriften über Programmaufbau  Zeilenende-Zeichen  notwendige Groß- Kleinschreibung Semantik  Bedeutung der erlaubten Wörter und Anweisungen.  Für Computer und Programmierer wird verbindlich festgelegt, was eine Anweisung tut.

3 Allgemeine Sprachelemente von Pascal

Bezeichner 1 und Großschreibung werden nicht unterschieden 2 mit Buchstaben anfangen 3 keine Sondereichen enthalten. Auch keine Umlaute (ä,ü,ö) oder Bindestriche 4 (mehrere Wörter aneinander reihen, aber anstatt Leerzeichen zwischen die Wörter zu setzen, wird der Anfangsbuchstabe eines jeden neuen Wortes groß geschrieben) Folgende Schlüsselwörter dürfen nicht Bezeichner sein:  and, array, begin, case, const, div, do, downto, else, end file,  for, function, goto, if in , label, mod, nil, not of, or, packed,  procedure, program, record, repeat, set, then, to, type, until,  var, while, with (Handschriftlich sollten diese Schlüsselwörter unterstrichen werden) Kommentare: In geschweifte Klammern  {...} Konstanten: Uppercase z. PI = 3. Datentypen:  integer: Ganzzahlen mit oder ohne Vorzeichen gültig [-maxint-1, maxint]  int i=  real: Gleitkommazahlen (wie double)  real r=1.  char: Einzelne Zeichen  char c=‘C‘  boolean: Wahrheitswere (0/1 oder true/false)  string: ist ein char Array! Und wird so definiert: string[integer] für die Länge  type: selbstdefinierte Typen / Namen sollten mit t beginnen.

Bolean: Spezielle Funktionen für integer:  pred(x) liefert den unmittelbaren Vorgänger (engl. Predecessor) von x falls möglich, sonst undefiniert  succ(x) liefert den unmittelbaren Nachfolger (engl. Successor) von x falls möglich, sonst undefiniert  odd(x) liefert true wenn x ungerade (engl. Odd) ist, sonst false Spezielle Funktionen für char:  ord(c) liefert Ordinalzahl (Ordnungszahlbezeichnet eine bestimmte Stelle innerhalb einer Zahlenreihe oder Mengenangabe) des Zeichens c. Meist gemäß ASCII Tabelle  chr(i) liefert Zeichen zu Ordinalzahl i, wenn es existiert. z. ord(‘A‘)  65 ; chr(48)  0 Einlesen von Daten: read und readln  z. read(x1, x2, x3, x4) wobei x1 - x4 Parameter sind, die schon deklariert sein müssen  read liest alle Parameter in einer Zeile ein readln jeden Parameter in separater Zeile  write equivalent. Beispiel 3.6. Gegeben seien folgende Deklarationen: var i, j : integer; x, y : real; c : char; Werden nacheinander die Werte

ord(LKW) gibt die Position in der Aufzählung Ausschnittstypen: Ein Ausschnittstyp (subrange type) definiert als Wertebereich stets ein Intervall des Wertebereichs eines bereits definierten Grundtyps, (engl. host type). Die Definition geschieht in der Form Typname = kleinstesElement .. groesstesElement Geeignete Grundtypen sind die Standarddatentypen integer und char sowie Aufzählungstypen. Als kleinstesElement bzw. groesstesElement wird eine Konstante (constant), d. ein bereits zuvor definierter Konstantenbezeichner oder ein Wert des entsprechenden Grundtyps, angegeben. z. tMinute = 0.; oder tPlusMinus10 = -10..+10; oder tFahrzeugGruppe = Bus.; Array-Typ: array[index type] of component type z. type tIndex = 1.; tZahlenfeld = array [tIndex] of integer; {componentype ist der Inhalt des arrays und kann auch wieder ein array sein} Es wird empfohlen die Grenzen eines Feldes als Konstante zu definieren. Der Index startet typischerweise bei 0, kann aber per Definition bei anderen Wert starten. Initialisieren: var feld1: array[1.] of Integer = (3, 4, 5, 5, 5); oder via einzelner Zuweisung im Programm begin // Einzelne Zuweisung der Werte für feld

feldeins[1] := 3; feldeins[2] := 4; feldeins[3] := 5; feldeins[4] := 5; feldeins[5] := 5; end; Mehrdimensionale Arrays: array[indexType, indexType2,...] of componentType  Dimensionen durch Komma getrennt z. type tZeile = 1.; tSpalte = 1.; tSeite = array[tZeile, tSpalte] of char Verbundtyp: record - Verbund verschiedener Variablen zu einem Typ (Objekt) Schlüsselwörter record und end sind wie öffnende und schließende Klammern z type tStunde = 0.; tMinSek = 0.; tZeit = record h: tStunde; m,s : tMinSek end; {tZeit} Bezeichner müssen innerhalb des Verbundtyps eindeutig sein. Die Reihenfolge ist egal. Zugriff über variable

end else {vor else und hinter „end“ vom if kein Semicolon!} anweisung3; HINWEIS: Wenn möglich, dann nur im Else Zweig schachteln (Programmierstil Hinweis Skript) 3.5 For-Schleife for i:=1 to MAXINDEX do {i muss als integer var deklariert sein} anweisung {Bei mehreren Anweisungen mit ; trennen und begin und end umschließen} Anmerkung: runter zählen mit „downto“ anstatt „to“ möglich. 3.5 While-Schleife  Für Schleifen wo die Anzahl der Durchläufe nicht vorab bekannt ist. Kann auch keine Schleifendurchläufe haben while zahl <> 0 do {while expression muss boolean (wahr/falsch) sein} anweisung {Bei mehreren Anweisungen begin und end umschließen und mit ; trennen} 3.5 Repeat-Schleife  Für Schleifen wo die Anzahl der Durchläufe nicht vorab bekannt ist. Hat mindestens 1 Schleifendurchlauf repeat anweisung until zahl <> 0 {while expression muss boolean (wahr/falsch) sein}

3 Funktionen und Prozeduren.............................................................

Funktionen: Bei Berechnung eines Rückgabewertes Prozeduren: Ohne Rückgabewert (oder mehrerer Rückgabewerte via Referenz- Variablen)

3.6 Funktionen Beispiel: function funktionsname(x: typ, y:typ) :rueckgabetyp; {Achtung Semikolon dahinter!} var {optional} ... begin anweisungen end; Zur besseren Lesbarkeit sollen den Parameternamen in, io oder out vorangestellt werden. Lokale Variablen in Prozeduren und Funktionen stehen nach Austritt aus der Funktion/Prozedur nicht mehr (auch nicht für weitere Aufrufe) zur Verfügung. Beispiel: Function Fahrenheit2Celcius(inFahreheit : real) : real; {Diese Funktion rechnet von Fahrenheit in Celcius um} begin Fahrenheit2Celcius := (inFahrenheit – 32) / 1. End; 3.6 Prozeduren Beispiel: procedure procName (valueparam:paramtyp, var refparam:paramtyp) var ... begin anweisungen end; Zur besseren Lesbarkeit sollen den Parameternamen in, out oder io (InOut) vorangestellt werden. Lokale Variablen in Prozeduren und Funktionen stehen nach Austritt aus der Funktion/Prozedur nicht mehr (auch nicht für weitere Aufrufe) zur Verfügung. Einen formalen out-Parameter kann man sich vorstellen als lokale Variable, deren Wert nicht abgefragt, wohl aber verändert werden kann. Hinweis: Prozeduren können auch mehrere Rückgabewerte haben, beziehungsweise Variablen verändern. Das funktioniert über das Schlüsselwort var. Erläuterung: Übergebene Parameter ohne var sind Wertparameter (ByValueCall-by- Value: Kopie des Elements erzeugen --> Wert übergeben. Bzw anders ausgedrückt: Kopiert den Wert und die Kopie wird geändert).

Call by Reference: Call by Value:

3.6 Rekursion Rekursion bedeutet Funktion/Prozedur ruft sich selbst (wiederholt) auf. 3.6 Wann Interativ, Wann Rekursiv?

3 Zeiger.................................................................................

Ein Zeiger/Pointer ist in der Regel 4 Bytes groß, d. es lohnt sich normalerweise nicht, einen Pointer auf einen Bytewert zu erzeugen, da dieser nur 1 Byte belegt! Ein Pointer auf eine bestimmte Datenstruktur wird folgenderweise mit einem Dach (^) vor der Bezeichnung definiert:

War dieses Dokument hilfreich?
Dies ist ein Premium-Dokument.. Einige Dokumente auf Studocu sind Premium-Dokumente. Upgrade dein Konto auf Premium, um Zugriff zu erhalten.

Zusammenfassung Imperative Programmierung Pascal

Kurs: Einführung in die imperative Programmierung (01613)

65 Dokumente
Studierenden haben 65 Dokumente in diesem Kurs geteilt
War dieses Dokument hilfreich?

Dies ist eine Vorschau

Möchtest du uneingeschränkten Zugang? Wähle Premium und erhalte Zugriff auf alle 44 Seiten
  • Zugriff auf alle Dokumente

  • Erhalte unbegrenzte Downloads

  • Verbessere deine Noten

Hochladen

Teile deine Dokumente und erhalte Zugriff

Bereits Premium-Mitglied?
1
Inhaltsverzeichnis
1 Grundwissen ………………………………………………………………………4
1.1 Zahlenmengen ................................................................................... 4
1.2 Primzahlen… ..................................................................................... 4
1.3 Mengenlehre. ..................................................................................... 4
1.4 Mathematische Zeichen ..................................................................... 5
2 Problemspezifikation und Algorithmus ...................................................... 7
3 Allgemeine Sprachelemente von Pascal .................................................. 10
3.1 Standardfunktionen .......................................................................... 12
3.2 Darstellung… ..................................................................... …………12
3.3 Typen……………………………………………………………………...12
3.4 Allgemeiner Programmaufbau ......................................................... 15
3.5 Schleifen und Bedingungen ............................................................. 15
3.5.1 If - then – else .......................................................................... 15
3.5.2 For-Schleife ............................................................................. 16
3.5.3 While-Schleife .......................................................................... 16
3.5.4 Repeat-Schleife ....................................................................... 16
3.6 Funktionen und Prozeduren............................................................. 16
3.6.1 Funktionen ............................................................................... 17
3.6.2 Prozeduren .............................................................................. 17
3.6.3 Parameterübergabe: Wertübergabe vs Referenzübergabe ..... 18
3.6.4 Rekursion ................................................................................ 20
3.6.5 Wann Interativ, Wann Rekursiv? ............................................. 20
3.7 Zeiger…………………………………………………………..………….20
3.8 Listen ……………………………………………………………………23
3.8.1 Liste aufbauen ......................................................................... 24
3.8.2 Liste durchlaufen ..................................................................... 25
3.8.3 Liste durchsuchen ................................................................... 25
3.8.4 Liste sortiert einfügen .............................................................. 26
3.8.5 Listenelement entfernen .......................................................... 27

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.