Musterlösung zur Aufgabe: Fibonaccizahlen

Beachten Sie, dass in Programmablaufplänen leider keine for-Schleifen gezeichnet werden können.

Das Programm berechnet die gewünschte Fibonacci-Zahl iterativ mit Hilfe einer Liste (eines Vektors), in welchem alle Fibonacci-Zahlen bis zur gesuchten gespeichert werden und die gesuchte Fibonacci-Zahl am Ende aus dem Vektor ausgelesen wird :

fibonacci.m
function fibo = fibonacci(N)
% Berechnet iterativ die Fibonacci-Zahl der uebergebenen natuerlichen Zahl N

if (N <= 0)
  fibo = 0;
else
  % Vordefinierte Startwerte
  fibos(1) = 1;
  fibos(2) = 1;
  % Berechnung der folgenden Werte bis zur Zahl N mit Hilfe einer while-Schleife
  ii = 3;
  while (ii <= N)
    fibos(ii) = fibos(ii-1) + fibos(ii-2);
    ii = ii + 1;
  end

  fibo = fibos(N);
end

end

Wie Ihnen möglicherweise aufgefallen ist, kann das "nullte" Element eines Vektors in MATLAB nicht definiert werden.

mit der Verwendung von weniger Speicherplatz, aber etwas komplizierter:

fibonacci2.m
function fibo=fibonacci2(index)
%berechnet die Fibonacci-Zahl der uebergebenen natuerlichen Zahl
%fibonacci(I)
if index<=0
  fibo=0;
elseif index==1
  fibo=1;
else
  vorvor=0;
  vor=1;
  n=1;
  while n < index
    n=n+1;
    aktuell=vor+vorvor;
    vorvor=vor;
    vor=aktuell;
  end
 fibo=aktuell;
end

end