Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wurzel ziehen (https://www.delphipraxis.net/102654-wurzel-ziehen.html)

DJA 1. Nov 2007 21:06


Wurzel ziehen
 
Hi,
ich habe angefangen mir Delphi beizubringen, bin also ein totaler Noob :oops:
Also ich habe mir vorgenommen einen Taschenrechner zu programmieren,
und dann immer schwerere Funktionen hinzuzufügen =)
Addieren, Subtrahieren, Multiplizieren, Dividieren und Quadrieren kann er schon
*stolz sei obwohl das jeder in 2 Mins programmieren kann* :mrgreen:

Naja nun bin ich beim Wurzel Ziehen..ich habe schon in der Delphi-Suche geforscht
und bin irgendwie über qw:=Power(Zahl1, 0.5); (qw = QuadratWurzel) gestolpert,
aber da bekomme ich immer die Fehlermeldung

[Fehler] Unit1.pas(84): Undefinierter Bezeichner: 'Power'

Was mache ich falsch? Oder muss ich da sowieso ganz anders herangehen?

In der Schule haben wir mal das Heron-Verfahren durchgenommen, also eine
Wurzel nur mit den Grundrechenarten zu bestimmen - aber dass umzusetzen ist sicherlich
viel zu umständlich!?

Naja,
schon mal DANKE für eure Antworten!

Greetz
DJA

PS: Ich habe Delphi 7

mkinzler 1. Nov 2007 21:08

Re: Wurzel ziehen
 
Delphi-Quellcode:
Uses ...,Math;

Tommy1988 1. Nov 2007 21:14

Re: Wurzel ziehen
 
Zitat:

Zitat von mkinzler
Delphi-Quellcode:
Uses ...,Math;

Beispiel:
Delphi-Quellcode:
Caption := FloatToStr(sqrt(25)); // Ergebnis natürlich 5
Edit:
Alles richtig so?

DJA 1. Nov 2007 21:19

Re: Wurzel ziehen
 
Hi,
thx für die schnellen und ausführlichen :freak: Antworten :-D
ich habe nun
Zitat:

Label4.Caption := FloatToStr(sqrt(Zahl1));
eingegeben, aber als Ergebnis erhalte ich immer 0..:(

mkinzler 1. Nov 2007 21:20

Re: Wurzel ziehen
 
Welchen Wert hat Zahl1?

Tommy1988 1. Nov 2007 21:21

Re: Wurzel ziehen
 
[weist du was FloatToStr bedeutet?

IntToStr => IntegerWert in einen String umwandeln
FloatToStr => DezimalWert (Real, Extended ..) in einen String umwandeln.

Als was ist Zahl1 deklariert?

DJA 1. Nov 2007 21:27

Re: Wurzel ziehen
 
Jap das wusste ich,
Zahl1 ist bei mir die Variable, aus der die WUrzel gezogen werden soll.
Mein Quellcode wie ich ihn bisher habe:

Zitat:

var
Form1: TForm1;
Zahl1, Zahl2, Ergebnis: integer;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
Zahl1:=StrToInt(Edit1.Text);
Zahl2:=StrToInt(Edit2.Text);
Ergebnis:=Zahl1+Zahl2;
Label4.Caption:=IntToStr(Ergebnis);
end;

dann halt die Subtraktions-Prozeduren etc.

procedure TForm1.Button6Click(Sender: TObject);
begin
Label4.Caption := FloatToStr(sqrt(Zahl1));
end;
http://img110.imageshack.us/img110/1479/rechnerpf5.jpg

Tommy1988 1. Nov 2007 21:33

Re: Wurzel ziehen
 
Delphi-Quellcode:
Zahl1, Zahl2, Ergebnis: integer;
Da muss Real, nicht integer hin.
Un überall wo StrToInt steht, machst du dann StrToFloat draus.

DJA 1. Nov 2007 21:46

Re: Wurzel ziehen
 
dann gibts bei
Label4.Caption:=IntToStr(Ergebnis);
den Fehler
[Fehler] Unit1.pas(47): Es gibt keine überladene Version von 'IntToStr', die man mit diesen Argumenten aufrufen kann

Zitat:

procedure TForm1.Button1Click(Sender: TObject);
begin
Zahl1:=strtofloat(Edit1.Text);
Zahl2:=strtofloat(Edit2.Text);
Ergebnis:=Zahl1+Zahl2;
Label4.Caption:=IntToStr(Ergebnis);
end;
da habe ich alle "inttostr" zu "floattostr" gemacht, doch dann gibts bei:
Ergebnis:=Zahl1 div Zahl2; // die Division
den Fehler
[Fehler] Unit1.pas(70): Operator ist auf diesen Operandentyp nicht anwendbar

aber um den Fehler einfach zu umgehen und mal auszutesten habe ich "div" durch "+" ersetzt, dann kann ich den Code zwar compilieren, aber das Ergebnis ist immer noch Null!?

Tommy1988 1. Nov 2007 21:47

Re: Wurzel ziehen
 
Delphi-Quellcode:
zahl1 / zahl2
Delphi-Quellcode:
Label4.Caption:=IntToStr(Ergebnis); // Falsch, nicht Int
Delphi-Quellcode:
FloatToStr(Ergebnis); // Richtig, ist doch Real, nicht Integer


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:57 Uhr.
Seite 1 von 3  1 23      

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