AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Zählschleife

Ein Thema von foerster7892 · begonnen am 12. Dez 2007 · letzter Beitrag vom 12. Dez 2007
Antwort Antwort
Seite 1 von 3  1 23   
foerster7892

Registriert seit: 10. Okt 2007
Ort: Brieskow-Finkenheerd
181 Beiträge
 
#1

Zählschleife

  Alt 12. Dez 2007, 22:58
Kann mir bitte jemand sagen wo der Fehler ist

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);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

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

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);
begin
a := 0;
Zinsen := 0;
For a :=1 to 12 do begin;
repeat
Startguthaben := Startguthaben + monatlicherBetrag;
Zinsen := 1/12*Startguthaben/100*Zinssatz;
until a=12;
Endguthaben := Zinsen + startguthaben;
Label2.Caption := FloatToStr(Endguthaben);
Label1.Caption := FloatToStr(Zinsen);
end;
end;
Das Programm soll die Zinsen und das Neue Guthaben für ein Jahr berechnen wenn jeden Monat ein gleicher Betrag auf das Konto gezahlt wird
Danke im Vorraus
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#2

Re: Zählschleife

  Alt 12. Dez 2007, 23:00
Was hast du denn für einen Fehler?

// edit : da sind 'ne Menge Unklarheiten
Ralph
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Zählschleife

  Alt 12. Dez 2007, 23:01
Lass das repeat...until weg den es erzeugt ne Endlosschleife. Zudem macht das For das ja schon
Markus Kinzler
  Mit Zitat antworten Zitat
foerster7892

Registriert seit: 10. Okt 2007
Ort: Brieskow-Finkenheerd
181 Beiträge
 
#4

Re: Zählschleife

  Alt 12. Dez 2007, 23:03
Dann komt der Fehler Decleration expected but end of file found
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Zählschleife

  Alt 12. Dez 2007, 23:04
Hallo,
Zählvariablen sollten immer lokal sein, du hast alle Variablen global, das ist nicht gut und wird zumindest bei Zählvariablen sogar vom Compiler als Fehler gemeldet.

Deine Variable a: Integer müsste also in der Prozedur procedure TForm4.Button1Click(Sender: TObject); als lokale Variable stehen.
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
foerster7892

Registriert seit: 10. Okt 2007
Ort: Brieskow-Finkenheerd
181 Beiträge
 
#6

Re: Zählschleife

  Alt 12. Dez 2007, 23:06
Danke für deine Hilfe aber ich bin kein Fachmann kannst du bitte genauer erklären
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#7

Re: Zählschleife

  Alt 12. Dez 2007, 23:06
Na, wenn dein Ausriss wirklich der GESAMTE Code ist, dann fehlt m.E. zum Schluß ein "end." Na, und dann ist a:=0 überflüssig, wenn du a gleich darauf als Schleifenzähler verwendest (a sollte auch lokal deklariert werden)
Ralph
  Mit Zitat antworten Zitat
foerster7892

Registriert seit: 10. Okt 2007
Ort: Brieskow-Finkenheerd
181 Beiträge
 
#8

Re: Zählschleife

  Alt 12. Dez 2007, 23:11
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);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

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

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);
begin
Zinsen := 0;
For a :=1 to 12 do begin;
Startguthaben := Startguthaben + monatlicherBetrag;
Zinsen := 1/12*Startguthaben/100*Zinssatz;
Endguthaben := Zinsen + startguthaben;
end;
Label2.Caption := FloatToStr(Endguthaben);
Label1.Caption := FloatToStr(Zinsen);
end;
end.
sieht jetzt so aus funktioniert aber immer noch nich
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Zählschleife

  Alt 12. Dez 2007, 23:12
Hallo, ich denke die letzte Prozedur sollte so aussehen:
Delphi-Quellcode:
procedure TForm4.Button1Click(Sender: TObject);
var a: Integer; // <--- hier wird die Variable lokal definiert
begin
  Zinsen := 0;
  For a :=1 to 12 do
  begin // <-- nach dem begin Semikolon entfernt
    Startguthaben := Startguthaben + monatlicherBetrag;
    Zinsen := 1/12*Startguthaben/100*Zinssatz;
  end;
  Endguthaben := Zinsen + startguthaben;
  Label2.Caption := FloatToStr(Endguthaben);
  Label1.Caption := FloatToStr(Zinsen);
end;
Ist es das was du meinst?

Ach ja, und die Variable a kannst du dann oben, wo die ganzen globalen Variablen stehen weglassen
Hoffe ich konnte helfen...

//Edit:
Kommentar in den Code hinzugefügt

//Edit 2:
ja, das Semikolon nach dem begin sollte natürlich weg, ist mir gar nicht aufgefallen
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Zählschleife

  Alt 12. Dez 2007, 23:12
begin;
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

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 11:03 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