Hallo ihr!
Habe folgende Aufgabe:
Erstellen Sie eine Funktion zur Berechnung des n-ten Gliedes der Fibonacci-Folge.
a) Nutzen Sie einen globalen Zähler.
b) Nutzen Sie eine lokale statische Zählvariable.
c) Modifizieren Sie Ihr Programm so, dass mittels Präprozessor-Direktive entschieden werden kann, welche Ihrer Lösungen – a) oder b) – kompiliert wird.
Rahmenbedingung: Die Ausgaben Ihres Programmes sollen mittels Ihrer Lösung aus Aufgabe 3a) geschehen.
bei 3a steht: Erstellen Sie ein Programm, welches aus der main-Funktion eine Funktion void meine_ausgabe_rekursiv(int Zahl) zur rekursiven Ausgabe einer natürlichen Zahl auf der Standardausgabe aufruft.
Bisher dachte ich, folgende Aufgabe so lösen zu können:
Mein Ansatz wäre 2 Funktionen zur Berechnung der Fibonacci Zahlen, eine mit globaler Variable, die andere Funktion mit statistischer lokalen Variable.
Ich weiß, dass eine lokale Variable außerhalb nicht mehr sichtbar ist und eine globale Variable außerhalb der Funktion definiert ist und für alle Funktionen sichtbar ist.
Allerdings weiß ich nicht, wie ich dann die 2 Funktion schreiben muss, da eine globale Variable ja außerhalb deren definiert ist?
Wäre über jede Hilfe froh, danke!
Habe folgende Aufgabe:
Erstellen Sie eine Funktion zur Berechnung des n-ten Gliedes der Fibonacci-Folge.
a) Nutzen Sie einen globalen Zähler.
b) Nutzen Sie eine lokale statische Zählvariable.
c) Modifizieren Sie Ihr Programm so, dass mittels Präprozessor-Direktive entschieden werden kann, welche Ihrer Lösungen – a) oder b) – kompiliert wird.
Rahmenbedingung: Die Ausgaben Ihres Programmes sollen mittels Ihrer Lösung aus Aufgabe 3a) geschehen.
bei 3a steht: Erstellen Sie ein Programm, welches aus der main-Funktion eine Funktion void meine_ausgabe_rekursiv(int Zahl) zur rekursiven Ausgabe einer natürlichen Zahl auf der Standardausgabe aufruft.
Bisher dachte ich, folgende Aufgabe so lösen zu können:
Mein Ansatz wäre 2 Funktionen zur Berechnung der Fibonacci Zahlen, eine mit globaler Variable, die andere Funktion mit statistischer lokalen Variable.
Ich weiß, dass eine lokale Variable außerhalb nicht mehr sichtbar ist und eine globale Variable außerhalb der Funktion definiert ist und für alle Funktionen sichtbar ist.
Allerdings weiß ich nicht, wie ich dann die 2 Funktion schreiben muss, da eine globale Variable ja außerhalb deren definiert ist?
C#:
#include<stdio.h>
unsigned int fibonacci_lokal(unsigned int n)
{
if (n <= 1) {
return n;
}
else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
unsigned int fibonacci_global(unsigned int n)
{
//hier ist fraglich was hin muss
}
void main() {
int i = 0;
printf("Geben Sie eine Zahl ein, von der die Fibonacci-Zahl berechnet werden soll: ");
scanf("%i", &i);
printf("Mit welcher Variante wollen sie die Fibonacci-Zahl ermitteln?\n");
printf("Druecken sie die 1 um sie mit einer lokalen Variable\nDruecken sie die 2 fuer die Berechnung durch eine gloable Variable\n");
scanf("%d", &a);
if (a == 1)
{
printf("Die Fibonacci-Zahl von %i lautet: %i\n", i, fibonacci_lokal(i));
}
if (a == 2)
{
printf("Die Fibonacci-Zahl von %i lautet: %i\n", i, fibonacci_global(i));
}
}
Wäre über jede Hilfe froh, danke!