![]() |
programm fehler (pq-formel) - numerische datentypen
hi, muss für die schule ein programm machen, womit ich durch hilfe der pq-formel auf die lösung komme
jedoch habe ich folgende fehlermeldung (bei dem berechnungsteil): "Zeigertyp erwartet" procedure TForm1.BtBerechnenClick(Sender: TObject); //Deklaration var p, q, x1, x2 : real; begin //Umwandlung der Eingaben p:=strtofloat (Edp.text); q:=strtofloat (Edq.text); //Berechnungsteil x1 := -1*p / 2 + sqrt(p^2/4-q); x2 := -1*p / 2 - sqrt(p^2/4-q); if sqrt((p^2/4)-q)<0 then begin EdKommentar.text:='Keine Lösung'; end else if sqrt((p^2/4)-q)=0 then begin EdKommentar.text:='Nur Eine Lösung'; end else begin EdKommentar.text:='Zwei verschiedene Lösungen'; //Formatierung Edx1.text:=floatt ostrF(x1,ffgeneral,10,3); Edx2.text:=floattostrF(x2,ffgeneral,10,3 ); end; wenn ich die aufgabe streiche p zu quadrieren, dann klappt zwar das programm, aber stürzt mit einer fehlermeldung bei 2 positiven zahlen ab ("ungültige gleitkommaoperation") und wenn p negativ ist klappt es auch nicht woran liegt das?? ich kann zwar statt p^2, p*p eingeben, aber ich würde es gerne anders machen wäre nett, wenn ihr helfen würdet, ich benutze delphi 5 von borland, falls das hilft |
Re: programm fehler (pq-formel) - numerische datentypen
Delphi-Quellcode:
Dieses --> ^ Zeichen wird in Delphi im Zusammenhang mit Zeigern verwendet.
if sqrt((p^2/4)-q)=0
Binde die Unit Math ein und nutze die Funktuon Power ;-) [edit] Ups, hab ich übersehn: Herzlich Willkommen ;-) [/edit] |
Re: programm fehler (pq-formel) - numerische datentypen
Erstmal
:party: :hello: :party: Herzlich Wilkommen in der DP :party: :hello: :party: Du kannst in Delphi nicht einfach ein ^ eingeben, das ist dort für Zeiger reserviert. Stattdessen kannst du Sqr zum quadrieren eines Wertes verwenden. Also so:
Delphi-Quellcode:
P.S: Bitte verwende das nächste mal auch solche Delphi Tags für deinen Code
x1 := -1*p / 2 + sqrt(Sqr(p)/4-q);
x2 := -1*p / 2 - sqrt(Sqr(p)/4-q); |
Re: programm fehler (pq-formel) - numerische datentypen
aber es gibt immernoch das problem mit der ungültigen gleitkommaoperation
es klappt nur wenn p positiv und q negativ ist aber sonst nicht ??? |
Re: programm fehler (pq-formel) - numerische datentypen
Naja, nicht unbedingt.
Du muss halt aufpassen, dass der Term unter der Wurzel >=0 ist ;-) |
Re: programm fehler (pq-formel) - numerische datentypen
if sqrt(sqr(p)/4-q)<0
then begin EdKommentar.text:='Keine Lösung'; das habe ich doch berücksichtigt |
Re: programm fehler (pq-formel) - numerische datentypen
Zitat:
Delphi-Quellcode:
if (sqr(p)/4-q) >= 0 then
//Rechnung else //keine Rechnung |
Re: programm fehler (pq-formel) - numerische datentypen
ich habs es nochmal ausprobiert
aber es klappt trotzdem nicht liegt es vielleicht an der deklaration?? |
Re: programm fehler (pq-formel) - numerische datentypen
Wenn du alle Variablen als REAL deklariert hast sollte es keine Probleme seitens der Variablen geben. Zeig doch noch mal den Code-Teil, in dem der Fehler auftritt und sag nochmal genau, welcher Fehler es jetzt ist, dann können wir dir auch eher helfen :wink:
|
Re: programm fehler (pq-formel) - numerische datentypen
Außerdem ist mir noch ein kleiner Logikfehler aufgefallen:
Zitat:
Delphi-Quellcode:
die Werte aus.
if (...) then
begin (...) end; //Edit1: Da hab ich doch glatt selber die Delphi-Tags vergessen :mrgreen: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz