Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Algorithmus Teilziel: Begriff des Algorithmus verstehen.

Kopien: 1
Algorithmus. Ein Kochrezept, zum Beispiel: Kartoffelbrei.

Ähnliche Präsentationen


Präsentation zum Thema: "Algorithmus Teilziel: Begriff des Algorithmus verstehen."—  Präsentation transkript:

1 Algorithmus Teilziel: Begriff des Algorithmus verstehen.
Weiter mit PP.

2 Ein Kochrezept, zum Beispiel: Weiter mit PP.

3 Kartoffelbrei Weiter mit PP.

4 Aus welchen zwei Teilen besteht ein Kochrezept ?
Frage: Aus welchen zwei Teilen besteht ein Kochrezept ? Frage: Lehrer stellt die Frage. Antwort: Zutaten und Zubereitung. Weiter mit PP.

5 Zutaten: 2 Kg Kartoffeln, 0,5 l Milch, 200 gr Butter, 1 TL Salz, 1 TLPfeffer, 1TL Muskat Lehrer: Präsentiert eine Lösung. Weiter mit PP.

6 Zubereitung: Kartoffeln schälen, zerkleinern und in Salzwasser gar kochen. Mit dem Mörser zerstampfen und unter Hinzufügen der Butter und Milch mit dem Schneebesen schaumig schlagen und würzen. Weiter mit PP.

7 Ein Algorithmus ist - salopp ausgedrückt - ein Kochrezept
Weiter mit PP.

8 Präziser: Weiter mit PP.

9 Ein Algorithmus ist ein Verfahren zur Lösung eines gegebenen Problems
Ein Algorithmus ist ein Verfahren zur Lösung eines gegebenen Problems. Er hat folgende Eigenschaften: Weiter mit PP.

10 schrittweise eindeutig Weiter mit PP. endlich

11 - Subtraktion zweier Zahlen - Multiplikation zweier Zahlen
Was "schrittweise" bedeutet, muss in der konkreten Situation geklärt werden: Bei einem modernen Rechner bedeutet ein Schritt z.B: - Addition zweier Zahlen - Subtraktion zweier Zahlen - Multiplikation zweier Zahlen - Division zweier Zahlen - Vergleich zweier Zahlen mit <, , <,  Ein Schritt ist z.B. nicht der Vergleich dreier Zahlen wie z.B: 3 < 5 < 2 Aufgabe: Lehrer gibt obige Aufgabe. Lösung: Schüler stellen Lösung vor. Weiter mit PP.

12 Geben Sie ein Beispiel eines nicht endlichen "Kochrezepts":
Aufgabe: Geben Sie ein Beispiel eines nicht endlichen "Kochrezepts": Aufgabe: Lehrer gibt obige Aufgabe. Lösung: Schüler stellen Lösung vor. Weiter mit PP.

13 Auf der Suche nach einer Genehmigung in irgendeinem Amt:
Lehrer: Lehrer präsentiert eine Lösung. Weiter mit PP.

14 Der Pförtner schickt Sie ins Zimmer 10.
Weiter mit PP.

15 Vom Zimmer 10 werden Sie ins Zimmer 17 geschickt.
Weiter mit PP.

16 Vom Zimmer 17 werden Sie ins Zimmer 10 geschickt.
Weiter mit PP.

17 10 17 Weiter mit PP.

18 Welche Algorithmen haben Sie bis jetzt in der Schule kennengelernt ?
Frage: Welche Algorithmen haben Sie bis jetzt in der Schule kennengelernt ? Frage: Lehrer stellt die Frage. Antwort: ... Weiter mit PP.

19 - addieren, subtrahieren - multiplizieren, dividieren, - wurzelziehen - kgV - ggT
Lehrer: Präsentiert eine Lösung. Weiter mit PP.

20 Darstellungsmöglichkeiten eines Algorithmus
Teilziel: Die verschiedenen Darstellungsformen eines Algorithmus verstehen. Weiter mit PP.

21 Programmiersprache (z.B. C++)
Flußdiagramm Programmiersprache (z.B. C++) Weiter mit PP.

22 Elemente des Flußdiagramms
Weiter mit PP.

23 Anfang bzw. Ende Anfang Ende Weiter mit PP.

24 Eingabe bzw. Ausgabe Weiter mit PP.

25 Anweisung Weiter mit PP.

26 Fallunterscheidung (Verzweigung)
falsch Bedingung Weiter mit PP. wahr

27 kurz: f Bedingung Weiter mit PP. w

28 Flußrichtung Weiter mit PP.

29 Variablen (technisch gesehen sind dies Stellen im Arbeitsspeicher)
Variablen (technisch gesehen sind dies Stellen im Arbeitsspeicher). Zum Beispiel wird eine Eingabe in einer Variablen gespeichert. Weiter mit PP.

30 Unter einer Variablen kann man sich einen Behälter vorstellen
Unter einer Variablen kann man sich einen Behälter vorstellen. In diesem Behälter wird ein Wert gespeichert (z.B. eine bestimmte Menge Flüssigkeit). Diese Menge bleibt solange konstant in diesem Behälter, solange sie nicht verändert wird. Diese Eigenschaft nennt man speichern. Es "verdunstet" deshalb auch nichts. Weiter mit PP.

31 Jede Variable hat einen Namen, den der Programmierer vergibt.
Inhalt der Variablen z1 Inhalt der Variablen z2 Weiter mit PP. z1 z2 Namen einer Variablen Namen einer Variablen

32 Einer Variablen kann man einen Wert zuweisen (der Behälter kann gefüllt werden). Zum Beispiel:
Der Variablen b wird der Inhalt 0,5 zugewiesen (Der Behälter wird mit 0,5 gefüllt). b := 0,5 Das Zeichen := bedeutet soviel wie "der Wert rechts von := wird der linken Variablen zugewiesen" und ist auf keinen Fall mit dem aus der Mathematik bekannten Gleichheitszeichen = zu verwechseln ! 0,5 Weiter mit PP. b WICHTIG: Vor dieser Zuweisung hat die Variable b einen unbekannten Wert. Man sagt, die Variable hat einen undefinierten Wert.

33 Einer Variablen kann man einen Wert zuweisen (der Behälter kann gefüllt werden). Zum Beispiel:
Links des Zeichens := muss genau eine Variable stehen. Rechts davon muss ein Wert oder ein aus Variablen (und Werten) bestehender Term stehen, wie z.B. x+y*z oder x * 2 0,5 Weiter mit PP. Wichtig: Umgekehrt gemacht, ist es falsch: 0,5 := b oder x + y + z := b ist falsch. b

34 Was bewirkt die gleich folgende weitere Anweisung ?
Der Variablen b wird der Inhalt 0,3 zugewiesen. Der alte Wert von 0,5 wird überschrieben und geht verloren. 0,5 Weiter mit PP. b

35 b b := 0,5 b := 0,3 Was bewirkt folgende weitere Anweisung ?
Der Variablen b wird der Inhalt 0,3 zugewiesen. Der alte Wert von 0,5 wird überschrieben und geht verloren. Weiter mit PP. b

36 0,3 b b := 0,5 b := 0,3 Was bewirkt folgende weitere Anweisung ?
Der Variablen b wird der Inhalt 0,3 zugewiesen. Der alte Wert von 0,5 wird überschrieben und geht verloren. 0,3 Weiter mit PP. b

37 Was würde das Gleichheitszeichen = bewirken ?
0,5 = 0,3 b = 0,3 0,3 Man sieht jetzt auch genau, was passieren würde, wenn man in der letzten Folie statt := das Gleichheitszeichen = verwenden würde. Was würde mathematisch oben aus den zwei Gebilden folgen ? Weiter mit PP. b Also:

38 Welche Werte haben die Variablen g und h ?
Weiter mit PP. g h

39 Welche Werte haben die Variablen g und h ?
Weiter mit PP. g h

40 Was bewirkt folgende Anweisung ?
Weiter mit PP. g h

41 Was bewirkt folgende Anweisung ?
Weiter mit PP. g h

42 Was bewirkt folgende Anweisung ?
0,3 ? Weiter mit PP. g h

43 0,3 ? g h g := 0,3 h := 0,5 Was bewirkt folgende weitere Anweisung ?
Weiter mit PP. g h

44 0,3 g h g := 0,3 h := 0,5 Was bewirkt folgende weitere Anweisung ?
Weiter mit PP. g h

45 0,3 0,5 g h g := 0,3 h := 0,5 Was bewirkt folgende weitere Anweisung ?
Weiter mit PP. g h

46 Was bewirkt folgende weitere Anweisung ?
h := 0,5 g := h 0,3 0,5 Weiter mit PP. g h

47 Was bewirkt folgende weitere Anweisung ?
h := 0,5 g := h 0,5 Weiter mit PP. g h

48 Was bewirkt folgende weitere Anweisung ?
Der Wert von h - also 0,5 - wird von h in den Behälter g kopiert (nicht geleert, also nicht verschieben). Der alte Wert von g wird überschrieben (er geht verloren, d.h. er wird vorher gelöscht). D.h. nur der Wert der linken Variablen wird verändert. Der Wert der rechten Variablen bleibt unverändert. g := 0,3 h := 0,5 g := h 0,5 0,5 Dies entspricht also z.B. nicht den Erfahrungen eines durstigen, aber wenig Geld besitzenden Besuchers einer Trinkherberge, der in einem günstigen Augenblick den Inhalt des benachbarten Bierglases in den des seinen verschiebt. Weiter mit PP. g h

49 Bitte folgende Regel einhalten: Anfangsbuchstabe eines Variablennamens immer klein schreiben. Dies ist dem Compiler zwar egal, doch an diese Regel halten sich alle Programmierer. Aufgabe: Lehrer gibt obige Aufgabe. Lösung: Schüler stellen Lösung vor. Weiter mit PP.

50 Aufgabe: Der Wasserstand des Neckars wird zweimal im Jahr (im Sommer und Winter) gemessen. Bestimmen Sie den maximalen Wasserstand, kurz ... Aufgabe: Lehrer gibt obige Aufgabe. Lösung: Schüler stellen Lösung vor. Weiter mit PP.

51 Bestimmen Sie das Maximum zweier eingegebener Zahlen, wobei ...
Aufgabe: Lehrer gibt obige Aufgabe. Lösung: Schüler stellen Lösung vor. Weiter mit PP.

52 dies durch den Vergleich zweier Zahlen zu lösen ist
... dies durch den Vergleich zweier Zahlen zu lösen ist. Auf einmal können nur 2 Zahlen verglichen werden, also keine 3 oder mehrere. Also, z.B: x<y möglich, x<y<z nicht möglich Aufgabe: Lehrer gibt obige Aufgabe. Lösung: Schüler stellen Lösung vor. Weiter mit PP.

53 Anfang 1. Zahl eingeben: Eingabe(z1) 2. Zahl eingeben: Eingabe(z2)
Lehrer: Präsentiert eine Lösung. Weiter mit PP.

54 f z1 < z2 w max := z2 max := z1
Das Zeichen := bedeutet soviel wie "der Wert der rechten Variablen wird der linken Variablen zugewiesen" und ist auf keinen Fall mit dem aus der Mathematik bekannten Gleichheitszeichen = zu verwechseln ! Frage: Es sei z1 = 2 und z2 = 6. Wie sieht der Algorithmus - angewandt auf diese Zahlern - aus ? Antwort: ... Es sei z1 = 7 und z2 = 5. Es sei z1 = 3 und z2 = 3. Weiter mit PP. Das Maximum ausgeben: Ausgabe(max)

55 Ende Weiter mit PP.

56 Nachdem der Algorithmus entwickelt wurde, muss er einem “Crash-Test“ (Härte-Test) unterzogen werden. Dieses Prinzip wird prinzipiell in der Wissenschaft verwendet: Aufgabe: Lehrer gibt obige Aufgabe. Lösung: Schüler stellen Lösung vor. Weiter mit PP.

57 Man versucht eine aufgestellte Behauptung “kaputt zu testen“
Man versucht eine aufgestellte Behauptung “kaputt zu testen“. Anschaulich gesprochen wird auf die aufgestellte Behauptung so lange eingedroschen, bis sie kaputt geht. Falls dies nicht gelingt, kann man davon ausgehen, ein gutes Produkt entwickelt zu haben. Aufgabe: Lehrer gibt obige Aufgabe. Lösung: Schüler stellen Lösung vor. Weiter mit PP.

58 Wir testen den Algorithmus für die Eingabe konkreter Zahlen, wie z.B:
Aufgabe: Lehrer gibt obige Aufgabe. Lösung: Schüler stellen Lösung vor. Weiter mit PP.

59 Annahme (nach der Eingabe), also an dieser Stelle des Flußdiagramms:
z1 = 3 z2 = 7 Anfang 1. Zahl eingeben: Eingabe(z1) 2. Zahl eingeben: Eingabe(z2) Lehrer: Präsentiert eine Lösung. Weiter mit PP.

60 Welchen Wert hat max an dieser Stelle des Flußdiagramms ?
3 7 f z1 < z2 w 7 7 max := z2 max := z1 Frage: Es sei z1 = 2 und z2 = 6. Wie sieht der Algorithmus - angewandt auf diese Zahlern - aus ? Antwort: ... Es sei z1 = 7 und z2 = 5. Es sei z1 = 3 und z2 = 3. Weiter mit PP. 7 Welchen Wert hat max an dieser Stelle des Flußdiagramms ? Das Maximum ausgeben: Ausgabe(max) max ist undefiniert, d.h. der Wert ist unbekannt. Ende

61 Annahme: z1 = 8 z2 = 2 8 2 f z1 < z2 w 8 8 max := z2 max := z1 8
Frage: Es sei z1 = 2 und z2 = 6. Wie sieht der Algorithmus - angewandt auf diese Zahlern - aus ? Antwort: ... Es sei z1 = 7 und z2 = 5. Es sei z1 = 3 und z2 = 3. Weiter mit PP. 8 Das Maximum ausgeben: Ausgabe(max) Ende

62 Annahme: z1 = 5 z2 = 5 5 5 f z1 < z2 w 5 5 max := z2 max := z1 5
Frage: Es sei z1 = 2 und z2 = 6. Wie sieht der Algorithmus - angewandt auf diese Zahlern - aus ? Antwort: ... Es sei z1 = 7 und z2 = 5. Es sei z1 = 3 und z2 = 3. Weiter mit PP. 5 Das Maximum ausgeben: Ausgabe(max)

63 Bei allen folgenden Aufgaben müssen Test-Protokolle gemacht werden
Bei allen folgenden Aufgaben müssen Test-Protokolle gemacht werden. Bei der Aufgabe das Maximum zweier Zahlen zu finden, sieht ein Test-Protokoll z.B. so aus: Lehrer: Präsentiert eine Lösung Weiter mit PP.

64 T E S T P R O T O K O L L TESTDATEN
Datum: Name des Entwicklers: Erich Überflieger Name des Testers: Ernst Bockelhart TESTDATEN z1 z2 Algorithmus richtig? 3 7 ja 8 2 5 Lehrer: Präsentiert eine Lösung Weiter mit PP.

65 Aufgabe: Stellen Sie den Algorithmus durch ein Flußdiagramm dar, der das Maximum dreier in beliebiger Reihenfolge eingegebener Zahlen berechnet. Weiter mit PP.

66 Bemerkungen: 1) Nur der wichtigste Teil der Lösung wird hier und in den folgenden Lösungen dargestellt (z.B. wird der Eingabeteil weggelassen). 2) Im Verzweigungsteil wird w und f nicht immer angegeben Lehrer: Präsentiert eine Lösung Weiter mit PP.

67 1. Lösung: Lehrer: Präsentiert eine Lösung Weiter mit PP.

68 Man muss nur noch das Maximum von z3 und max1 berechnen!
f z1 < z2 w max1 := z2 max1 := z1 Zuerst wird - genau so wie ein paar Folien vorher - das Maximum von den Zahlen z1 und z2 berechnet. Dieses Maximum nennen wir das vorläufige Maximum (bezeichnet mit max1) , weil es noch nicht das endgültige Maximum von z1, z2 und z3 ist. Was muss man jetzt nur noch machen, um das endgültige Maximum zu berechnen? Frage: Wieviele Variablen werden gebraucht ? Antwort: zwei. Weiter mit PP. Man muss nur noch das Maximum von z3 und max1 berechnen!

69 Vorläufiges Maximum von z1 und z2, kurz: max1 =Maximum(z1, z2)
w max1 := z2 max1 := z1 w max1 < z3 f max2 := max1 max2 := z3 Vorläufiges Maximum von z1 und z2, kurz: max1 =Maximum(z1, z2) Ausgabe(max2) Frage: Wieviele Variablen werden gebraucht ? Antwort: zwei. Weiter mit PP. Maximum von z3 und max1, also Maximum von z3 und z1 und z2, kurz: max2 = Maximum(z3, max1) = Maximum(z3, z1, z2) Ende

70 max1 := z2 max1 := z1 max2 := max1 max2 := z3
f z1 < z2 w max1 := z2 max1 := z1 w max1 < z3 f max2 := max1 max2 := z3 Angenommen, man müsste Speicher sparen. Wie kann man den Algorithmus mit einer Variable (einem Behälter) weniger realisieren? Ausgabe(max2) Frage: Wieviele Variablen werden gebraucht ? Antwort: zwei. Weiter mit PP. Ende

71 2. Lösung: Weiter mit PP.

72 Annahme: z1 = 10 z2 = 20 z3 = 30 10 20 z1 < z2 20 20 max := z2
f z1 < z2 20 20 w max := z2 max := z1 20 w 30 max < z3 f 30 30 max := z3 Frage: Wieviele Variablen werden gebraucht ? Antwort: eine. Es sei z1 = 2, z2 = 4 und z3 = 6 Welche Werte nimmt die Variable max an ? (Dynamische Entwicklung des Inhalts der Variablen max) 4, dann 6 Lehrer: Variable darstellen als Streichholzschachtel ! Deren Inhalt kann sich auch ändern. Alte Schublade wird von der neuen Schublade ersetzt (verdrängt). Weiter mit PP. 30 Ausgabe(max) Ende

73 Berechnet hier das (vorläufige) Maximum von z1 und z2.
Annahme: z1 = 10 z2 = 20 z3 = 30 10 20 f z1 < z2 20 20 w max := z2 max := z1 20 w 30 max < z3 f Wichtig: max kann also während des Programmablaufs verschiedene Werte annehmen. 30 30 max := z3 Frage: Wieviele Variablen werden gebraucht ? Antwort: eine. Es sei z1 = 2, z2 = 4 und z3 = 6 Welche Werte nimmt die Variable max an ? (Dynamische Entwicklung des Inhalts der Variablen max) 4, dann 6 Lehrer: Variable darstellen als Streichholzschachtel ! Deren Inhalt kann sich auch ändern. Alte Schublade wird von der neuen Schublade ersetzt (verdrängt). Weiter mit PP. 30 Ausgabe(max) Berechnet hier das (vorläufige) Maximum von z1 und z2. Berechnet hier das (endgültige) Maximum von max (also z1 und z2) und z3. Ende

74 Annahme: z1 = 70 z2 = 60 z3 = 50 70 60 z1 < z2 70 70 max := z2
f z1 < z2 70 70 w max := z2 max := z1 70 w 50 max < z3 f max := z3 70 Frage: Wieviele Variablen werden gebraucht ? Antwort: eine. Es sei z1 = 2, z2 = 4 und z3 = 6 Welche Werte nimmt die Variable max an ? (Dynamische Entwicklung des Inhalts der Variablen max) 4, dann 6 Lehrer: Variable darstellen als Streichholzschachtel ! Deren Inhalt kann sich auch ändern. Alte Schublade wird von der neuen Schublade ersetzt (verdrängt). Weiter mit PP. Ausgabe(max) Ende

75 Aufgabe: Stellen Sie den Algorithmus durch ein Flußdiagramm dar, der drei in beliebiger Reihenfolge eingegebene Zahlen ihrer Größe nach aufsteigend sortiert und ausgibt. Weiter mit PP.

76 z1 < z2 z3 < z1 z3 < z2 a:=z3 b:=z1 c:=z2 a:=z3 b:=z2 c:=z1
f w z3 < z1 z3 < z2 a:=z3 b:=z1 c:=z2 a:=z3 b:=z2 c:=z1 z3 < z2 z3 < z1 a:=z1 b:=z3 c:=z2 a:=z1 b:=z2 c:=z3 a:=z2 b:=z3 c:=z1 a:=z2 b:=z1 c:=z3 Frage: Wieviele Variablen werden gebraucht ? Antwort: zwei. Weiter mit PP. Ausgabe(a,b,c)

77 Aufgabe: Stellen Sie den Algorithmus durch ein Flußdiagramm dar, der für eine Klassenarbeit für jeden Schüler den Prozentsatz erreichter Punkte – auf die maximal möglich zu erreichende Gesamtpunktzahl bezogen - errechnet und ausgibt. a) Die Klasse besteht aus 1 Schüler. b) Die Klasse besteht aus „unendlich“ vielen Schülern. c) Die Klasse besteht aus 50 Schülern. d) Der Lehrer kann die Schüleranzahl eingeben. Weiter mit PP.

78 Lösung a) Weiter mit PP.

79 Eingabe (gesamtpunkte)
Anfang Eingabe (gesamtpunkte) Eingabe (punkte) p := punkte/gesamtpunkte*100 Frage: Wieviele Variablen werden gebraucht ? Antwort: zwei. Weiter mit PP. Ausgabe(p) Ende

80 Lösung b) Weiter mit PP.

81 Eingabe (gesamtpunkte)
Anfang Was muss man machen, damit nochmals das gleiche für mehrere Schüler gemacht wird ? Eingabe (gesamtpunkte) Man muss ein Schleife einbauen ! Eingabe (punkte) p := punkte/gesamtpunkte*100 Frage: Wieviele Variablen werden gebraucht ? Antwort: zwei. Weiter mit PP. Ausgabe(p) Ende

82 Warum ist dies ein anwenderunfreundliche Lösung ?
Anfang Warum ist dies ein anwenderunfreundliche Lösung ? Eingabe (gesamtpunkte) Weil der Anwender bei jedem Schüler die Gesamtpunkte nochmals eingeben muss, obwohl diese Zahl für jeden Schüler die gleiche ist. Eingabe (punkte) p := punkte/gesamtpunkte*100 Welche Lösung wäre dann anwenderfreundlicher ? Frage: Wieviele Variablen werden gebraucht ? Antwort: zwei. Weiter mit PP. Ausgabe(p)

83 Eingabe (gesamtpunkte)
Anfang Eingabe (gesamtpunkte) Eingabe (punkte) p := punkte/gesamtpunkte*100 Frage: Wieviele Variablen werden gebraucht ? Antwort: zwei. Weiter mit PP. Ausgabe(p)

84 Lösung c): (für 50 Schüler) Weiter mit PP.

85 Eingabe (gesamtpunkte)
Anfang Was muß in diese Lösung noch eingebaut werden, damit genau 50 Schüler ausgegeben werden ? Eingabe (gesamtpunkte) Ein Zähler und eine Verzweigung, die den Wert des Zählers überprüft. Eingabe (punkte) p := punkte/gesamtpunkte*100 Frage: Wieviele Variablen werden gebraucht ? Antwort: zwei. Weiter mit PP. Ausgabe(p)

86 zähler := 0 zähler := zähler + 1
PROBLEM: Woher kann man sicher sein, dass in der Verzweigung die Bedingung zähler < 50 heißt ? Warum könnte hier z.B. nicht stehen: zähler < 51 oder zähler  51 Im folgenden wird eine Möglichkeit dargestellt, wie man nachprüfen kann, ob das Programm das Gewünschte macht. Eingabe(gesamtpunkte) zähler := 0 Eingabe (punkte) p := punkte/gesamtpunkte*100 Ausgabe(p) Frage: Wieviele Variablen werden gebraucht ? Antwort: zwei. Weiter mit PP. zähler := zähler + 1 w zähler < 50 f Ende

87 ... Welcher Zusammenhang besteht zwischen Schülerausgaben und zähler ?
Am roten Pfeil wird das Programm bei jedem Durchgang gedanklich angehalten und der Wert der Variablen zähler und die Anzahl der Schülerausgaben protokolliert (besonders der erste und der letzte Durchgang): Dieses schrittweise Abarbeiten des Programms nennt man auch "Schreibtischtest" Eingabe(gesamtpunkte) zähler := 0 Eingabe (punkte) p := punkte/gesamtpunkte*100 Ausgabe(p) zähler Schüler- ausgaben ... Frage: Wieviele Variablen werden gebraucht ? Antwort: zwei. Weiter mit PP. zähler := zähler + 1 1 1 2 2 w zähler < 50 Schülerausgaben = zähler f 50 50 Ende letzter Durchgang:

88 Was muß im Programm geändert werden, damit die Schüleranzahl eingegeben werden kann ?
Weiter mit PP.

89 zähler := 0 zähler := zähler + 1
Eingabe(gesamtpunkte) zähler := 0 Eingabe (punkte) p := punkte/gesamtpunkte*100 Ausgabe(p) Frage: Wieviele Variablen werden gebraucht ? Antwort: zwei. Weiter mit PP. zähler := zähler + 1 w zähler < f Ende

90 zähler := 0 zähler := zähler + 1
Eingabe(gesamtpunkte) Eingabe(anz) zähler := 0 Eingabe (punkte) p := punkte/gesamtpunkte*100 Ausgabe(p) Frage: Wieviele Variablen werden gebraucht ? Antwort: zwei. Weiter mit PP. zähler := zähler + 1 w zähler < anz f Ende

91 zähler := 0 zähler := zähler + 1
NOCHMALS PROBLEM: Woher kann man sicher sein, dass in der Verzweigung die Bedingung zähler < 50 heißt ? Warum könnte hier z.B. nicht stehen: zähler < 51 oder zähler  51 Im folgenden wird eine weitere Möglichkeit dargestellt, wie man nachprüfen kann, ob das Programm das Gewünschte macht. Eingabe(gesamtpunkte) zähler := 0 Eingabe (punkte) p := punkte/gesamtpunkte*100 Ausgabe(p) Frage: Wieviele Variablen werden gebraucht ? Antwort: zwei. Weiter mit PP. zähler := zähler + 1 w zähler < 50 f Ende

92 zähler := 0 zähler := zähler + 1
Da es sehr aufwendig wäre, das ganze Programm (der Wert 50 ist sehr groß) bis zum Programmende am Schreibtisch durch zu gehen, nimmt statt 50 einfach einen kleinern Wert, wie z.B. 3 und führt das Programm bis zum Programmende am Schreibtisch durch. Außerdem muss natürlich ein Protokoll gemacht werden. Nach jedem Schritt des Programms wird der Wert der Variablen neben die Variable geschrieben Eingabe(gesamtpunkte) zähler := 0 Eingabe (punkte) p := punkte/gesamtpunkte*100 Ausgabe(p) Frage: Wieviele Variablen werden gebraucht ? Antwort: zwei. Weiter mit PP. zähler := zähler + 1 w zähler < 50 f Ende

93 zähler := 0 zähler := zähler + 1
Da es sehr aufwendig wäre, das ganze Programm (der Wert 50 ist sehr groß) bis zum Programmende am Schreibtisch durch zu gehen, nimmt statt 50 einfach einen kleinern Wert, wie z.B. 3 und führt das Programm bis zum Programmende am Schreibtisch durch. Außerdem muss natürlich ein Protokoll gemacht werden. Nach jedem Schritt des Programms wird der Wert der Variablen neben die Variable geschrieben Eingabe(gesamtpunkte) zähler := 0 Eingabe (punkte) p := punkte/gesamtpunkte*100 Ausgabe(p) Frage: Wieviele Variablen werden gebraucht ? Antwort: zwei. Weiter mit PP. zähler := zähler + 1 w zähler < f Ende

94 zähler := 0 zähler := zähler + 1
200 Wir nehmen an, dass hier 200 eingegeben wird. Da es sehr aufwendig wäre, das ganze Programm (der Wert 50 ist sehr groß) bis zum Programmende am Schreibtisch durch zu gehen, nimmt statt 50 einfach einen kleinern Wert, wie z.B. 3 und führt das Programm bis zum Programmende am Schreibtisch durch. Außerdem muss natürlich ein Protokoll gemacht werden. Nach jedem Schritt des Programms wird der Wert der Variablen neben die Variable geschrieben Eingabe(gesamtpunkte) Wir nehmen an, dass hier 20 eingegeben wird. zähler := 0 20 30 50 Wir nehmen an, dass hier 30 eingegeben wird. Eingabe (punkte) 10 15 25 Wir nehmen an, dass hier 50 eingegeben wird. p := punkte/gesamtpunkte*100 10 15 25 Ausgabe(p) 1 2 3 Frage: Wieviele Variablen werden gebraucht ? Antwort: zwei. Weiter mit PP. zähler := zähler + 1 1 2 3 w zähler < 3 f Ende

95 zähler := 0 zähler := zähler + 1
200 Es wurden also bei zaehler < 3 3 Ausgaben gemacht. Da es sehr aufwendig wäre, das ganze Programm (der Wert 50 ist sehr groß) bis zum Programmende am Schreibtisch durch zu gehen, nimmt statt 50 einfach einen kleinern Wert, wie z.B. 3 und führt das Programm bis zum Programmende am Schreibtisch durch. Außerdem muss natürlich ein Protokoll gemacht werden. Nach jedem Schritt des Programms wird der Wert der Variablen neben die Variable geschrieben Eingabe(gesamtpunkte) zähler := 0 Also ist es "einsichtig", dass bei zaehler < Ausgaben gemacht werden. 20 30 50 Eingabe (punkte) 10 15 25 p := punkte/gesamtpunkte*100 10 15 25 Ausgabe(p) 1 2 3 Frage: Wieviele Variablen werden gebraucht ? Antwort: zwei. Weiter mit PP. zähler := zähler + 1 1 2 3 w zähler < 3 f Ende

96 Aufgabe: Siehe Übungsblatt Weiter mit PP.

97 Die 2. Möglichkeit, einen Algorithmus zu beschreiben ist die Programmiersprache.
Weiter mit PP.

98 Eine Programmiersprache ist eine künstliche Sprache – im Gegensatz zu einer natürlichen Sprache (wie z.B. der englischen Sprache). Eine künstliche Sprache wird für spezielle Dinge - wie z.B. der Programmierung - benutzt, weil eine natürliche Sprache dazu zu ungenau wäre. Weiter mit PP.

99 Programmiersprache: Syntax Semantik Weiter mit PP.

100 Die Syntax definiert die äußeren Formgesetze dieser Programmiersprache (ähnlich den grammatikalischen Regeln einer natürlichen - wie z.B. der englischen- Sprache). Weiter mit PP.

101 Die Semantik ist der Bedeutungsinhalt (ähnlich der Bedeutung der einzelnen Worte einer natürlichen - wie z.B. der italienischen - Sprache) der einzelnen Objekte einer Programmiersprache. Weiter mit PP.

102 Eine "höhere" Programmiersprache (z
Eine "höhere" Programmiersprache (z.B: Java, C, Pascal, Cobol, Pascal, Prolog, usw.) kann zwar von einem Menschen verstanden werden ("menschengerecht"), doch nicht von einem Mikroprozessor (dem Herz des Computers), weil ein Mikroprozessor nur sogenannte Maschinenbefehle (bestehen aus 0 en und 1 en) versteht. Weiter mit PP.

103 Deshalb benötigt man einen Übersetzer (engl
Deshalb benötigt man einen Übersetzer (engl. Compiler), der einen in einer höheren Programmiersprache formulierten Text (ein sogenanntes Programm) in einen aus Maschinenbefehlen bestehenden Text (einem sogenannten Maschinenprogramm) verwandelt. Dieses kann dann vom Mikroprozessor abgearbeitet (ausgeführt) werden. Weiter mit PP.


Herunterladen ppt "Algorithmus Teilziel: Begriff des Algorithmus verstehen."

Ähnliche Präsentationen


Google-Anzeigen