Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Brauche Hilfe Rechenprogramm mit while schleife (https://www.delphipraxis.net/143979-brauche-hilfe-rechenprogramm-mit-while-schleife.html)

Epytir 27. Nov 2009 10:28


Brauche Hilfe Rechenprogramm mit while schleife
 
Hi Leute ich muss für die Schule ein Programm programmieren das eine zahl x+z/y rechnet also
erster durchgang z.B. 10+0/1
zweiter 10+10/2
dritter 10+15/3
...
aber bei mir wird die tahl immer kleiner und die schleife endet nie hier is mein Quelltext:

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    btn1: TButton;
    edt1: TEdit;
    edt2: TEdit;
    mem1: TMemo;
    procedure FormCreate(Sender: TObject);
    procedure btn1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 edt1.Text    := '' ;
 edt2.Text    := '' ;
 mem1.Text    := '' ;
 mem1.ReadOnly := true ;
 btn1.Caption := 'Start';
end;

procedure TForm1.btn1Click(Sender: TObject);
 var    Endbedingung,
         Eingabe,
         Ergebnis,
         Zaehler    :Real ;
begin

        Eingabe := StrToInt(edt1.Text);
        Endbedingung := StrToFloat(edt2.Text);
        Zaehler := 0 ;

while Ergebnis<Endbedingung do begin

        Zaehler := Zaehler+1 ;
        Ergebnis :=Eingabe+(Ergebnis/Zaehler) ;
        mem1.Lines.Add(FloattoStr(Zaehler) +'       '+ Floattostr(Ergebnis));

end;

end;

end.
so hoffe ich ihr könnt mir helfen

Jürgen Thomas 27. Nov 2009 10:36

Re: Brauche Hilfe in Delphi
 
Autsch, das tut weh. Gleich der erste Beitrag, der potenzielle Helfer abschreckt.

Falsches Unterforum: Es handelt sich nicht um ein Projekt. Das hättest du erkennen können, wenn du den obersten Beitrag wofuer ist diese sparte gedachtvorher gelesen hättest.

Titel: So gut wie jeder, der hier etwas fragt, braucht Hilfe in Delphi. Deine Überschrift sagt also gar nichts aus.

Code: Der ist als solcher zu formatieren; so ist er unlesbar. Dafür gibt es den Button "Delphi-Code".

Also bitte nochmals von vorn: Deinen ersten Beitrag nochmals bearbeiten, Überschrift und Code ändern, abspeichern. Außerdem einen Moderator bitten um Verschiebung.

Jürgen

Phoenix 27. Nov 2009 10:37

Re: Brauche Hilfe in Delphi
 
Hallo und Herzlich Willkommen in der DP. :dp:

Hilfe in Delphi brauchen hier alle.
Ich möchte Dich daher bitten, den Titel Deiner Frage zu ändern und zwar so, dass sie den INhalt Deiner Frage darstellt. Dann packst Du den Quelltext bitte noch in [ delphi ] Code... [ /delphi ] - Tags (ohne die Leerzeichen). Dann ist das um längen Lesbarer.

Um das zu tun klickst Du einfach rechts oben neben Deinem Beitrag auf 'Edit'.

Vielen Dank.

DP-Maintenance 27. Nov 2009 10:38

DP-Maintenance
 
Dieses Thema wurde von "Phoenix" von "Projekte" nach "Sonstige Fragen zu Delphi" verschoben.
Ist kein Projekt, sondern eine allgemeine Delphi-Frage.

DeddyH 27. Nov 2009 10:39

Re: Brauche Hilfe in Delphi
 
Hallo und Willkommen in der DP :dp:,

aus dem Quelltext werde ich anhand der Bezeichner nicht schlau, aber wenn ich mir Dein Beispiel anschaue, komme ich auf folgende Überlegung: es gibt einen fixen Teil (im Beispiel 10), einen Zähler(vorheriges Berechnungsergebnis) und einen Nenner(wird hochgezählt). Damit komme ich auch diese Logik (Pseudocode):
Code:
Zähler = 0
Nenner = 1
Fix = 10
Solange Bedingung (welche eigentlich?)
  Zähler = Fix + Zähler/Nenner
  Nenner = Nenner + 1
Versuch es mal auf diesem Wege.

Epytir 27. Nov 2009 10:54

Re: Brauche Hilfe in Delphi
 
So hab ich XD bin anfänger ich mach fachoberschuleund bin noch net so gut

DeddyH 27. Nov 2009 11:01

Re: Brauche Hilfe in Delphi
 
Setz u Ergebnis mal vor der Schleife auf 0.

Epytir 27. Nov 2009 11:04

Re: Brauche Hilfe in Delphi
 
Das bringt auch nichts ich komm immernoch in eine Unendlich Schleife und dabei hab ich für die die Eingabe 10 und Aufhörbedingung 15 unser lehrer sagte die aufhörbedingung soll 10e2 sein

ULIK 27. Nov 2009 11:05

Re: Brauche Hilfe in Delphi
 
Hi,

nimm Dir mal ein Blatt Papier und einen Stift und schreib Dir mal auf, welche Zahlen Du erwartest zu sehen, wenn Du mit 10 als Eingabe und 20 als Endbedingung losrechnest!

Uli

Epytir 27. Nov 2009 11:16

Re: Brauche Hilfe in Delphi
 
hmm jetzt hab ich was umgeschrieben und jetzt kommt das raus :
1 10
2 15
3 18,3333333333333
4 20,8333333333333

es funzt

Epytir 27. Nov 2009 11:17

Re: Brauche Hilfe in Delphi
 
nach 3 Stunden nachdenken danke leute der tip mit denn bezeichner besser machen hat mir die übersicht gebracht XD

Epytir 27. Nov 2009 11:19

Re: Brauche Hilfe in Delphi
 
aber wenn ich die rechnung unsres lehrer eintippe also eingabe 10 endbedingund 10e2 gibts wieder ne schleife was heißt den 10e2 is die zahl soo hoch

Uwe Raabe 27. Nov 2009 11:31

Re: Brauche Hilfe in Delphi
 
Entweder ist deine Aufgabenstellung falsch oder dein Code. Die Folge konvergiert so ungefähr gegen 10.

Zitat:

erster durchgang z.B. 10+0/1
zweiter 10+10/2
dritter 10+15/3
1: 10 + 0/1 = 10
2: 10 + 10/2 = 15
3: 10 + 15/3 = 15
4: 10 + 15/4 = 13,75
5: 10 + 13,75/5 = 12,75
6: 10 + 12,75/6 = 12,125
...

Kann es sein, daß die Endbedingung vielmehr die Anzahl der Iterationen angibt? Dann würde man das nämlich besser in einer for-Schleife lösen.

(Code nicht getestet! Meine Frau ruft zum Essen...)

Delphi-Quellcode:
procedure TForm1.btn1Click(Sender: TObject);
var    
  Eingabe: Real;
  Ergebnis: Real;
  Zaehler: Integer;
  Endbedingung: Integer;
begin
  Eingabe := StrToFloat(edt1.Text);
  Endbedingung := StrToInt(edt2.Text);
  Ergebnis := 0;
  for zaehler := 1 to Endbedingung do begin
    Ergebnis := Eingabe + (Ergebnis/Zaehler);
    mem1.Lines.Add(InttoStr(Zaehler) +'       '+ Floattostr(Ergebnis));
  end;
end;

messie 27. Nov 2009 12:39

Re: Brauche Hilfe in Delphi
 
Zitat:

Zitat von Uwe Raabe
(Code nicht getestet! Meine Frau ruft zum Essen...)

rofl

Das schreibe ich ab jetzt in die About-Fenster aller Projekte... :mrgreen:

@Epytir: Du kannst den Titel ändern, indem Du oben an Deinem ersten Beitrag auf den edit-Knopf drückst. Der Titel lässt sich IMHO nur in den ersten 24h ändern.

Grüße, Messie

Mithrandir 27. Nov 2009 12:45

Re: Brauche Hilfe in Delphi
 
Doppel- und gar Dreifachpostings ( da, da, da) gehen schonmal gar nicht. :roll:

Und ändere bitte endlich den Threadtitel in einen Sinnvolleren. (Geht mit dem http://www.delphipraxis.net/template.../icon_edit.gif-Button neben deinem ersten Post.)

Dennoch: Willkommen in der :dp: :hi:

Epytir 27. Nov 2009 12:52

Re: Brauche Hilfe Rechenprogramm mit while schleife
 
so habs ja geändert wir müssen die while schleife benutzen und ich hab das jetzt so gelöst:
Delphi-Quellcode:
while Ergebnis<Endbedingung do begin

        Zaehler := Zaehler+1 ;
           Ergebnis :=Ergebnis+(Eingabe/1/Zaehler) ;
               mem1.Lines.Add(FloattoStr(Zaehler) +'       '+ Floattostr(Ergebnis));
aber wenn ich für Endbedingung 10e2 eingebe gibt das ne riesen schleife und ich soll das aber so wegen schule machen aber vielleicht hat ja auch mein lehrer nen fehler gemacht aber jetzt geht das im prinzip schonma was heißt denn 10e2 wenn das 1000 heißt dann hat unser lehrer nen fehler gemacht :wall: danke ihr könntet mir vielleict noch sagen ob 10e2 virklich 1000 heißt ansonnste danke

messie 27. Nov 2009 13:04

Re: Brauche Hilfe Rechenprogramm mit while schleife
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(FloatToStr(10E2));
end;
:-D

Uwe Raabe 27. Nov 2009 13:06

Re: Brauche Hilfe Rechenprogramm mit while schleife
 
Was soll das denn? Ist zwar mathematisch korrekt, aber programmiertechnisch Unsinn.

Delphi-Quellcode:
 Ergebnis :=Ergebnis+(Eingabe/1/Zaehler) ;
Und kannst du mal prüfen, ob die Folge, die ich manuell ausgerechnet habe, so richtig ist? Ansonsten solltest du die Aufgabestellung nochmal exakt formulieren.

ToFaceTeKilla 27. Nov 2009 13:17

Re: Brauche Hilfe Rechenprogramm mit while schleife
 
Frag bitte erst mal deinen Lehrer was 10e2 heißen soll.
Wie ich das sehe, könnte das e stehen für:
  • die Eulersche Zahl
  • den Ausdruck 10^2 (auf Taschenrechnern als 10EE2 geschrieben)

Epytir 27. Nov 2009 13:18

Re: Brauche Hilfe Rechenprogramm mit while schleife
 
So das Programm is fertig und funktioniert so wies soll tread kann geschlossen werden danke an alle
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
 edt1.Text    := '' ;
 edt2.Text    := '' ;
 mem1.Text    := '' ;
 mem1.ReadOnly := true ;
 btn1.Caption := 'Start';
end;

procedure TForm1.btn1Click(Sender: TObject);
 var    Endbedingung,
         Eingabe,
         Ergebnis,
         Zaehler    :Real ;
begin
      try
        Eingabe := StrToInt(edt1.Text);
        Endbedingung := StrToFloat(edt2.Text);
      except
        MessageDlg('Fehlerhafte Eingabe',mtError,[mbOK],0);
      Exit;
end;
        Zaehler := 0 ;
        Ergebnis := 0 ;

while Ergebnis<Endbedingung do begin

        Zaehler := Zaehler+1 ;
           Ergebnis :=Ergebnis+(Eingabe/1/Zaehler) ;
               mem1.Lines.Add(FloattoStr(Zaehler) +'       '+ Floattostr(Ergebnis));

end;

end;

end.
Und wer nochma die Aufgabe haben will das Program soll
Eingabe z.B.10
Endbedingung 100


dann soll er solange rechnen bis Eingabe 100 ist

also
1.Ergebnis = Ergebnis+10/1/1
2.10 = 10+10/1/2
3.15 = 15+10/1/3
und so weiter soll der rechnen eben bis 100

Delphi-Laie 27. Nov 2009 13:42

Re: Brauche Hilfe in Delphi
 
Zitat:

Zitat von Epytir
So hab ich XD bin anfänger ich mach fachoberschuleund bin noch net so gut

Beim Benutzen einer Programmier- und/oder der deutschen Sprache?

Bitte, versuche es mal mit ganzen und vollständigen Sätzen mit eindeutigen Wörtern! Dieses Gestammel ist eine Zumutung! Wer einem Forum so entgegentritt, bei dem verspüre ich kein Bedürfnis zu helfen. Ich kann mir trotz aller PISA-Degeneration des hiesigen Bildungssystems nicht vorstellen, daß man mit diesen Sprachkenntnissen die Fachoberschule schafft.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:42 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