Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi wurzel von 0,5 (https://www.delphipraxis.net/102637-wurzel-von-0-5-a.html)

MasterTobi 1. Nov 2007 15:11


wurzel von 0,5
 
hey ich hab irgendwie ein problem

ich möchte gern die Wurzel von 0,5 ziehen. geht das irgendwie?

Delphi-Quellcode:
var a,d:string;
c,b,s:integer;
t:Single;
begin
//wurzel//
a:='2';
 s:= Strtoint (a);
 t:= sqrt(s);
 edit4.Text:=FloatToStr(t);
hier der code wenn ich die wurzel von 2 ziehen will .

bei 0,5 sagt er im programm "0,5 ist kein gültiger integerwert"

hm was denn da los?

SubData 1. Nov 2007 15:13

Re: wurzel von 0,5
 
StrToInt wandelt die Variable in einen Integer-Wert um.
Ist 0,5 ein Integer-Wert ?! :)

RavenIV 1. Nov 2007 15:17

Re: wurzel von 0,5
 
Als erstes solltest Du alle Variablen gescheit benennen.
Bei a,b,c,d,s,t blickt ja keiner durch.
Dann solltest Du nur diese Variablen anlegen, die Du wirklich benutzt.
Bestimmt hast Du etliche Warnings bekommen z.B. "Variable d wird nicht verwendet".

Vorher bekommst Du von mir keine Hilfe.

MasterTobi 1. Nov 2007 15:18

Re: wurzel von 0,5
 
ahja



ehm ich änder es dann so
Delphi-Quellcode:
var a,d:string;
c,b,s:integer;
t:Single;
begin
//wurzel//
 a:='0,5'; //geändert//
 s:= Strtoint (a);
 t:= sqrt(s);
 edit4.Text:=FloatToStr(t);
sagt wida den fehler


wenn ich das ganze so ändere
Delphi-Quellcode:

var a,d:string;
c,b,s:integer;
t:Single;
begin
//wurzel//
b:='0,5';
 t:= sqrt(b);
 edit4.Text:=FloatToStr(t);
da bringt er mir genauso den fehler

Prototypjack 1. Nov 2007 15:20

Re: wurzel von 0,5
 
Zitat:

Zitat von RavenIV
Als erstes solltest Du alle Variablen gescheit benennen.
Bei a,b,c,d,s,t blickt ja keiner durch.
Dann solltest Du nur diese Variablen anlegen, die Du wirklich benutzt.
Bestimmt hast Du etliche Warnings bekommen z.B. "Variable d wird nicht verwendet".

Vorher bekommst Du von mir keine Hilfe.

Holla. Wieso gleich so hart? Ich kann deinen Standpunkt zwar nachvollziehen, aber trotzdem muss man ihm ja nicht gleich die Hilfe verweigern.

Schlechter Stil ist ein häufiger Anfängerfehler, dennoch sollte man seine Hilfe nicht davon abhängig machen, sondern es nebenbei erwähnen, imho.

Grüße,
Max

MasterTobi 1. Nov 2007 15:21

Re: wurzel von 0,5
 
ich hab einfach nur so viel variablen bestimmt weil ich voher was anderes stehen hat

RavenIV 1. Nov 2007 15:22

Re: wurzel von 0,5
 
Zitat:

Zitat von Prototypjack
Holla. Wieso gleich so hart? Ich kann deinen Standpunkt zwar nachvollziehen, aber trotzdem muss man ihm ja nicht gleich die Hilfe verweigern.

Schlechter Stil ist ein häufiger Anfängerfehler, dennoch sollte man seine Hilfe nicht davon abhängig machen, sondern es nebenbei erwähnen, imho.

Er soll sich gleich von Anfang an einen richtigen (von mir aus auch seinen eigenen) Stil angewöhnen.

Progman 1. Nov 2007 15:23

Re: wurzel von 0,5
 
Delphi-Quellcode:
var a,d:string;
t, b:Single;
begin
//wurzel//
b:=0.5;
t:= sqrt(b);
edit4.Text:=FloatToStr(t);
Das müsste klappen...

MasterTobi 1. Nov 2007 15:26

Re: wurzel von 0,5
 
vielen dank
hat gefunzt:)

guidok 1. Nov 2007 16:38

Re: wurzel von 0,5
 
Und weisst du auch warum es jetzt funktioniert?

Mein Tip: Schau dir mal an, welche Zahlentypen es so gibt und überlege dir mal, ob "0,5" ein Integerwert (GANZZAHL) sein kann.

MasterTobi 1. Nov 2007 17:44

Re: wurzel von 0,5
 
ja ich denke weil single = 1.5x10^-45 und 3.4x10^38 ist :)

Neutral General 1. Nov 2007 17:46

Re: wurzel von 0,5
 
Zitat:

Zitat von MasterTobi
ja ich denke weil single = 1.5x10^-45 und 3.4x10^38 ist :)

Sicher das du es verstanden hast ? :lol:

MasterTobi 1. Nov 2007 17:47

Re: wurzel von 0,5
 
hab ma noch schnell eine frage :)

Delphi-Quellcode:
e:=2
e/ln(2)
= 2^2 oder?

Neutral General 1. Nov 2007 17:49

Re: wurzel von 0,5
 
Nein das ist 2/ln(2).

ln(2) ist ungefähr 0,69 oder sowas wenn ich mich nicht täusche. Ich gehe davon aus das du keine Ahnung hast was ln ist oder?

MasterTobi 1. Nov 2007 17:51

Re: wurzel von 0,5
 
doch Logarithmus eines Real-Ausdrucks

ich hab mir gedacht das es falsch ist aber ich hab es so gefunden gehabt

wie mache ich den 2^2

Neutral General 1. Nov 2007 17:54

Re: wurzel von 0,5
 
ln ist der Natürliche Logarithmus. Siehe: Eulerische Zahl und Logarithmus Naturalis

Für 2^2 gibt es Delphi-Referenz durchsuchenPower oder Delphi-Referenz durchsuchenIntPower (uses -> Math)

Gruß
Neutral General

Khabarakh 1. Nov 2007 18:06

Re: wurzel von 0,5
 
Zitat:

Zitat von MasterTobi
ich hab mir gedacht das es falsch ist aber ich hab es so gefunden gehabt

Es gibt leider immer noch ein paar komische Seiten und Bücher, die Verbiegungen wie
Code:
a^b = Exp(a * ln(b))
empfehlen, anstatt einfach Math einzubinden ;) .

Progman 1. Nov 2007 18:16

Re: wurzel von 0,5
 
zum Potenzieren gibts die Function Power in der Unit Math ;)

...zu spät... ;)

Matze 1. Nov 2007 18:25

Re: wurzel von 0,5
 
Zitat:

Zitat von Progman
zum Potenzieren gibts die Function Power in der Unit Math ;)

Und zum Quadrieren Delphi-Referenz durchsuchensqr aus der Unit "System". ;)

MasterTobi 1. Nov 2007 19:37

Re: wurzel von 0,5
 
was ist den eine ungültige gleitkomma operation?

Delphi-Quellcode:

 var aa,d,dd,ab,cd,ba,bb, cc,c:string;
a,b,y:integer;
q,w,e,r,rw,t,z,u,i,o,p,x:single;

  ab:=edit4.text;
  q:=strtofloat(ab);
 cc:=edit2.text; //radius =w
 w:=strtofloat(cc);
e:=w*(t*2);
 edit5.text:=FloatToStr(e);//4 kanten

 //_____
 r:=
 sqrt (2*w*(w-(sqrt (w*2)-0.25*(e*2))));
  edit6.text:=FloatToStr(r);
 //WURZEL(2*$B$2*($B$2-(WURZEL(POTENZ($B$2;2)-0,25*POTENZ(F4;2)))))

  r:=
 sqrt (2*w*(w-(sqrt (w*2)-0.25*(r*2))));
  edit7.text:=FloatToStr(r);
so geb ich jetzt bei edit2.text eine 2 ein sagt er ungültiger gleitkomma........
was is den da los

g0rmed 1. Nov 2007 19:58

Re: wurzel von 0,5
 
Mal so ne Frage...was willst du Programmieren? Außerdem würde ich entweder genau Kommentieren wozu die Variablen sind oder am besten gleich aussagekräftige Namen nehmen! Gleiches gilt für Komponenten...zumindest, wenn du wilst, dass wir es verstehen - was natürlich von vorteil für die Beantwortung deiner Fragen wäre.

dominikkv 1. Nov 2007 20:03

Re: wurzel von 0,5
 
hmm vllt hilft ja selber-denken?
auf den ersten blick scheint dein quellcode richtig zu sein (außer vllt die komischen umwege über unnötige variablen, t wird nicht initialisiert), ich vermute also das da vllt noch nen leerzeichen oder so drinn ist.
wo genau kommt der fehler?
debugge doch mal und schau bei jedem schritt was wirklich in den variablen drinnsteht

Progman 1. Nov 2007 20:50

Re: wurzel von 0,5
 
kleiner Tipp: Um Zahlen aus Edit-Inhalten zu lesen, ist es besser, mit str:=Trim(Edit1.Text) zu arbeiten. Trim entfernt führende oder abschließende Leer- und Steuerzeichen. Fiese Tester machen das gern und geben Leerzeichen mit ein ;)

Tommy1988 1. Nov 2007 21:29

Re: wurzel von 0,5
 
"Bei a,b,c,d .. blickt keiner durch"

Wieso machst du nicht NUR
Delphi-Quellcode:
var
a: Real;
begin
a := 12.34;
edit4.Text := FloatToStr(sqrt(a));
// ...
end;
wieso den Umweg über a,b,c,d usw?

freddiiii 8. Nov 2007 10:15

Re: wurzel von 0,5
 
sorry aber warum macht sich überhaupt jemand gedanken über sein problem?

Sein Problem ist einfach -> Er Kennt google nicht, er weiss nicht was Datentypen sind(denn es kommen immer wieder die gleichen Probleme mit IntToStr und co) und ers schlicht und einfach zu faul zu lesen oder es zu verstehen!
Sorry wenns bischen hart ist oder sich jetzt jemand angegriffen fühlt, aber das ist(wie jeder beitrag von tobi bisher) ne Arbeit von 5 min Google oder 5 Min irgend nen Buch ;)

fred


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