AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Powerfunktion ungültige gleichkommaoperation
Thema durchsuchen
Ansicht
Themen-Optionen

Powerfunktion ungültige gleichkommaoperation

Ein Thema von taker875 · begonnen am 15. Jan 2009 · letzter Beitrag vom 15. Jan 2009
Antwort Antwort
Seite 1 von 2  1 2      
taker875

Registriert seit: 2. Okt 2008
25 Beiträge
 
#1

Powerfunktion ungültige gleichkommaoperation

  Alt 15. Jan 2009, 10:05
moin,

kann mir da vielleicht einer weiter helfen?

es geht um eine potenzfunktion: ergebnis := a*power(x,n); und um eine exponentialfunktion: ergebnis := (a*power(ee,x)) * ((b*power(x,n)) + c*x+d); so das ist ja schön und gut. nun gibt es da aber ein problem. (x verändert sich ständig)

wenn ich für n eine ganze zahl zum beispiel 2 nehme, geht das ohne probleme. aber nehme ich nun 1.9 bricht das ganze mit dem fehler "üngültige gleichkommaoperation". wie muss ich das nun ändern, damit das trotzdem geht? sitze da jetzt total auf dem schlauch^^

bitte helft mir
  Mit Zitat antworten Zitat
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
460 Beiträge
 
Delphi XE2 Enterprise
 
#2

Re: Powerfunktion ungültige gleichkommaoperation

  Alt 15. Jan 2009, 10:10
So mal aus der Hilfe:

Zitat:
Die Funktion Power errechnet aus der Basis Base und dem beliebigen Wert Exponent die Potenz.

Unit

Math

Kategorie

Arithmetik

function Power(Base, Exponent: Extended): Extended;

Beschreibung

Power errechnet aus Base und einen beliebigen Wert die Potenz. Wird als Exponent ein Bruchwert oder ein Wert größer MaxInt angegeben, muß Base größer als 0 sein.
Ist x größer 0?

Das Ergebnis ist eine Gleitkommazahl, das heist alle anderen Zahlen auch extended sein, oder du must eine funktion zur Umwandlung einbauen.

Poste mal deine Varliste, was deine a,ee usw sind.

Gruß Matthias
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
taker875

Registriert seit: 2. Okt 2008
25 Beiträge
 
#3

Re: Powerfunktion ungültige gleichkommaoperation

  Alt 15. Jan 2009, 10:14
Delphi-Quellcode:
var
  Form1: TForm1;
  a,b,c,d,e,f,x,y,xs,ys,n : Double;
  x0,y0,xB,yB,xEins,xZwei,xDrei,yEins,yZwei,yDrei,index : Integer;
  groesse : integer;
  FunktionArt : integer = 0;

  const ee = 2.718281828459;
heißt das, dass ich a,b,c,d,e,f,x,y,xs,ys,n : Double; als Extended brauche?

x ist nicht immer größer als 0. aber das dürfte ja nicht das problem sein. x^2 geht ja nur x^1.9 geht eben nicht, und bricht mit folgendem fehler ab. heißt das, dass Double nicht der richtige typ ist?

danke
  Mit Zitat antworten Zitat
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
460 Beiträge
 
Delphi XE2 Enterprise
 
#4

Re: Powerfunktion ungültige gleichkommaoperation

  Alt 15. Jan 2009, 10:24
Zitat:
heißt das, dass ich a,b,c,d,e,f,x,y,xs,ys,n : Double; als Extended brauche?
Ja, ausser du baust ständig floattoint(real) ein, damit wird dein Ergebnis aber ungenauer

Gruß Matthias
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
460 Beiträge
 
Delphi XE2 Enterprise
 
#5

Re: Powerfunktion ungültige gleichkommaoperation

  Alt 15. Jan 2009, 10:29
Ach ja ausser dein Ergebnis soll eine Ganzzahl sein, dann kannst du natürlich

ergebnis:=round(dein Term);
machen

Gruß Matthias
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
taker875

Registriert seit: 2. Okt 2008
25 Beiträge
 
#6

Re: Powerfunktion ungültige gleichkommaoperation

  Alt 15. Jan 2009, 10:40
hmm habe jetzt oben mal
Delphi-Quellcode:
var
  Form1: TForm1;
  a,b,c,d,e,f,x,y,xs,ys,n : Extended;
aber damit bricht er mir die powerfunktion in der potenzfunktion auch ab, wenn ich n 1.9 groß mache.

damit ich das jetzt richtig verstehe. also was ist sein problem bei
a*x^n also a*power(x,n); dass er mir es immer abbricht bei n keine ganze zahl. der windows taschenrechner kann es auch nicht rechnen.

kann mir bitte irgendwer weiter helfen, wie ich es irgendwie mache kann, dass n nicht ganzzahlig sein muss. oder geht das gar nicht.

vielen vielen dank
  Mit Zitat antworten Zitat
soulies

Registriert seit: 9. Dez 2005
234 Beiträge
 
#7

Re: Powerfunktion ungültige gleichkommaoperation

  Alt 15. Jan 2009, 10:53
hoi,

'n' muss keine ganzzahl sein.

die frage für mich ist wie du 'n' einen wert übergibst.
Trägts du den Wert in ein Edit Feld ein oder so ?

Falls ja und du gibst '1.9' ein dann versuch mal '1,9'.

cya
  Mit Zitat antworten Zitat
taker875

Registriert seit: 2. Okt 2008
25 Beiträge
 
#8

Re: Powerfunktion ungültige gleichkommaoperation

  Alt 15. Jan 2009, 11:02
als übergabe nehme ich einen schiebregler:

Delphi-Quellcode:
procedure TForm1.ScrollNChange(Sender: TObject);
begin
n := -5+10*Form1.ScrollN.Position/100;
FeldN.Text := FloatToStrF(n,ffFixed,6,2);
end;

zum download mal mein programm zum download dran. also wäre klasse, wenn mir irgendwer sagen könnte, wie ich es schaffe.
Angehängte Dateien
Dateityp: rar graphen_neu_934.rar (199,0 KB, 4x aufgerufen)
  Mit Zitat antworten Zitat
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
460 Beiträge
 
Delphi XE2 Enterprise
 
#9

Re: Powerfunktion ungültige gleichkommaoperation

  Alt 15. Jan 2009, 12:08
Zitat:
hoi,

'n' muss keine ganzzahl sein.

die frage für mich ist wie du 'n' einen wert übergibst.
Trägts du den Wert in ein Edit Feld ein oder so ?

Falls ja und du gibst '1.9' ein dann versuch mal '1,9'.

cya
Moment,

In der Variablendeklaration ist n als double angegeben, double=Ganzzahl.

Wenn taker in n:=1.9 schreiben will MUSS das eine Variable vom Typ float(real, extended etc) sein, sonst gaht das nicht.

Gruß Matthias
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
soulies

Registriert seit: 9. Dez 2005
234 Beiträge
 
#10

Re: Powerfunktion ungültige gleichkommaoperation

  Alt 15. Jan 2009, 12:20
hoi,

ich glaub das problem liegt woanders.

in der Hilfe zu Power() steht
Zitat:
Beschreibung

Power errechnet aus Base und einen beliebigen Wert die Potenz. Wird als Exponent ein Bruchwert oder ein Wert größer MaxInt angegeben, muss Base größer als 0 sein.
sein exponent ist 1.9 = Bruchwert und
sein startwert der base ist bestimmt < 0 ... = es knallt

cya
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 13:24 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