AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fibonacci-Folge - Programmieren...

Ein Thema von umbras · begonnen am 19. Dez 2009 · letzter Beitrag vom 20. Dez 2009
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von umbras
umbras

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

Re: Fibonacci-Folge - Programmieren...

  Alt 20. Dez 2009, 19:55
Auch wenn ich i:=2 setze.. kriege ich kein Ergebnis:

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:=2 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.
Shawn
  Mit Zitat antworten Zitat
Leanahtan

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

Re: Fibonacci-Folge - Programmieren...

  Alt 20. Dez 2009, 20:03
Klar, weil du die ersten Zwei Zahlen ja auch nicht in Zahl[0] und Zahl[1] speicherst ...
  Mit Zitat antworten Zitat
Benutzerbild von umbras
umbras

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

Re: Fibonacci-Folge - Programmieren...

  Alt 20. Dez 2009, 20:05
Tut mir Leid, ich steh grad total aufm Schlauch

Gruß
Shawn
  Mit Zitat antworten Zitat
Leanahtan

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

Re: Fibonacci-Folge - Programmieren...

  Alt 20. Dez 2009, 20:09
Delphi-Quellcode:
Try zahl[1]:=StrToInt(Edit1.Text) Except exit end;
Try zahl[2]:=StrToInt(Edit2.Text) Except exit end;
Deine erste Zahl ist also im array bei zahl[1]. Wenn du nun mit i=2 rechnest, dann ist Zahl[2]=Zahl[1]+Zahl[0] -> Zahl[0] hast du aber nirgends zugewiesen.
  Mit Zitat antworten Zitat
Benutzerbild von umbras
umbras

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

Re: Fibonacci-Folge - Programmieren...

  Alt 20. Dez 2009, 20:12
Geändert, trotzdem kein Ergebnis
Delphi-Quellcode:
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[0]:=StrToInt(Edit1.Text) Except exit end;
Try zahl[1]:=StrToInt(Edit2.Text) Except exit end;
StringGrid1.ColCount:=succ(anz);
If anz<=0
Then
Begin ShowMessage('FEHLER...'); exit; end;
For i:=2 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
Leanahtan

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

Re: Fibonacci-Folge - Programmieren...

  Alt 20. Dez 2009, 20:27
Delphi-Quellcode:
For i:=2 to anz do
StringGrid1.Cells[i,0]:=IntToStr(i);
zahl[i]:=zahl[i-1]+zahl[i-2];
StringGrid1.Cells[i,1]:=IntToStr(zahl[i]);
Schleife wird nur für StringGrid1.Cells[i,0]:=IntToStr(i); durchlaufen. Danach hat i den Wert anz+1 (Abbruchbedingung). Zahl[anz+1] erzeugt dann einen Fehler. Probiers mal mit
Delphi-Quellcode:
For i:=2 to anz do
begin
  StringGrid1.Cells[i,0]:=IntToStr(i);
  zahl[i]:=zahl[i-1]+zahl[i-2];
  StringGrid1.Cells[i,1]:=IntToStr(zahl[i]);
end;
  Mit Zitat antworten Zitat
Benutzerbild von umbras
umbras

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

Re: Fibonacci-Folge - Programmieren...

  Alt 20. Dez 2009, 21:24
Hi,
Er rechnet zwar und ich krieg auch Ergebnisse, aber ich krieg teilweise verschiedene Fehlermeldungen z.B ungültige Zeigeroperation!

Gruß
Shawn
  Mit Zitat antworten Zitat
Leanahtan

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

Re: Fibonacci-Folge - Programmieren...

  Alt 20. Dez 2009, 21:27
Hast du es mal mit Haltepunkten versucht? Und wie sieht es mit F7 zum Compilieren (Einzelschritt) aus?
  Mit Zitat antworten Zitat
Benutzerbild von umbras
umbras

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

Re: Fibonacci-Folge - Programmieren...

  Alt 20. Dez 2009, 21:42
So habe mein Fehler gefunden! Programm läuft einwandfrei!

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

end.
Danke hierfür and closed!
Shawn
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 21:49 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