Eignungstest, Programmierung

... komplette Frage anzeigen

2 Antworten

Wie funktioniert das Programm nun also?

n steht für das zu berechnende Element der Folge. Bei der Wahl n=0 wird G_0 berechnet, bei der Wahl n=1 G_1 usw.

Für die Sonderfälle n=0 und n=1 wird dabei sofort das bekannte Ergebnis ausgegeben.

Für alle anderen Fälle wird das Ergebnis nach der Berechnungsvorschrift berechnet. Dabei wird in jedem Schleifendurchlauf die jeweils nächste Stelle der Folge berechnet. Zu Beginn eines jeden Durchlaufs enthält die Variable v das vorherige Element der Folge (bereits bekannt) und die Variable u das vorvorherige Element der Folge (ebenfalls bereits bekannt).

In der Schleife wird nun anhand von u und v das nächste Element berechnet und in der Variablen v gespeichert. In u wird anschließend das vorherige Element (das alte v) gespeichert, welches anfangs in der Hilfsvariabe w zwischengespeichert wurde.

Damit ist ein Schleifendurchlauf beendet. Der Zähler n wurde am Anfang der Schleife um 1 reduziert. Er bestimmt nun lediglich, wie oft die Schleife noch durchlaufen wird (d.h. wieviele Elemente der Folge noch berechnet werden).

Am Ende (n kleiner als 2) wird das Ergebnis (also das entsprechende Element der Folge) ausgegeben, welches in v vorliegt. Fertig.

Ein Beispiel zur Berechnung von G_3

Die "bekannte" Folge ist anfangs:

1 1

Was sich in dieser Variablenvorbelegung wiederspiegelt:

n = 3
u = 1
v = 1

nach einem ersten Schleifendurchlauf ist die bekannte Folge:

1 1 3

bzw.

n = 2
u = 1
v = 1 + 2 mal 1 = 3

nach dem 2. Schleifendurchlauf ist die bekannte Folge:

1 1 3 7

bzw.

n = 1
u = 3
v = 1 + 2 mal 3 = 7

Die Bedingung zum Eintritt in die Schleife (n>1) wird nun nicht mehr erfüllt und die Berechnung ist abgeschlossen und wird ausgegeben. Zur Erinnerung: das Programm gibt nicht die Folge aus, sondern nur ihr Element n. (Nicht zu verwechseln mit dem Inhalt der Variablen n.)

Antwort bewerten Vielen Dank für Deine Bewertung

Bitte die Aufgabe mal richtig bereitstellen, man kann es nicht vernünftig lesen.

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?