Vorlesung 6 Flashcards

1
Q

Kontrollstrukturen

A
  • Bisher: (weitestgehend) linearer Ablauf der Programme
  • Jetzt: Beeinflussung des Programmflusses
  • Kontrollstrukturen:
  • Bedingte Anweisungen: wenn Anweisungen nur unter bestimmten Bedingungen
    ausgeführt werden sollen
  • if, switch
  • Schleifen: für wiederkehrende Anweisungen
  • while, do, for
  • Sprunganweisungen: Ausführung an anderer Stelle im Programm fortsetzen
  • break, continue, goto, return
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Programmablaufplan

A
  • Beschreibt die Abfolge von Anweisungen und Operationen in einem
    Programm.
  • Auch bekannt als Flussdiagramm.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Nassi-Shneiderman-Diagramm

A
  • Stellt das Programm als hierarchische Lösung eines Problems dar, das in
    Teilprobleme zerlegt wird.
  • Programme werden als Blöcke dargestellt und in Teilblöcke unterteilt.
  • Auch bekannt als Struktogramm.
  • Elemente:
    Anweisung Block
    Anweisung Unterblock
    Bedingung
    erfüllt?
    ja nein
    Verzweigter
    Block
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Mehrfachauswahl

A

● Ausführung von Befehlen in Abhängigkeit vom Ergebnis eines Ausdrucks.
● if: Anwendung, wenn nur wenige Alternativen oder wenn unterschiedliche
Bedingungen geprüft werden sollen
● switch: Anwendung, wenn viele Alternativen des gleichen Ausdrucks zu
unterschiedlichen Anweisungen führen sollen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Syntax der switch-Anweisung

A

switch(Ausdruck)
{
case Konst1:
Anweisung1;
break;
case Konst2:
Anweisung2;
break;

default:
Default-Anweisung;
}

  • Mit switch wird überprüft, ob der
    Wert eines Ausdrucks mit einer
    bestimmten Konstanten übereinstimmt
    und ggf. wird die hinter case stehende
    Anweisungsfolge ausgeführt.
  • break beendet die switch-Anweisung
    (optional, sonst wird auch der nächste
    Abschnitt ausgeführt).
  • Wenn der Wert mit keiner der
    Konstanten übereinstimmt, wird der
    default-Befehl ausgeführt (optional).

beispiel:

int c;
c = getchar();
switch(c) {
case ‘a’:
printf(“ein kleines a\n”);
break;
case ‘A’:
printf(“ein großes A\n”);
break;
case ‘b’:
case ‘B’:
printf(“ein kleines oder großes b\n”);
break;
default:
printf(“weder a noch b\n”);
}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

De Morgan’sche Gesetze

A
  • ¬(A ʌ B) 㲗 ¬A ᴠ ¬B
  • Beispiel:
  • Es stimmt nicht, dass es regnet (A) und die Straße nass ist (B).
  • Also regnet es entweder nicht (¬A) und/oder die Straße ist nicht nass (¬B).
  • ¬(A ᴠ B) 㲗 ¬A ʌ ¬B
  • Beispiel:
  • Es stimmt nicht, dass es regnet (A) und/oder die Straße nass ist (B).
  • Also regnet es nicht (¬A) und die Straße ist nicht nass (¬B).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Boolesche Funktionen

A

● Definition: Eine n-stellige Boolesche Funktion ist eine Abbildung
f: {0, 1}n ➝ {0, 1}
● Beispiele:
– 1-stellige Boolesche Funktion: Negation (nicht)
* fnicht(0) = 1
* fnicht(1) = 0
– 2-stellige Boolesche Funktion: Konjunktion (und)
* fund(0, 0) = 0
* fund(0, 1) = 0
* fund(1, 0) = 0
* fund(1, 1) = 1
– Beachte Analogie zur Wahrheitstabelle

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Normalformen

A
  • Jede n-stellige Funktion mit n ≥ 3 lässt sich als Kombination
    2-stelliger Funktionen darstellen.
  • Disjunktive Normalform (DNF): Disjunktion von Konjunktionen (konjugierten
    Variablen in nichtnegierter oder negierter Form)
  • Beispiel: (x ∧ ¬y ∧ z) ∨ (¬x ∧ y ∧ ¬z) ∨ (x ∧ y ∧ ¬z) ∨ (¬x ∧ ¬y ∧ ¬z)
  • Konjunktive Normalform (KNF): Konjunktion von Disjunktionen (disjugierten
    Variablen in nichtnegierter oder negierter Form)
  • Beispiel: (x ∨ ¬y ∨ ¬z) ∧ (¬x ∨ ¬y ∨ z) ∧ (¬x ∨ y ∨ z¬) ∧ (x ∨ ¬y ∨ z)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Erstellung DNF aus Wahrheitstabellen

A

man sucht die stellen bei denen die funktion f(x,y,z) 1 ergibt, und dreht alle variablen auf eins durch negation der nullen

x = 0 y = 0 z = 1 f(x,y,z) = 1
x = 0 y = 1 z = 0 f(x,y,z) = 1

f(x,y,z) = (¬x ʌ ¬y ʌ z) v (¬x ʌ y ʌ ¬z)

in den klammern UND operator, zwischen den klammern ODER operator

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Erstellung KNF aus Wahrheitstabellen

A

man such die stellen bei denen die funktion f(x,y,z) 0 ergibt, und dreht alle variablen auf 0 durch negation der einsen

x = 0 y = 0 z = 0 f(x,y,z) = 0
x = 0 y = 1 z = 1 f(x,y,z) = 0

f(x,y,z) = (x v y v z) ʌ (x v ¬y v ¬z)

in den klammern ODER operator, zwischen den klammern UND operator

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Algorithmen für DNF und KNF

A

DNF
Für eine gegebene n-stellige Funktion:
1. Erstelle Wahrheitstabelle.
2. Wähle alle Zeilen mit f(x1,…,xn) = 1.
3. Für jede Zeile bilde X1 ʌ … ʌ Xn
mit Xi := xi, wenn x0 = 1
mit Xi := ¬xi, wenn x0 = 0
4. Bilde Disjunktion (v) über die
gebildeten Terme.

KNF
Für eine gegebene n-stellige Funktion:
1. Erstelle Wahrheitstabelle.
2. Wähle alle Zeilen mit f(x1,…,xn) = 0.
3. Für jede Zeile bilde X1 v … v Xn
mit Xi := xi, wenn x0 = 0
mit Xi := ¬xi, wenn x0 = 1
4. Bilde Konjunktion (ʌ) über die
gebildeten Terme.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Reduktion der Operatoren

A
  • Alle Booleschen Funktionen lassen sich äquivalent nur mit den Operatoren
  • AND, OR, NOT
  • AND, NOT
  • OR, NOT
  • NOR
  • NAND
    darstellen.
  • Anwendung: Aufbau von Schaltkreisen mit möglichst wenig unterschiedlichen
    Bausteinen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly