Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Zählschleife (https://www.delphipraxis.net/104926-zaehlschleife.html)

taaktaak 12. Dez 2007 22:16

Re: Zählschleife
 
Die global Variable "Laufvariable" ist überflüssig. Tja, und dann erscheint mir das mit den Zinsen auch merkwürdig (bin ja kein Bankkaufmann, aber immerhin) >> die werden bei jedem Schleifendurchgang neu berechnet! Müssen die nicht zum jeweils vorherigen Ergebnis addiert werden (sonst wäre auch die Initialisierung Zinsen:=0 vor der Schleife überflüssig)?

foerster7892 12. Dez 2007 22:19

Re: Zählschleife
 
[Pascal Error] Unit4.pas(23): E2065 Unsatisfied forward or external declaration: 'TForm4.Label2Click'

jetzt kommt der Fehler ich versteh das nicht ich meine das stimmt doch jetzt alles

und wegen der formel ich berechne für jeden Monat (1/12) die Zinsen da jeden Monat ein bestimmter betrag eingezahlt wird und das wird dann addiert

Martin K 12. Dez 2007 22:22

Re: Zählschleife
 
Zitat:

Zitat von foerster7891
[Pascal Error] Unit4.pas(23): E2065 Unsatisfied forward or external declaration: 'TForm4.Label2Click'

Wahrscheinlich deswegen:
Delphi-Quellcode:
unit Unit4;

interface

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

type
  TForm4 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Button1: TButton;
    procedure Edit1Change(Sender: TObject);
    procedure Edit2Change(Sender: TObject);
    procedure Edit3Change(Sender: TObject);
    procedure Label2Click(Sender: TObject); // <-- diese Zeile entfernen!
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations } 
  public
    { Public declarations } 
  end;

taaktaak 12. Dez 2007 22:24

Re: Zählschleife
 
Joo, dann musst du die Label2Click deklaration im Kopf löschen, wenn es das Label2 nicht mehr gibt.
Aber die Formel ist trotzdem merkwürdig, die Zinsen werden nur außerhalb der Schleife addiert. Du addierst dort nur den Zinsbetrag, der im 12ten Schleifendurchlauf berechnet wurde! Bist du Bankdirektor? Solange die Kunden das nicht merken, machst du gute Gewinne (hihihi)

foerster7892 12. Dez 2007 22:26

Re: Zählschleife
 
Danke erstmal aber ich weiß auch nicht hier kommt ein Problem nach dem anderen
[Pascal Warning] Unit4.pas(56): W1019 For loop control variable must be simple local variable

und taaktaak wenn du den Trockentest machst weißt du das die stimmt
(und ich bin Schüler der 10. Klasse)
Zinseszins berechnet sich erst am Ende des Jahres

Schuldigung ich nehm alles zurück da ist ein Fehler

+Zinsen fehlt aber das Programm müsste trotzdem laufen

Martin K 12. Dez 2007 22:30

Re: Zählschleife
 
Beachte das mit der lokalen Variable, was ich in Beitrag #9 geschrieben habe.

rawsoul 12. Dez 2007 22:31

Re: Zählschleife
 
Zitat:

Zitat von foerster7891
[Pascal Warning] Unit4.pas(56): W1019 For loop control variable must be simple local variable

Du hast anscheinend immernoch deine Zählvariable global deklariert. Wurde doch bereits angesprochen, sogar mit Codesnippet von Martin K.


//Edit: Huch, wo kommt denn auf einmal die zweite Seite her :roll:

taaktaak 12. Dez 2007 22:36

Re: Zählschleife
 
Jooo, mein lieber Förster,
dass wir uns nicht falsch verstehen: Das sollte wirklich nur ein kleiner Scherz sein! Und lass dich nicht aus der Ruhe bringen - manchmal ist der Wurm drin, in so einem kleinen Programm! Das bekommst du schon hin!
So, Schluss jetzt! Und Gute Nacht!
Gruß Ralph

foerster7892 12. Dez 2007 22:45

Re: Zählschleife
 
The Label2Click methode referenced by Label2.OnClick does not exist. Remove the referance

das ist der Fehler der jetzt kommt

und danke für die Hilfe

Delphi-Quellcode:
unit Unit4;

interface

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

type
  TForm4 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Button1: TButton;
    procedure Edit1Change(Sender: TObject);
    procedure Edit2Change(Sender: TObject);
    procedure Edit3Change(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form4: TForm4; Startguthaben, Endguthaben, Zinsen, monatlicherBetrag, Zinssatz, laufvariable: real;

implementation

{$R *.dfm}

procedure TForm4.Edit1Change(Sender: TObject);
begin
startguthaben := StrToFloat(Edit1.Text);
end;

procedure TForm4.Edit2Change(Sender: TObject);
begin
zinssatz := StrToFloat(Edit2.Text);
end;

procedure TForm4.Edit3Change(Sender: TObject);
begin
monatlicherBetrag := StrToFloat(Edit3.Text);
end;

procedure TForm4.Button1Click(Sender: TObject);
var a: integer;
begin
Zinsen := 0;
For a :=1 to 12 do begin;
Startguthaben := Startguthaben + monatlicherBetrag;
Zinsen := 1/12*Startguthaben/100*Zinssatz+Zinsen;
Endguthaben := Zinsen + startguthaben;
end;
Label2.Caption := FloatToStr(Endguthaben);
Label1.Caption := FloatToStr(Zinsen);
end;
end.
und so siehts jetzt aus

Martin K 12. Dez 2007 22:49

Re: Zählschleife
 
Ist das nicht eine Meldung bei der du auf Yes / No klicken kannst?
Wenn ja, klicke einfach auf 'Yes', wenn nicht musst du im Object Inspector bei Label2 das, was unter dem Event 'OnClick' steht, entfernen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:50 Uhr.
Seite 2 von 3     12 3      

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