Musterlösung zur Aufgabe: Fibonaccizahlen
Beachten Sie, dass in Programmablaufplänen leider keine for-Schleifen implementiert 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
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