![]() |
Fehlermeldung DIV 0 !!!
Hallo zusammen,
ich muss für Informatik ein Programm schreiben und wir sollen die einzenen Rechenschritte aufteilen. Soweit, so gut! Das Programm lässt sich auch ohne Probleme compilieren, aber beim Ausführen, wenn ich die Eingaben gemacht habe. (Funktion, Punkt) Der Fehler mit DIV 0 tritt in folgender Prozedur auf:
Delphi-Quellcode:
Anmerkung:
procedure TFPunktEingabe.Ableitung_Berechnen; //Ableitung berechnen über Faktorregel
var SummandG1, SummandH1 : Real; //lokale Variablen zum Errechenen von mt oder f'(x) begin VorfaktorG1:=VorfaktorG*ExponentG; ExponentG1:=ExponentG-1; VorfaktorH1:=VorfaktorH*ExponentH; ExponentH1:=ExponentH-1; SummandG1:=exp((ExponentG1)*ln(VorfaktorG1*xPunkt)); //y = x^n; <--- in dieser Zeile wird der Fehler angezeigt,und dann folglich auch in der unteren SummandH1:=exp((ExponentH1)*ln(VorfaktorH1*xPunkt)); Ableitung1:=SummandG1+SummandH1; // f'(x) = g'(x) + h'(x); [Faktorregel] end; die genannten Variablen sind alle global deklariert[Ausnahme: SummandG1, SummandH1], da das Programm aus 10 Prozeduren besteht. Kann mir jemand helfen? Gruß icqgoofy |
Re: Fehlermeldung DIV 0 !!!
Ich kann mir höchstens vorstellen, dass der Ln von 0 berechnet wird... tritt der Fehler immer auf oder nur bei bestimmten Exponenten (würde ich mal stark vermuten)
Dust Signs |
Re: Fehlermeldung DIV 0 !!!
Also ich habve habe es mit vielen Variaben versucht, und
immer tritt der der Fehler bei "SummandG1" auf, habe auch H und G Werte vertauscht, aber IMMER nur bei G!!!# Gruß icqgoofy |
Re: Fehlermeldung DIV 0 !!!
Da dein Problem immer nur bei G kommt, liegt es wohl an VorfaktorG1.
Welchen Wert hat denn VorfaktorG1, NACH der Zuweisung?
Delphi-Quellcode:
<edit>
VorfaktorG1:=VorfaktorG*ExponentG;
Sicher, dass XPunkt nie 0 ist? </edit> |
Re: Fehlermeldung DIV 0 !!!
hat sich geklärt:)
Fehler behoben, hatte in der Prozedur, von der aus die anderen Prozeduren ausgeführt werden, die falsche Reihenfolge, sodass die Variable xPunkt erst nach jener Prozedur definiert wurde. Gruß icqgoofy |
Re: Fehlermeldung DIV 0 !!!
Ich würde bei Delphi statt Real den Datentyp Extended verwenden.
|
Re: Fehlermeldung DIV 0 !!!
Hm, bei der Endüberprüfung ist mir in oben genannter Prozedur aufgefallen:
Delphi-Quellcode:
Wieso ist x^0 nicht gleich 1 ?????
procedure TFPunktEingabe.Ableitung_Berechnen; //Ableitung berechnen über Faktorregel
var SummandG1, SummandH1, FaktorG, FaktorH : Real; //lokale Variablen zum Errechenen von mt oder f'(x) begin VorfaktorG1:=VorfaktorG*ExponentG; ExponentG1:=(ExponentG)-1; VorfaktorH1:=VorfaktorH*ExponentH; ExponentH1:=(ExponentH)-1; FaktorG:=VorfaktorG1*xPunkt; FaktorH:=VorfaktorH1*xPunkt; SummandG1:=exp((ExponentG1)*ln(FaktorG)); //y = x^n; //Problem!!!!!!!!!!! <--- normalerweise ist x^0 = 1, er berechnet aber etwas anderes, wieso??? SummandH1:=exp((ExponentH1)*ln(FaktorH)); Ableitung1:=SummandG1+SummandH1; end; Gruß icqgoofy |
Re: Fehlermeldung DIV 0 !!!
x^0 = 1
x^1 = x Du rechnest aber x*0, und das ist immer 0. |
Re: Fehlermeldung DIV 0 !!!
Sorry, ich habe mich verschrieben.
Natürlich meinte ich, warum x^0 nicht 1 ergibt, denn so erhalte ich immer andere Ergebnisse Gruß icqgoofy |
Re: Fehlermeldung DIV 0 !!!
Zitat:
Zitat:
mirage228 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:13 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-2025 by Thomas Breitkreuz