AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Fibonacci-Folge - Programmieren...

Ein Thema von umbras · begonnen am 19. Dez 2009 · letzter Beitrag vom 20. Dez 2009
Antwort Antwort
Seite 2 von 3     12 3   
Leanahtan

Registriert seit: 5. Jun 2009
62 Beiträge
 
Turbo Delphi für Win32
 
#11

Re: Fibonacci-Folge - Programmieren...

  Alt 20. Dez 2009, 17:13
PS: Falls das mit deiner Delphiversion schon geht, solltest du einfach mal einen Haltepunkt setzen, und dann Zeilenweise dein Programm durchlaufen lassen - dann solltest du den Fehler eigentlich selber finden.
  Mit Zitat antworten Zitat
Benutzerbild von umbras
umbras

Registriert seit: 19. Dez 2009
Ort: Bohmte
13 Beiträge
 
#12

Re: Fibonacci-Folge - Programmieren...

  Alt 20. Dez 2009, 17:15
?? Also wenn die Zahlen kein Kovertierungsfehler enthalten oder nicht kleiner als 0 sind, werden sie in den SPeicher reingepackt. So interpretier ich das...

Wie mach ich das denn mit den Haltepunkt?


Gruß
Shawn
  Mit Zitat antworten Zitat
Leanahtan

Registriert seit: 5. Jun 2009
62 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: Fibonacci-Folge - Programmieren...

  Alt 20. Dez 2009, 17:20
Ich weiß nicht genau, ob das mit den Haltepunkten in Delphi 5 schon geht. Wernn ja, dann kannst du einen Haltepunkt setzen, indem du links neben die entsprechende Codezeile klickst. Und dann kannst du (mit F7?) das Programm Zeilenweise weiterlaufen lassen.

Ansonsten kannst du das exit ja mal durch eine Nachricht ersetzen. Was für Zahlen gibst du denn ein?
  Mit Zitat antworten Zitat
Benutzerbild von markus5766h
markus5766h

Registriert seit: 5. Mär 2009
Ort: Hamburg
569 Beiträge
 
Delphi XE8 Professional
 
#14

Re: Fibonacci-Folge - Programmieren...

  Alt 20. Dez 2009, 17:24
Hallo,

ein paar kleine Tipps :
1) statt
then exit benutze
Delphi-Quellcode:
then
 begin
  ShowMessage('... dein hier möglicherweise auftretender Fehler');
  Exit;
 end;
so has Du eine Kontrolle, was schiefgegangen ist.
2) Dein Block mit
For i := 0 to anz do ..... sollte so aussehen
Delphi-Quellcode:
for i := 0 to anz do
 begin
  StringGrid1.Cells ...
  zahl[i....
  StrigGrid1.Cells[i, 1] := ...
 end;
und überprüfe mal Deine Berechnung im o.a. Block ... wenn Du mit i = 0 anfängst ...
Markus H.
  Mit Zitat antworten Zitat
Benutzerbild von umbras
umbras

Registriert seit: 19. Dez 2009
Ort: Bohmte
13 Beiträge
 
#15

Re: Fibonacci-Folge - Programmieren...

  Alt 20. Dez 2009, 17:32
Keine Besserung...

Delphi-Quellcode:
  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[1]:=StrToInt(Edit1.Text) Except exit end;
Try zahl[2]:=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
Begin ShowMessage('FEHLER...'); exit; end;
For i:=1 to anz do
 StringGrid1.Cells[i,0]:=IntToStr(i);
 zahl[i]:=zahl[i-1]+zahl[i-2];
 StringGrid1.Cells[i,1]:=IntToStr(zahl[i]);
end;

end.
Gruß
Shawn
  Mit Zitat antworten Zitat
Benutzerbild von markus5766h
markus5766h

Registriert seit: 5. Mär 2009
Ort: Hamburg
569 Beiträge
 
Delphi XE8 Professional
 
#16

Re: Fibonacci-Folge - Programmieren...

  Alt 20. Dez 2009, 17:33
Hallo,
...
und eigentlich müsstest Du hier noch eine Fehlermeldung bekommen :
Delphi-Quellcode:
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);
...
in den Zeilen mit Try zahl[0] und Try zahl[1] greifst Du erst auf das dyn. array zu
und setzt aber erst nach Abfrage des Wertes in Edit3 die Länge !?
Markus H.
  Mit Zitat antworten Zitat
Benutzerbild von umbras
umbras

Registriert seit: 19. Dez 2009
Ort: Bohmte
13 Beiträge
 
#17

Re: Fibonacci-Folge - Programmieren...

  Alt 20. Dez 2009, 17:37
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 anz:=StrToInt(Edit3.Text)Except exit end;
SetLength(zahl,anz);
Try zahl[1]:=StrToInt(Edit1.Text) Except exit end;
Try zahl[2]:=StrToInt(Edit2.Text) Except exit end;
StringGrid1.ColCount:=succ(anz);
If anz<=0
Then
Begin ShowMessage('FEHLER...'); exit; end;
For i:=1 to anz do
 StringGrid1.Cells[i,0]:=IntToStr(i);
 zahl[i]:=zahl[i-1]+zahl[i-2];
 StringGrid1.Cells[i,1]:=IntToStr(zahl[i]);
end;

end.
verbessert! i wird angezeigt, mehr aber nicht..


Gruß
Shawn
  Mit Zitat antworten Zitat
Leanahtan

Registriert seit: 5. Jun 2009
62 Beiträge
 
Turbo Delphi für Win32
 
#18

Re: Fibonacci-Folge - Programmieren...

  Alt 20. Dez 2009, 17:41
zahl[i]:=zahl[i-1]+zahl[i-2]; Wenn du mit i:=1 beginnst, und deine erste Zahl in Zahl[1] speicherst, dann kann das so nicht funktionieren...
  Mit Zitat antworten Zitat
Benutzerbild von markus5766h
markus5766h

Registriert seit: 5. Mär 2009
Ort: Hamburg
569 Beiträge
 
Delphi XE8 Professional
 
#19

Re: Fibonacci-Folge - Programmieren...

  Alt 20. Dez 2009, 17:42
... Berechnungsfehler

>>>>>>>>>>>> i := 1 :
zahl[i-2] >>> gibt's im array doch gar nicht,
wäre zahl := array[-1...max] of Integer !!!
Markus H.
  Mit Zitat antworten Zitat
Diamont

Registriert seit: 21. Mai 2008
30 Beiträge
 
#20

Re: Fibonacci-Folge - Programmieren...

  Alt 20. Dez 2009, 18:01
Zitat von markus5766h:
... Berechnungsfehler

>>>>>>>>>>>> i := 1 :
zahl[i-2] >>> gibt's im array doch gar nicht,
wäre zahl := array[-1...max] of Integer !!!
Also ich glaube, dass ich das so nicht verstehen würde ^^. Was er meint ist, wenn i:=1 ist, dann rufst du bei zahl[i-2] auf zahl[-1] zu. Das kann natürlich nicht funktionieren. Du musst bei i:=2 anfangen... Aber seltsam das da keine Fehlermeldung kommt.
Windows Vista Home Premium (64 Bit)
Intel Core 2 Duo E8400 @ 3,0 GHZ
Nvidea Geforce 8800 GTS 512
4 GB RAM
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:39 Uhr.
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