n! = 1 * 2 * n 5. algorithmen - · pdf filek. bothe, institut für ... berechne 2 n. 2....
TRANSCRIPT
![Page 1: n! = 1 * 2 * n 5. Algorithmen - · PDF fileK. Bothe, Institut für ... Berechne 2 n. 2. Berechne die Fakultät einer nat. Zahl: ... - Zyklus: Wiederholung von Schritten (Schritt 4](https://reader031.vdocuments.pub/reader031/viewer/2022030411/5a9da5a57f8b9a21688d5170/html5/thumbnails/1.jpg)
K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16
5. Algorithmen
Version: 21. Okt. 2015 2K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16
Zu lösende Probleme
1. Berechne 2n
.
2. Berechne die Fakultät einer nat. Zahl:
n! = 1 * 2 * ... n
3. Entscheide, ob die nat. Zahl n eine Primzahl ist!
4. Ist ein gegebenes Computerprogramm korrekt?
5. Gegeben ist ein beliebiges Computerprogramm.Entscheide, ob es immer nach endlich vielen Schritten abbricht (kein unendlicher Zyklus).
z. B. class T { ...
while (x >= 0)
... ;
}
3K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16
Programme lösen Probleme
Programme = Daten + Algorithmen
Berechnungsvorschrift:Eingaben Resultat
Was ist ein
Algorithmus?
… durch Algorithmen, die über Daten operieren
BerechnungsvorschriftEingaben Resultat
4K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16
Was ist ein Algorithmus?
Algorithmus:
Verfahren zur Berechnung gesuchter Werte aus gegebenen Werten, das in einer präzisen endlichen Beschreibungangegeben ist, die auf der schrittweisen Ausführung von elementaren (und berechenbaren)Verarbeitungsoperationen beruht.
![Page 2: n! = 1 * 2 * n 5. Algorithmen - · PDF fileK. Bothe, Institut für ... Berechne 2 n. 2. Berechne die Fakultät einer nat. Zahl: ... - Zyklus: Wiederholung von Schritten (Schritt 4](https://reader031.vdocuments.pub/reader031/viewer/2022030411/5a9da5a57f8b9a21688d5170/html5/thumbnails/2.jpg)
5K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16
Was wird benötigt?
Exakte Vorschrift zum Berechnen:
• Gegeben: Elementare Operationen
• Festgelegt: Abfolge der Operationen
• Wodurch: präzise endliche Beschreibung
- jedoch nicht gesichert: Berechnung endlich
(d. h. bricht überhaupt nach endlich vielen Schritten ab)
Definition muss präzisiert werden:Welche genaueren Informationen müssten geliefert werden, um konkrete Algorithmen zu formulieren?
Algorithmus:
Verfahren zur Berechnung gesuchter Werte aus gegebenen Werten, das in einer präzisen endlichen Beschreibungangegeben ist, die auf der schrittweisen Ausführung von elementaren (und berechenbaren)Verarbeitungsoperationen beruht.
x = 3; while (x > 0) {y = y * 2}
6K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16
Präzisierung des Begriffs 'Algorithmus'
- Was sind elementare, berechenbare Operationen?
- Wie können sie kombiniert werden?
- Wie beschreibt man?
7K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16
Beispiel für einen Algorithmus
Schritt 0: Eingabe von n
Schritt 1: falls n < 0 :Ausgabe "Fehler: negative Zahl" , STOP
Schritt 2: resultat := 1
Schritt 3: falls n = 0 :Ausgabe "Resultat:" resultat, STOP
Schritt 4: resultat := resultat * nn := n – 1weiter bei Schritt 3
Probleme im Beispiel:
- Was sind die Elementaroperationen?
- Wie werden sie kombiniert?
Was wird
berechnet?
8K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16
Antworten zum Beispiel:
Berechnet wird: n! = 1 * 2 * ... * n (aber: Reihenfolge umgekehrt)
Elementaroperationen:
- Eingabe, Ausgabe
- Tests: < =
- Arithmetik: *, -
- Wertzuweisung an Variable: n := n+1
- STOP
Kombination der Elementaroperationen:
- Sequentielle Ausführung der Schritte
(Schritt 0 Schritt 1 ... bzw. innerhalb eines Schritts)
- Bedingte Ausführung (falls ...)
- Zyklus: Wiederholung von Schritten (Schritt 4 Schritt 3)
Hinweis: alle Algorithmen bzw. Programme kommen mit diesen drei Kombinationsmöglichkeiten aus
![Page 3: n! = 1 * 2 * n 5. Algorithmen - · PDF fileK. Bothe, Institut für ... Berechne 2 n. 2. Berechne die Fakultät einer nat. Zahl: ... - Zyklus: Wiederholung von Schritten (Schritt 4](https://reader031.vdocuments.pub/reader031/viewer/2022030411/5a9da5a57f8b9a21688d5170/html5/thumbnails/3.jpg)
9K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16
Kunst des Programmierens:Algorithmen entwickeln . . .
Angebot einer Programmiersprache
elementare
Verarbeitungsoperationen:
+ -
/*
<
<=
Eingabe
Ausgabe
u. a.
Kombinationsmöglichkeiten
bedingte Ausführung:
if B ...
Wiederholung:
while B ...
Sequenz:
S1; S2; ...
Algorithmus:
Schritt 1:
Schritt 2:
...
Programm:
class T {
if ...
while ...
}
Kunst des Programmierens:• Daten darstellen• Algorithmen entwickeln . . .
10K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16
Algorithmen zur ...
Berechnung:
(Funktions-)Werte ausrechnen: 2n
,n!
Entscheidung:• Zugehörigkeit zu einer Menge:
Ist eine Zahl n eine Primzahl?
• Korrektheit eines Programms: Leistet das Programm das Verlangte?
allgemein: nicht entscheidbares Problem; Algorithmus existiert nicht
• Terminiert ein Programm:
Bricht es bei einer beliebigen Eingabe nach endlich vielen Schritten ab oder entsteht ein unendlicher Zyklus?
allgemein: nicht entscheidbares Problem; Algorithmus existiert nicht
("Halteproblem")
{ | Primzahl }n m m
Unterschied:
Entscheidung - Berechnung?
Es gibt Probleme, für die es keine Algorithmen gibt
11K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16
Darstellungsformen für Algorithmen:
• Folge von textuellen Anweisungen
• Flussdiagramm
• Pseudocode
• Computerprogramm
• ...
für abstrakte Untersuchungen (Berechnungstheorie):
• rekursive Funktionen
• TURING-Maschinen
• Zähler-Automaten
• ...Grundlagen der
Theoretischen Informatik
12K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16
Kennengelernt haben wir uns über einen Algorithmus. Die Frau, die am häufigsten anruft, die ist es.
Silke hat zweimal angerufen.
Beide Male verwählt.
„Alltags-“Beispiel für Algorithmus: Partnerwahl
Quelle: Ol, Berliner Zeitung