ENDE Algorithmus
ENDE Algorithmus
ENDE Algorithmus
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Brückenkurs Informatik WS 12/13<br />
Brückenkurs<br />
Informatik<br />
WS 2012/13<br />
Teil 3<br />
Prof. Thomas Nitsche<br />
Prof. Gudrun Stockmanns<br />
Seite 1
Vom Problem zum <strong>Algorithmus</strong><br />
Berechnung der Fakultät:<br />
Objekte:<br />
positive ganze Zahl : Fakultät, Zahl (Variablen)<br />
Operationen:<br />
Einlesen von Werten für die Variablen<br />
Zuweisung von Werten "= "<br />
Ausdrucken von Variablenwerten<br />
Multiplikation "*“<br />
Anfangszustand:<br />
Variablen haben einen vorgegebenen Startwert<br />
Endzustand:<br />
Zahl : eingelesener Wert für den die Fakultät<br />
berechnet werden soll.<br />
Fakultät : Fakultät des Wertes von Zahl<br />
Brückenkurs Informatik WS 12/13<br />
Prinzipien zum Entwurf von Algorithmen<br />
Seite 2
Vom Problem zum <strong>Algorithmus</strong><br />
Herstellung eines Teiges:<br />
Objekte:<br />
Teigschüssel, Schneebesen<br />
Mehl, Salz, Eier, Milch<br />
Operationen :<br />
Einfüllen einer Zutat in die Teigschüssel, Rühren der<br />
Zutaten in der Teigschüssel mit Schneebesen<br />
Anfangszustand:<br />
Zutaten befinden sich in der ursprünglichen<br />
Verpackungen, Die Teigschüssel ist leer und der<br />
Schneebesen unbenutzt<br />
Endzustand :<br />
In der Teigschüssel befindet sich der gerührte<br />
(backfertige) Teig<br />
Brückenkurs Informatik WS 12/13<br />
Prinzipien zum Entwurf von Algorithmen<br />
Seite 3
Vom Problem zum <strong>Algorithmus</strong><br />
Kern-(<strong>Algorithmus</strong>)<br />
Teigschüssel = leer<br />
Teigschüssel = Teigschüssel + Mehl + Eier + Salz + Milch<br />
Rühren in Teigschüssel<br />
Rühren in Teigschüssel<br />
Rühren in Teigschüssel<br />
Rühren in Teigschüssel<br />
....<br />
<strong>ENDE</strong> ALGORITHMUS<br />
Brückenkurs Informatik WS 12/13<br />
Elementare <strong>Algorithmus</strong>schritte:<br />
1) Basisoperation (Zuweisung)<br />
2) Folge (Sequenzen)<br />
3) Auswahl (Verzweigung, Selektion)<br />
4) Schleife (Wiederholung)<br />
5) Aufruf (eines <strong>Algorithmus</strong>)<br />
einschließlich rekursiver Aufruf<br />
Prinzipien zum Entwurf von Algorithmen<br />
Seite 4
Elementare <strong>Algorithmus</strong>schritte<br />
Syntax der Folge (Sequenz)<br />
Schritt 1<br />
Schritt 2<br />
Schritt 3<br />
...<br />
...<br />
Schritt n<br />
Brückenkurs Informatik WS 12/13<br />
Hinweise und Regeln<br />
Elementare <strong>Algorithmus</strong>schritte:<br />
1) Basisoperation (Zuweisung)<br />
2) Folge (Sequenzen)<br />
3) Auswahl (Verzweigung, Selektion)<br />
4) Schleife (Wiederholung)<br />
5) Aufruf (eines <strong>Algorithmus</strong>)<br />
einschließlich rekursiver Aufruf<br />
1) Zu einem bestimmten Zeitpunkt wird nur ein Schritt<br />
ausgeführt<br />
2) Jeder Schritt wird genau einmal ausgeführt, keiner wird<br />
wiederholt, keiner wird ausgelassen.<br />
3) Die Reihenfolge, in der die Schritte ausgeführt werden,<br />
ist die gleiche, in der sie niedergeschrieben sind.<br />
4) Mit Beendigung des letzten Schrittes endet der gesamte<br />
<strong>Algorithmus</strong><br />
Prinzipien zum Entwurf von Algorithmen<br />
Seite 5
Elementare <strong>Algorithmus</strong>schritte<br />
Syntax der bedingten<br />
Auswahl<br />
FALLS Bedingung<br />
DANN<br />
Schritt 1<br />
[ SONST<br />
Schritt 2]<br />
<strong>ENDE</strong> FALLS<br />
Brückenkurs Informatik WS 12/13<br />
Eine Bedingung oder auch<br />
boolescher Ausdruck kann die<br />
Wahrheitswerte TRUE oder<br />
FALSE annehmen.<br />
Elementare <strong>Algorithmus</strong>schritte:<br />
1) Basisoperation (Zuweisung)<br />
2) Folge (Sequenzen)<br />
3) Auswahl (Verzweigung, Selektion)<br />
4) Schleife (Wiederholung)<br />
5) Aufruf (eines <strong>Algorithmus</strong>)<br />
einschließlich rekursiver Aufruf<br />
Prinzipien zum Entwurf von Algorithmen<br />
Seite 6
Elementare <strong>Algorithmus</strong>schritte<br />
Brückenkurs Informatik WS 12/13<br />
• Zuweisung<br />
• Folge (Sequenzen)<br />
• Auswahl (Verzweigung, Selektion)<br />
• Schleife (Wiederholung)<br />
• Aufruf (eines <strong>Algorithmus</strong>)<br />
einschließlich rekursiver Aufruf<br />
Syntax der Wiederhole-Solange-Schleife<br />
WIEDERHOLE<br />
<strong>Algorithmus</strong>schritt(e)<br />
SOLANGE Bedingung erfüllt ist<br />
Die Wiederhole-Solange-Schleife ist<br />
eine Schleife mit Nachtest, da die<br />
Bedingung am Ende abgefragt wird.<br />
Prinzipien zum Entwurf von Algorithmen<br />
Seite 7
Vom Problem zum <strong>Algorithmus</strong><br />
Kern-(<strong>Algorithmus</strong>)<br />
Teigschüssel = leer<br />
Teigschüssel = Teigschüssel + Mehl + Eier + Salz + Milch<br />
WIEDERHOLE<br />
Rühren in Teigschüssel<br />
SOLANGE (Teigschüssel zu uneben)<br />
FALLS (Teigschüssel zu flüssig)<br />
DANN<br />
SONST<br />
<strong>ENDE</strong> FALLS<br />
Teigschüssel = Teigschüssel + Zusatzmehl<br />
WIEDERHOLE<br />
Brückenkurs Informatik WS 12/13<br />
Rühren in Teigschüssel<br />
SOLANGE (Teigschüssel zu uneben)<br />
<strong>ENDE</strong> <strong>Algorithmus</strong><br />
Prinzipien zum Entwurf von Algorithmen<br />
Seite 8
Elementare <strong>Algorithmus</strong>schritte<br />
Formaler Aufbau eines <strong>Algorithmus</strong><br />
ALGORITHMUS Fakultätsberechnung()<br />
Beschreibung<br />
Berechnung der Fakultät von Zahl: Zahl!<br />
Deklaration und Definition der lokalen Größen<br />
<strong>Algorithmus</strong>kern<br />
<strong>ENDE</strong> ALGORITHMUS<br />
Brückenkurs Informatik WS 12/13<br />
Prinzipien zum Entwurf von Algorithmen<br />
ALGORITHMUS Name(...)<br />
Beschreibung<br />
...<br />
Deklaration u. Definition<br />
....<br />
Kern<br />
Schritt 1<br />
Schritt 2<br />
...<br />
Schritt n<br />
<strong>ENDE</strong> ALGORITHMUS<br />
Seite 9
Elementare <strong>Algorithmus</strong>schritte<br />
Formaler Aufbau eines <strong>Algorithmus</strong><br />
ALGORITHMUS Fakultätsberechnung()<br />
Beschreibung<br />
Berechnung der Fakultät von Zahl: Zahl!<br />
Deklaration und Definition der lokalen Größen<br />
Natürliche Zahlen: Fakultät, Zahl, i<br />
<strong>Algorithmus</strong>kern<br />
Einlesen von Zahl<br />
i = 0<br />
Fakultät = 1<br />
WIEDERHOLE<br />
i = i+1<br />
Brückenkurs Informatik WS 12/13<br />
Fakultät = Fakultät * i<br />
SOLANGE (i < Zahl)<br />
Ausgabe von Fakultät<br />
<strong>ENDE</strong> ALGORITHMUS<br />
Prinzipien zum Entwurf von Algorithmen<br />
ALGORITHMUS Name(...)<br />
Beschreibung<br />
...<br />
Deklaration u. Definition<br />
....<br />
Kern<br />
Schritt 1<br />
Schritt 2<br />
...<br />
Schritt n<br />
<strong>ENDE</strong> ALGORITHMUS<br />
Seite 10
Elementare <strong>Algorithmus</strong>schritte<br />
Zusammenstellung der elementaren <strong>Algorithmus</strong>schritte<br />
1) Basisop. (Zuweisung)<br />
Variable = Ausdruck<br />
2) Folge (Sequenz)<br />
Schritt 1<br />
Schritt 2<br />
...<br />
...<br />
Schritt n<br />
Brückenkurs Informatik WS 12/13<br />
3) Fallunterscheidung<br />
FALLS Bedingung<br />
DANN<br />
Schritt 1<br />
[SONST<br />
Schritt 2]<br />
<strong>ENDE</strong> FALLS<br />
FALLS Selektor<br />
Wert 1: Schritt 1<br />
...<br />
Wert n: Schritt n<br />
SONST: Schritt n+1<br />
<strong>ENDE</strong> FALLS<br />
5) Aufruf von Name(...) mit Übergabe der<br />
Parameter … und Rücknahme der Werte ..<br />
ggf. speichern<br />
4) Schleife<br />
WIEDERHOLE<br />
Schritt(e)<br />
SOLANGE (Abbruch)-<br />
Bedingung<br />
SOLANGE Bedingung FÜHRE AUS<br />
Schritt<br />
<strong>ENDE</strong> SOLANGE<br />
FÜR i = n 1 BIS n 2 SCHRITTWEITE n 3<br />
<strong>ENDE</strong> FÜR<br />
<strong>Algorithmus</strong>schritt(e)<br />
ALGORITHMUS<br />
Name(...)<br />
...<br />
...<br />
<strong>ENDE</strong> ALGORITHMUS<br />
Seite 11
Elementare <strong>Algorithmus</strong>schritte<br />
Zusammenstellung der elementaren <strong>Algorithmus</strong>schritte<br />
1) Basisop. (Zuweisung)<br />
Variable = Ausdruck<br />
2) Folge (Sequenz)<br />
Schritt 1<br />
Schritt 2<br />
...<br />
...<br />
Schritt n<br />
Brückenkurs Informatik WS 12/13<br />
3) Fallunterscheidung<br />
FALLS Bedingung<br />
DANN<br />
Schritt 1<br />
[SONST<br />
Schritt 2]<br />
<strong>ENDE</strong> FALLS<br />
FALLS Selektor<br />
Wert 1: Schritt 1<br />
...<br />
Wert n: Schritt n<br />
SONST: Schritt n+1<br />
<strong>ENDE</strong> FALLS<br />
5) Aufruf von Name(...) mit Übergabe der<br />
Parameter … und Rücknahme der Werte ..<br />
ggf. speichern<br />
4) Schleife<br />
WIEDERHOLE<br />
Schritt(e)<br />
SOLANGE (Abbruch)-<br />
Bedingung<br />
SOLANGE Bedingung FÜHRE AUS<br />
Schritt<br />
<strong>ENDE</strong> SOLANGE<br />
FÜR i = n 1 BIS n 2 SCHRITTWEITE n 3<br />
<strong>ENDE</strong> FÜR<br />
<strong>Algorithmus</strong>schritt(e)<br />
ALGORITHMUS<br />
Name(...)<br />
...<br />
...<br />
<strong>ENDE</strong> ALGORITHMUS<br />
Seite 12
Elementare <strong>Algorithmus</strong>schritte<br />
Die Solange-Schleife<br />
ist eine Schleife mit<br />
Vorabtest, da die<br />
Bedingung am<br />
Anfang abgefragt<br />
wird<br />
Syntax der Solange-Schleife<br />
SOLANGE Bedingung erfüllt ist FÜHRE AUS<br />
<strong>Algorithmus</strong>schritt(e)<br />
<strong>ENDE</strong> SOLANGE<br />
Brückenkurs Informatik WS 12/13<br />
1) Basisoperation (Zuweisung)<br />
2) Folge (Sequenzen)<br />
3) Auswahl (Verzweigung,<br />
Selektion)<br />
4) Schleife (Wiederholung)<br />
5) Aufruf (eines <strong>Algorithmus</strong>)<br />
einschließlich rekursiver Aufruf<br />
SOLANGE (Teigschüssel zu uneben) FÜHRE AUS<br />
Rühren in Teigschüssel<br />
<strong>ENDE</strong> SOLANGE<br />
Prinzipien zum Entwurf von Algorithmen<br />
Seite 13
Vom Problem zum <strong>Algorithmus</strong><br />
Kern-(<strong>Algorithmus</strong>)<br />
Teigschüssel = leer<br />
Teigschüssel = Teigschüssel + Mehl + Eier + Salz + Milch<br />
WIEDERHOLE<br />
Rühren in Teigschüssel<br />
SOLANGE (Teigschüssel zu uneben)<br />
FALLS (Teigschüssel zu flüssig)<br />
DANN<br />
SONST<br />
<strong>ENDE</strong> FALLS<br />
Teigschüssel = Teigschüssel + Zusatzmehl<br />
WIEDERHOLE<br />
Brückenkurs Informatik WS 12/13<br />
Rühren in Teigschüssel<br />
SOLANGE (Teigschüssel zu uneben)<br />
<strong>ENDE</strong> <strong>Algorithmus</strong><br />
SOLANGE (Teigschüssel zu uneben) FÜHRE AUS<br />
Rühren in Teigschüssel<br />
<strong>ENDE</strong> SOLANGE<br />
Prinzipien zum Entwurf von Algorithmen<br />
Seite 14
Elementare <strong>Algorithmus</strong>schritte<br />
Formaler Aufbau eines <strong>Algorithmus</strong><br />
ALGORITHMUS Fakultätsberechnung()<br />
Beschreibung<br />
Berechnung der Fakultät von Zahl: Zahl!<br />
Deklaration und Definition der lokalen Größen<br />
Natürliche Zahlen: Fakultät, Zahl, i<br />
<strong>Algorithmus</strong>kern<br />
Einlesen von Zahl<br />
i = 0<br />
Fakultät = 1<br />
WIEDERHOLE<br />
i = i+1<br />
Brückenkurs Informatik WS 12/13<br />
Fakultät = Fakultät * i<br />
SOLANGE (i < Zahl)<br />
Ausgabe von Fakultät<br />
<strong>ENDE</strong> ALGORITHMUS<br />
SOLANGE (………..) FÜHRE AUS<br />
……<br />
<strong>ENDE</strong> SOLANGE<br />
Prinzipien zum Entwurf von Algorithmen<br />
ALGORITHMUS Name(...)<br />
Beschreibung<br />
...<br />
Deklaration u. Definition<br />
....<br />
Kern<br />
Schritt 1<br />
Schritt 2<br />
...<br />
Schritt n<br />
<strong>ENDE</strong> ALGORITHMUS<br />
Seite 15
Elementare <strong>Algorithmus</strong>schritte<br />
Formaler Aufbau eines <strong>Algorithmus</strong><br />
ALGORITHMUS Fakultätsberechnung()<br />
Beschreibung<br />
Berechnung der Fakultät von Zahl: Zahl!<br />
Deklaration und Definition der lokalen Größen<br />
Natürliche Zahlen: Fakultät, Zahl, i<br />
<strong>Algorithmus</strong>kern<br />
Einlesen von Zahl<br />
i = 0<br />
Fakultät = 1<br />
WIEDERHOLE<br />
i = i+1<br />
Brückenkurs Informatik WS 12/13<br />
Fakultät = Fakultät * i<br />
SOLANGE (i < Zahl)<br />
Ausgabe von Fakultät<br />
<strong>ENDE</strong> ALGORITHMUS<br />
ALGORITHMUS Name(...)<br />
Beschreibung<br />
...<br />
Deklaration u. Definition<br />
....<br />
Kern<br />
Schritt 1<br />
Schritt 2<br />
...<br />
Schritt n<br />
<strong>ENDE</strong> ALGORITHMUS<br />
Einlesen von Zahl<br />
i = 0<br />
Fakultät = 1<br />
SOLANGE (i < Zahl) FÜHRE AUS<br />
i = i+1<br />
Fakultät = Fakultät *i<br />
<strong>ENDE</strong> SOLANGE<br />
Ausgabe von Fakultät<br />
SOLANGE (………..) FÜHRE AUS<br />
……<br />
<strong>ENDE</strong> SOLANGE<br />
Prinzipien zum Entwurf von Algorithmen<br />
Seite 16
Elementare <strong>Algorithmus</strong>schritte<br />
Formaler Aufbau eines <strong>Algorithmus</strong><br />
ALGORITHMUS Fakultätsberechnung()<br />
Beschreibung<br />
Berechnung der Fakultät von Zahl: Zahl!<br />
Deklaration und Definition der lokalen Größen<br />
Natürliche Zahlen: Fakultät, Zahl, i<br />
<strong>Algorithmus</strong>kern<br />
Einlesen von Zahl<br />
i = 1<br />
Fakultät = 1<br />
WIEDERHOLE<br />
Fakultät = Fakultät * i<br />
i = i+1<br />
SOLANGE (i
Elementare <strong>Algorithmus</strong>schritte<br />
Formaler Aufbau eines <strong>Algorithmus</strong><br />
ALGORITHMUS Fakultätsberechnung()<br />
Beschreibung<br />
Berechnung der Fakultät von Zahl: Zahl!<br />
Deklaration und Definition der lokalen Größen<br />
Natürliche Zahlen: Fakultät, Zahl, i<br />
<strong>Algorithmus</strong>kern<br />
Einlesen von Zahl<br />
i = 1<br />
Fakultät = 1<br />
WIEDERHOLE<br />
Fakultät = Fakultät * i<br />
i = i+1<br />
SOLANGE (i
Elementare <strong>Algorithmus</strong>schritte<br />
Es gibt folgende Schleifentypen:<br />
• die Solange-Schleife,<br />
• die Wiederhole-Solange-Schleife,<br />
• die Für-bis-Schleife.<br />
Die Stärke der Schleifen liegt darin, einen Prozeß mit<br />
unbestimmter Dauer durch eine endliche Anzahl an<br />
<strong>Algorithmus</strong>schritten zu beschreiben.<br />
Brückenkurs Informatik WS 12/13<br />
1) Basisoperation (Zuweisung)<br />
2) Folge (Sequenzen)<br />
3) Auswahl (Verzweigung,<br />
Selektion)<br />
4) Schleife (Wiederholung)<br />
5) Aufruf (eines <strong>Algorithmus</strong>)<br />
einschließlich rekursiver Aufruf<br />
Prinzipien zum Entwurf von Algorithmen<br />
Seite 19
Elementare <strong>Algorithmus</strong>schritte<br />
Syntax der Für-bis-Schleife<br />
FÜR i = n 1 BIS n 2 SCHRITTWEITE n 3<br />
<strong>Algorithmus</strong>schritt(e)<br />
<strong>ENDE</strong> FÜR<br />
Hinweise und Regeln:<br />
n 1, n 2, n 3 sind Zahlen.<br />
Wenn die Anzahl der<br />
Schleifendurchläufe vorher<br />
bekannt ist, verwendet man<br />
die Für-bis-Schleife<br />
Brückenkurs Informatik WS 12/13<br />
FÜR i = 1 BIS Zahl SCHRITTWEITE 1<br />
Fakultät = Fakultät*i<br />
<strong>ENDE</strong> FÜR<br />
Prinzipien zum Entwurf von Algorithmen<br />
Seite 20
Elementare <strong>Algorithmus</strong>schritte<br />
Formaler Aufbau eines <strong>Algorithmus</strong><br />
ALGORITHMUS Fakultätsberechnung()<br />
Beschreibung<br />
Berechnung der Fakultät von Zahl: Zahl!<br />
Deklaration und Definition der lokalen Größen<br />
Natürliche Zahlen: Fakultät, Zahl, i<br />
<strong>Algorithmus</strong>kern<br />
Einlesen von Zahl<br />
i = 1<br />
Fakultät = 1<br />
WIEDERHOLE<br />
<strong>ENDE</strong> FÜR<br />
Fakultät = Fakultät * i<br />
i = i+1<br />
SOLANGE (i
Elementare <strong>Algorithmus</strong>schritte<br />
Zusammenstellung der elementaren <strong>Algorithmus</strong>schritte<br />
1) Basisop. (Zuweisung)<br />
Variable = Ausdruck<br />
2) Folge (Sequenz)<br />
Schritt 1<br />
Schritt 2<br />
...<br />
...<br />
Schritt n<br />
Brückenkurs Informatik WS 12/13<br />
3) Fallunterscheidung<br />
FALLS Bedingung<br />
DANN<br />
Schritt 1<br />
[SONST<br />
Schritt 2]<br />
<strong>ENDE</strong> FALLS<br />
FALLS Selektor<br />
Wert 1: Schritt 1<br />
...<br />
Wert n: Schritt n<br />
SONST: Schritt n+1<br />
<strong>ENDE</strong> FALLS<br />
5) Aufruf von Name(...) mit Übergabe der<br />
Parameter … und Rücknahme der Werte ..<br />
ggf. speichern<br />
4) Schleife<br />
WIEDERHOLE<br />
Schritt(e)<br />
SOLANGE (Abbruch)-<br />
Bedingung<br />
SOLANGE Bedingung FÜHRE AUS<br />
Schritt<br />
<strong>ENDE</strong> SOLANGE<br />
FÜR i = n 1 BIS n 2 SCHRITTWEITE n 3<br />
<strong>ENDE</strong> FÜR<br />
<strong>Algorithmus</strong>schritt(e)<br />
ALGORITHMUS<br />
Name(...)<br />
...<br />
...<br />
<strong>ENDE</strong> ALGORITHMUS<br />
Seite 22
Elementare <strong>Algorithmus</strong>schritte<br />
Zusammenstellung der elementaren <strong>Algorithmus</strong>schritte<br />
1) Basisop. (Zuweisung)<br />
Variable = Ausdruck<br />
2) Folge (Sequenz)<br />
Schritt 1<br />
Schritt 2<br />
...<br />
...<br />
Schritt n<br />
Brückenkurs Informatik WS 12/13<br />
3) Fallunterscheidung<br />
FALLS Bedingung<br />
DANN<br />
Schritt 1<br />
[SONST<br />
Schritt 2]<br />
<strong>ENDE</strong> FALLS<br />
FALLS Selektor<br />
Wert 1: Schritt 1<br />
...<br />
Wert n: Schritt n<br />
[SONST: Schritt n+1]<br />
<strong>ENDE</strong> FALLS<br />
5) Aufruf von Name(...) mit Übergabe der<br />
Parameter … und Rücknahme der Werte ..<br />
ggf. speichern<br />
4) Schleife<br />
WIEDERHOLE<br />
Schritt(e)<br />
SOLANGE (Abbruch)-<br />
Bedingung<br />
SOLANGE Bedingung FÜHRE AUS<br />
Schritt<br />
<strong>ENDE</strong> SOLANGE<br />
FÜR i = n 1 BIS n 2 SCHRITTWEITE n 3<br />
<strong>ENDE</strong> FÜR<br />
<strong>Algorithmus</strong>schritt(e)<br />
ALGORITHMUS<br />
Name(...)<br />
...<br />
...<br />
<strong>ENDE</strong> ALGORITHMUS<br />
Seite 23
Elementare <strong>Algorithmus</strong>schritte<br />
Brückenkurs Informatik WS 12/13<br />
1) Basisoperation (Zuweisung)<br />
2) Folge (Sequenzen)<br />
3) Auswahl (Verzweigung,<br />
Selektion)<br />
4) Schleife (Wiederholung)<br />
5) Aufruf (eines <strong>Algorithmus</strong>)<br />
einschließlich rekursiver Aufruf<br />
Syntax der alternativen Auswahl Ausdrucken mit mehreren des aktuellen Zweigen Monats<br />
FALLS Selektionsausdruck FALLS Monat<br />
Wert 1: Schritt(e) 1 1: Drucke: “Januar“<br />
Wert 2: Schritt(e) 2 2: Drucke: “Februar“<br />
...<br />
...<br />
Wert n: Schritt(e) 12: Drucke: “Dezember“<br />
SONST: Schritt(e), wenn Selektionsausdruck SONST: Drucke: “Wert keinen ist Wert kein Monat“ 1....n hat<br />
<strong>ENDE</strong> FALLS<br />
<strong>ENDE</strong> FALLS<br />
Prinzipien zum Entwurf von Algorithmen<br />
Seite 24
Elementare <strong>Algorithmus</strong>schritte<br />
Formaler Aufbau eines <strong>Algorithmus</strong><br />
ALGORITHMUS Name(Übernahme-; Rückgabedaten)<br />
Beschreibung<br />
Umgangssprachliche Beschreibung des <strong>Algorithmus</strong>‘<br />
Deklaration und Definition der lokalen Größen<br />
Alle im <strong>Algorithmus</strong> verwendeten Daten (Variablen, Felder und<br />
Konstanten) werden mit ihrem Datentyp definiert. Daten können<br />
weiterhin sein: Eingabe- und Ausgabedaten, Übernahme- und<br />
Rückgabedaten (Parameter).<br />
<strong>Algorithmus</strong>kern<br />
Aktionen des <strong>Algorithmus</strong>, die mit elementaren, standardisierten<br />
Sprachmitteln (elementare <strong>Algorithmus</strong>schritte) beschrieben werden<br />
(operativer Teil des <strong>Algorithmus</strong>). Besonderer Wert sollte auf die<br />
Fehlererkennung und die Generierung von Fehlermeldungen<br />
gelegt werden. Eingabe- und Ausgabeschritte sind ebenfalls<br />
Bestandteil des <strong>Algorithmus</strong>kerns.<br />
<strong>ENDE</strong> ALGORITHMUS<br />
Brückenkurs Informatik WS 12/13<br />
Prinzipien zum Entwurf von Algorithmen<br />
Seite 25
Elementare <strong>Algorithmus</strong>schritte<br />
Zusammenstellung der elementaren <strong>Algorithmus</strong>schritte<br />
1) Basisop. (Zuweisung)<br />
Variable = Ausdruck<br />
2) Folge (Sequenz)<br />
Schritt 1<br />
Schritt 2<br />
...<br />
...<br />
Schritt n<br />
Brückenkurs Informatik WS 12/13<br />
3) Fallunterscheidung<br />
FALLS Bedingung<br />
DANN<br />
Schritt 1<br />
[SONST<br />
Schritt 2]<br />
<strong>ENDE</strong> FALLS<br />
FALLS Selektor<br />
Wert 1: Schritt 1<br />
...<br />
Wert n: Schritt n<br />
[SONST: Schritt n+1]<br />
<strong>ENDE</strong> FALLS<br />
5) Aufruf von Name(...) mit Übergabe der<br />
Parameter … und Rücknahme der Werte ..<br />
ggf. speichern<br />
4) Schleife<br />
WIEDERHOLE<br />
Schritt(e)<br />
SOLANGE (Abbruch)-<br />
Bedingung<br />
SOLANGE Bedingung FÜHRE AUS<br />
Schritt<br />
<strong>ENDE</strong> SOLANGE<br />
FÜR i = n 1 BIS n 2 SCHRITTWEITE n 3<br />
<strong>ENDE</strong> FÜR<br />
<strong>Algorithmus</strong>schritt(e)<br />
ALGORITHMUS<br />
Name(...)<br />
...<br />
...<br />
<strong>ENDE</strong> ALGORITHMUS<br />
Seite 26
Elementare <strong>Algorithmus</strong>schritte<br />
Formaler Aufbau eines <strong>Algorithmus</strong><br />
ALGORITHMUS Fakultätsberechnung()<br />
Beschreibung<br />
ALGORITHMUS Fakultätsberechnung(Zahl; Fakultät)<br />
Berechnung der Fakultät von Zahl: Zahl!<br />
Deklaration und Definition der lokalen Größen<br />
Natürliche Zahlen: Fakultät, Zahl, i<br />
Übernahmeparameter: keine<br />
Rückgabeparameter: keine<br />
<strong>Algorithmus</strong>kern<br />
Natürliche Zahlen: i<br />
Übernahmeparameter:<br />
Einlesen von Zahl<br />
Natürliche Zahl: Zahl<br />
Rückgabeparameter:<br />
Fakultät = 1<br />
Natürliche Zahl: Fakultät<br />
FÜR i = 1 BIS Zahl SCHRITTWEITE 1<br />
<strong>ENDE</strong> FÜR<br />
Brückenkurs Informatik WS 12/13<br />
Fakultät = Fakultät*i<br />
Ausgabe von Fakultät<br />
<strong>ENDE</strong> ALGORITHMUS<br />
Prinzipien zum Entwurf von Algorithmen<br />
Seite 27
Elementare <strong>Algorithmus</strong>schritte<br />
ALGORITHMUS KoordinationFakultät()<br />
Beschreibung<br />
Einlesen einer Zahl n, Aufruf der<br />
Berechnung der Fakultät und Ausgabe<br />
der Fakultät<br />
Deklaration und Definition der lokalen Größen<br />
Natürliche Zahlen: n, erg<br />
Übernahmeparameter: keine<br />
Rückgabeparameter: keine<br />
<strong>Algorithmus</strong>kern<br />
Einlesen von n<br />
Aufruf von Fakultätsberechnung ()<br />
mit Übergabe von n und Speicherung<br />
des Rücknahmewertes in erg<br />
Ausgabe von erg<br />
<strong>ENDE</strong> ALGORITHMUS<br />
Brückenkurs Informatik WS 12/13<br />
ALGORITHMUS Fakultätsberechnung(Zahl; Fakultät)<br />
Beschreibung<br />
Berechnung der Fakultät von Zahl: Zahl!<br />
Deklaration und Definition der lokalen Größen<br />
Natürliche Zahlen: i<br />
Übernahmeparameter: Natürliche Zahl: Zahl<br />
Rückgabeparameter: Natürliche Zahl: Fakultät<br />
<strong>Algorithmus</strong>kern<br />
Fakultät = 1<br />
FÜR i = 1 BIS Zahl SCHRITTWEITE 1<br />
Fakultät = Fakultät*i<br />
<strong>ENDE</strong> FÜR<br />
<strong>ENDE</strong> ALGORITHMUS<br />
Seite 28
Elementare <strong>Algorithmus</strong>schritte<br />
Verfeinerung von Algorithmen<br />
Grobalgorithmus,<br />
Stufe 1<br />
<strong>Algorithmus</strong>schritt 1<br />
<strong>Algorithmus</strong>schritt 2<br />
<strong>Algorithmus</strong>schritt 3<br />
Brückenkurs Informatik WS 12/13<br />
Verfeinerter<br />
<strong>Algorithmus</strong>,<br />
Stufe 2<br />
<strong>Algorithmus</strong>schritt 2.1<br />
<strong>Algorithmus</strong>schritt 2.2<br />
<strong>Algorithmus</strong>schritt 2.3<br />
<strong>Algorithmus</strong>schritt<br />
2.4<br />
<strong>Algorithmus</strong>schritt<br />
2.5<br />
<strong>Algorithmus</strong>schritt 2.6<br />
1) Basisoperation (Zuweisung)<br />
2) Folge (Sequenzen)<br />
3) Auswahl (Verzweigung, Selektion)<br />
4) Schleife (Wiederholung)<br />
5) Aufruf (eines <strong>Algorithmus</strong>)<br />
einschließlich rekursiver Aufruf<br />
Verfeinerter<br />
<strong>Algorithmus</strong>,<br />
Stufe 3<br />
<strong>Algorithmus</strong>schritt 2.5.1<br />
<strong>Algorithmus</strong>schritt 2.5.2<br />
<strong>Algorithmus</strong>schritt<br />
2.5.3<br />
<strong>Algorithmus</strong>schritt 2.5.4<br />
Prinzipien zum Entwurf von Algorithmen<br />
...<br />
Seite 29
Elementare <strong>Algorithmus</strong>schritte<br />
Zusammenstellung der elementaren <strong>Algorithmus</strong>schritte<br />
1) Basisop. (Zuweisung)<br />
Variable = Ausdruck<br />
2) Folge (Sequenz)<br />
Schritt 1<br />
Schritt 2<br />
...<br />
...<br />
Schritt n<br />
Brückenkurs Informatik WS 12/13<br />
3) Fallunterscheidung<br />
FALLS Bedingung<br />
DANN<br />
Schritt 1<br />
[SONST<br />
Schritt 2]<br />
<strong>ENDE</strong> FALLS<br />
FALLS Selektor<br />
Wert 1: Schritt 1<br />
...<br />
Wert n: Schritt n<br />
[SONST: Schritt n+1]<br />
<strong>ENDE</strong> FALLS<br />
5) Aufruf von Name(...) mit Übergabe der<br />
Parameter … und Rücknahme der Werte ..<br />
ggf. speichern<br />
4) Schleife<br />
WIEDERHOLE<br />
Schritt(e)<br />
SOLANGE (Abbruch)-<br />
Bedingung<br />
SOLANGE Bedingung FÜHRE AUS<br />
Schritt<br />
<strong>ENDE</strong> SOLANGE<br />
FÜR i = n 1 BIS n 2 SCHRITTWEITE n 3<br />
<strong>ENDE</strong> FÜR<br />
Prinzipien zum Entwurf von Algorithmen<br />
<strong>Algorithmus</strong>schritt(e)<br />
ALGORITHMUS<br />
Name(...)<br />
...<br />
...<br />
<strong>ENDE</strong> ALGORITHMUS<br />
Seite 30
Vom Problem zum <strong>Algorithmus</strong><br />
Brückenkurs Informatik WS 12/13<br />
Jetzt sind Sie dran<br />
Prinzipien zum Entwurf von Algorithmen<br />
Seite 31
<strong>Algorithmus</strong>: Mittelwert Berechnen<br />
Schwierigkeitsstufe 1:<br />
Schreiben Sie einen <strong>Algorithmus</strong>, der den Mittelwert aus vier<br />
einzulesenden Zahlen (w, x, y, z) ermittelt und ausgibt.<br />
Mittelwert(w, x, y, z) :=<br />
Schwierigkeitsstufe 2:<br />
Mittelwert aus 4 Zahlen - Bitte verwenden Sie bei der Entwicklung des<br />
<strong>Algorithmus</strong> eine Schleife.<br />
Bitte beachten Sie, dass wir noch keine Arrays kennengelernt haben!<br />
Das Aufsummieren muss direkt nach der Eingabe eines Wertes innerhalb<br />
der Schleife erfolgen.<br />
Schwierigkeitsstufe 3, 4:<br />
Mittelwert aus n (beliebig vielen) Zahlen<br />
Brückenkurs Informatik WS 12/13<br />
+ + + <br />
4<br />
Entwurf von Algorithmen<br />
Seite 32
<strong>Algorithmus</strong>: Mittelwert Berechnen<br />
ALGORITHMUS Mittelwert1()<br />
Beschreibung<br />
s. Aufgabenstellung der Schwierigkeitsstufe 1<br />
Daten<br />
Übernahmeparameter: -<br />
Rückgabeparameter: -<br />
Zahlen: w, x, y, z, summe<br />
Kern-(<strong>Algorithmus</strong>)<br />
Einlesen von w<br />
Einlesen von x<br />
Einlesen von y<br />
Einlesen von z<br />
summe = w + x + y + z<br />
Ausgabe von summe/4<br />
<strong>ENDE</strong> ALGORITHMUS<br />
Brückenkurs Informatik WS 12/13<br />
Prinzipien zum Entwurf von Algorithmen<br />
Seite 33
<strong>Algorithmus</strong>: Mittelwert Berechnen<br />
ALGORITHMUS Mittelwert2()<br />
Beschreibung<br />
Ermittlung und Ausgabe des Mittelwertes einer Zahlenfolge<br />
Daten<br />
Zahlen: zahl, summe<br />
positive ganze Zahl : i<br />
Kern-(<strong>Algorithmus</strong>)<br />
Ausgabe “Mittelwert-Berechnung“<br />
summe= 0<br />
i = 1<br />
SOLANGE (i ≤ 4) FÜHRE AUS<br />
Einlesen von zahl<br />
summe = summe + zahl<br />
i = i+1<br />
<strong>ENDE</strong> SOLANGE<br />
Ausgabe von summe/4<br />
<strong>ENDE</strong> ALGORITHMUS<br />
Brückenkurs Informatik WS 12/13<br />
Prinzipien zum Entwurf von Algorithmen<br />
Seite 34
<strong>Algorithmus</strong>: Mittelwert Berechnen<br />
ALGORITHMUS Mittelwert3()<br />
Beschreibung<br />
s. Aufgabenstellung der Schwierigkeitsstufe 3<br />
Daten<br />
Übernahmeparameter: -<br />
Rückgabeparameter: -<br />
Zahlen: zahl, summe, n<br />
positive ganze Zahlen: i<br />
Kern-(<strong>Algorithmus</strong>)<br />
summe = 0<br />
i = 1<br />
Einlesen von n<br />
FALLS (n
<strong>Algorithmus</strong>: Mittelwert Berechnen<br />
ALGORITHMUS Mittelwert4()<br />
Beschreibung<br />
S. Aufgabenstellung Schwierigkeitsstufe 4<br />
Daten<br />
Zahlen: zahl, summe, mw<br />
positive ganze Zahl: anzahl<br />
Kern-(<strong>Algorithmus</strong>)<br />
summe= 0<br />
anzahl = 0<br />
Drucke " Zahl? : negativer Zahl bedeutet Abbruch"<br />
Einlesen zahl<br />
SOLANGE (zahl >= 0) FÜHRE AUS<br />
summe = summe + zahl<br />
anzahl = anzahl +1<br />
Drucke "Zahl?"<br />
Einlesen Zahl<br />
<strong>ENDE</strong> SOLANGE<br />
FALLS (anzahl =0) DANN<br />
Ausgabe "Kein Wert eingegeben"<br />
SONST<br />
Ausgabe von summe/anzahl<br />
<strong>ENDE</strong> FALLS<br />
<strong>ENDE</strong> ALGORITHMUS<br />
Brückenkurs Informatik WS 12/13<br />
Prinzipien zum Entwurf von Algorithmen<br />
Seite 36
<strong>Algorithmus</strong>: Mittelwert Berechnen<br />
ALGORITHMUS Mittelwert2()<br />
Beschreibung<br />
Ermittlung und Ausgabe des Mittelwertes einer Zahlenfolge<br />
Daten<br />
Zahlen: zahl, summe<br />
positive ganze Zahl : i<br />
Kern-(<strong>Algorithmus</strong>)<br />
Ausgabe “Mittelwert-Berechnung“<br />
summe= 0<br />
i = 1<br />
SOLANGE (i ≤ 4) FÜHRE AUS<br />
Einlesen von zahl<br />
summe = summe + zahl<br />
i = i+1<br />
<strong>ENDE</strong> SOLANGE<br />
Ausgabe von summe/4<br />
<strong>ENDE</strong> ALGORITHMUS<br />
Brückenkurs Informatik WS 12/13<br />
Übernahmeparameter: -<br />
Rückgabeparameter: -<br />
Prinzipien zum Entwurf von Algorithmen<br />
Seite 37