Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fibonacci-Folge - Programmieren... (https://www.delphipraxis.net/144917-fibonacci-folge-programmieren.html)

umbras 19. Dez 2009 20:51


Fibonacci-Folge - Programmieren...
 
Hallöchen!
Erstmal von mir ein großes Lob für dieses klasse Forum :mrgreen:!

Ich habe nun seit einem halben Jahr Informatik und wir programmieren mit Delphi 5.
Über die Ferien haben wir folgende Aufgabe aufbekommen:
Eine Fibonacci-Folge beginnt mit zwei vorgebbaren natürlichen Zahlen,alle weiteren Zahlen der Folge sind jeweils die Summe der beiden vorangehenden. Programmieren Sie dieses Programm.

Nun mir kommt es so vor, dass ich mit meinen aktuellen Möglichkeiten nicht weit komme. Bis jetzt hatten wir an procedures oder dergleichigen, folgendes: If-Then-Else, Repeat-Until, Tabellen und While-Do..

Nun mein Ansatz ist dass wir irgendwie eine Funktion erstellen müssen, z.B eine rekursive:
f(x)=f(x-1)+f(x-2)
Frage1: Wie kann ich das in Delphi einbinden?
Frage2:Wie regele ich das mit den frei eingebbaren Zahlen?


Ich danke euch für die Antworten!

Gruß Umbras

PS:Bitte keine kompletten Codes posten, nur Ansätze! :mrgreen:

himitsu 19. Dez 2009 21:40

Re: Fibonacci-Folge - Programmieren...
 
Hier im Forum suchenFibonacci?

umbras 19. Dez 2009 23:16

Re: Fibonacci-Folge - Programmieren...
 
Ich hab die Suchfunktion benutzt, aber ich versteh das meist enicht , da ich erst ein halbes Jahr Informatik habe... Und die Folge soll als Tabelle ausgegeben werden...

Auf Deutsch.. ich hab keine Ahnung =D

Gruß Umbras

Wolfgang Mix 19. Dez 2009 23:39

Re: Fibonacci-Folge - Programmieren...
 
Erstmal herzlich willkommen in der DP :dp:
Tipp:
Ich würde erstmal Papier und Bleistift nehmen, eventuell noch einen
Taschenrechner und mir aufschreiben, wie ich weiter gekommen bin.
Der Rest wird dann wesentlich unkomplizierter :)

Gruß

Wolfgang

PS: Ich glaube, das war Beitrag 600 :)

umbras 20. Dez 2009 12:19

Re: Fibonacci-Folge - Programmieren...
 
Hey!

Also eine Idee habe ich ja.. aber wie setze ich diese um.. also z.B die rekursive Funktion??


Gruß

Diamont 20. Dez 2009 12:48

Re: Fibonacci-Folge - Programmieren...
 
Hallo,

du kannst dieses Programm nicht nur rekursiv sondern auch iterativ lösen. Rekursive Programmierung ist oft schwerer als die iterative. Ich schätze, das du mit "Tabellen" Arrays meinst. Wenn du also ein Array "zahlen" hast, dann speicherst du , beispielsweise, die beiden vorgegebenen Zahlen in zahlen[0] und zahlen[1]. In einer for Schleife kannst du dann in zahlen[i] die Summe aus zahlen[i-1] und zahlen[i-2] speichern.

Ich denke, dieser Denkanstoß sollte soweit helfen, dass du auf den Rest von selbst kommst.

umbras 20. Dez 2009 12:57

Re: Fibonacci-Folge - Programmieren...
 
... mit Tabellen meine ich nicht Arrays^^ sondern StringGrids =D

Also wie mache ich das damit.. und mit den frei vorgebbaren Zahlen?!


Gruß

Diamont 20. Dez 2009 13:12

Re: Fibonacci-Folge - Programmieren...
 
Naja, du kansnt das ganze wie oben beschrieben machen und dass Array am Ende in das Stringgrid ausgeben.

umbras 20. Dez 2009 16:59

Re: Fibonacci-Folge - Programmieren...
 
Delphi-Quellcode:
unit FibonacciU;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Grids, ExtCtrls;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    StringGrid1: TStringGrid;
    Panel2: TPanel;
    Panel3: TPanel;
    Panel4: TPanel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
StringGrid1.Cells[0,0]:='Anzahl'; StringGrid1.Cells[0,1]:='Ergebnis';
end;

procedure TForm1.Button1Click(Sender: TObject); var zahl: array of integer; anz,i :integer;
begin
Try zahl[0]:=StrToInt(Edit1.Text) Except exit end;
Try zahl[1]:=StrToInt(Edit2.Text) Except exit end;
Try anz:=StrToInt(Edit3.Text) Except exit end;
SetLength(zahl,anz);
StringGrid1.ColCount:=succ(anz);
If anz<=0
Then exit;
For i:=0 to anz do
 StringGrid1.Cells[i,0]:=IntToStr(i);
 StringGrid1.Cells[i,1]:=IntToStr(zahl[i]);
 zahl[i]:=zahl[i-1]+zahl[i-2];
end;

end.
Wo liegt mein Denkfehler? Es passiert nichts, wenn ich auf Start drücke!

Gruß!

Leanahtan 20. Dez 2009 17:11

Re: Fibonacci-Folge - Programmieren...
 
Sind denn die eingegebenen Zahlen gültig? Sonst wird ja exit aufgerufen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:59 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz