BlackBoard (http://www.black-board.net/index.php)
- Design, Programmierung & Entwicklung (http://www.black-board.net/board.php?boardid=55)
-- Programmieren (http://www.black-board.net/board.php?boardid=4)
--- Pascal ggT und Fibonacci-Zahlen (http://www.black-board.net/thread.php?threadid=4849)


Geschrieben von DaddyDj am 20.04.2002 um 10:39:

  ggT und Fibonacci-Zahlen

Kann mir vielleicht einer helfen ?!

Ich muss folgendes Programmieren :

1.Berchnung des größten gemeinsamen Teilers (GGT)


Schreiben Sie ein Programm,das mit Hilfe einer rekursiven Funktion den GGT berechnt. Die Zahlen m und n sollen vom Benutzer frei wählbar sein.

2.Fibonacci Zahlen (fib) (höhere bis hoher Schwierigkeitsgrad)

Die Fibonacci Zahlen sind wie folgt definiert :



Schreiben Sie ein Programm,das mit Hilfe einer rekursiven Funktion die Fibonacci Zahl für eine vom Benutzer freiwählbaren Zahl berechnet.

Kann mir einer helfen !? Gibst im Netz vielleicht schon fertige Scripts !? Muss bis Dienstag fertig sein.. danke smile



Geschrieben von LX am 20.04.2002 um 12:40:

Achtung

Alles was du brauchst ist ein gescheiter Algorithmus, und den für die Fibonacci-Zahlen hast du ja schon gegeben. Eine Funktion dafür wäre in Pseudocode:

code:
1:
2:
3:
4:
5:
6:
FUNKTION fib(Zahl)
{
  WENN Zahl=0 DANN fib=0;
  SONST WENN Zahl=1 DANN fib=1;
  SONST fib = fib(Zahl - 1) + fib (Zahl - 2);
}


Das in PASCAL zu übersetzen dürfte nicht das große Problem sein, du musst nur die PASCAL-Befehle dafür einsetzen.


Einen Algorithmus für den größten gemeinsamen Teiler kannst du dir auch selbst zusammenstellen. Es ist sinnvoller, einen Algorithmus selbst aufzustellen und ihn zu verstehen, als ihn nur einfach vorgesetzt zu bekommen. Das Prinzip ist ja dasselbe wie oben, du rufst die Funktion innerhalb der Funktion erneut auf (Rekursion). Du musst nur bedenken, dass die Rekursion nicht zu tief gehen sollte, sonst wird PASCAL sauer. Die millionste Fibonacci-Zahl würde ich lieber nicht ausprobieren Augenzwinkern



Geschrieben von MyK am 20.04.2002 um 14:44:

Text ggT

Seid PASCAL ist halt schon ne Weile her, deshalb hier der Code in Oberon (ist verwandt mit PASCAL, sollte deshalb kein Problem sein, das zu übersetzen):

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
PROCEDURE ggT (a,b: INTEGER):INTEGER;
 BEGIN
  IF a = 0 THEN
   RETURN b;
  ELSIF a > b THEN
   RETURN ggT(b,a);
  ELSE
   RETURN ggT(b MOD a,a);
  END;
END ggT;


Auch die Ein- und Ausgabe sollte kein Problem sein.



Geschrieben von DaddyDj am 22.04.2002 um 19:41:

 

Eingabe ist ja easy .. abe rAusgabe .. komm ich net weiter


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH