i

Beispiel - Berechnungen zum Begrüßungsproblem

Das Begüßungsproblem

Kira und Kari werden demnächst 18 Jahre alt. Alle ihre Freunde sollen zu einer riesigen Fete kommen. Damit alle sich kennenlernen, soll jeder jeden erst einmal begrüßen.

Kira: "Das kann lange dauern. Ich habe insgesamt 63 Personen eingeladen."

Kari: "Bei mir kommen nochmal 48 Personen dazu. Mit uns beiden sind wir dann 113 Personen. Hoffentlich ist die Fete nicht vorbei, wenn alle sich begrüßt haben."

Begrüßungen

Aufgabe 1

(a) Bestimme die Anzahl der Begrüßungen, wenn 6 Personen sich zu einer Fete treffen.

(b) Wenn man die Anzahl der Begrüßungen bei 113 Personen bestimmen möchte, dann braucht man hierzu eine Strategie, z.B.: Angenommen, die 113 Personen kommen alle der Reihe nach zur Fete. Die 1. Person muss niemanden begrüßen, die 2. Person muss nur eine Person begrüßen, die 3. Person muss dann 2 Personen begrüßen, die 4. Person muss schon 3 Personen begrüßen usw..". Wie könnte man nach dieser Strategie die gesuchte Anzahl berechnen?

Wiederholte Abläufe

Die Berechnungen zum Begrüßungsproblem sollen automatisiert werden. Ein erster Lösungsansatz könnte so aussehen:

Aufgabe 2

(a) Warum berechnet die oben gezeigte Anweisungsfolge die gesuchte Anzahl von Begrüßungen? Warum ist es geschickt, die Berechnungen wie im gezeigten Programm nicht mit konkreten Zahlen, sondern allgemein mit Variablen anzulegen?

(b) Wie müsste man das Programm ergänzen, um das Begrüßungsproblem für 113 Personen zu lösen? Welche Nachteile hätte ein solches Programm?

Ablaufmodellierung

Der wiederholte Ablauf der Berechnungen lässt sich sehr gut mit einem Flussdiagramm verdeutlichen:

Flussdiagramm

Mit einem Struktogramm kann man die die Ablauflogik weiter strukturieren.:

Struktogramm

Aufgabe 3

Erläutere die Diagramme. Begründe, warum sie ein Verfahren zur Bestimmung der Anzahl der Begrüßungen beschreiben.

Implementierung des Verfahrens

Das beschriebene Verfahren lässt sich mit einer while-Anweisung implementieren:

Das animierte Programm setzt die Anzahl der personen auf 4. Überprüfe, ob das ausgegebene Ergebnis stimmt. Vergleiche das Programm auch mit den oben gezeigten Diagrammen.

Aufgabe 4

Bei der Fete von Kira und Kari kam es zu insgesamt 3741 Begrüßungen. Wie viele Personen waren zur Fete gekommen?

(a) Ändere das oben gezeigte Programm so ab, dass es das neue Problem löst. Achte auf die Einrückungen bei der while-Anweisung.

(b) Was ist, wenn jemand die Anzahl der Begrüßungen falsch gezählt hat (z.B. 3739 statt 3741)? Wie reagiert das entwickelte Programm hierauf?

Suche

v
6.3.2.6.1
dev.inf-schule.de/imperative-programmierung/python/konzepte/wiederholungen/beispiel_begruessungsproblem
dev.inf-schule.de/6.3.2.6.1
dev.inf-schule.de/@/page/ScRKFfRDuNH8jxko

Rückmeldung geben