Autor Beitrag
WOOH
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Fr 30.11.07 21:48 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
procedure TForm1.Button1Click(Sender: TObject);
begin
Label5.Caption := '                 Bitte Warten!';
i := 0;
eins := Power (strtofloat (Edit1.Text),3);
zwei := Power (strtofloat (Edit2.Text),2);
drei := Power (strtofloat (Edit3.Text),1);
vier := strtofloat (edit4.Text);
repeat

i := i + 0.0000000000000001;
Label6.Caption := floattostr (i);
FX := eins*i+zwei*i+drei * i + vier;

if FX = 0
 then
Label5.Caption := 'Die erste positive Nullstelle findet sich bei ' + floattostr (i) + ' .'

until FX = 0;


Das ist bis jetz mein Quelltext!
Dabei stürzt mein Programm imma ab^^
Kann mir bitte einer helfen?^^

Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Fr 30.11.07 21:53 
In welcher Zeile?

_________________
Markus Kinzler.
Christian R.
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 30.11.07 21:54 
Hallo und :welcome: im Delphi-Forum.

2 Dinge, die sehr wichtig sind. Nicht nur für uns sondern auch für Dich.
  1. Bitte poste Delphi-Codes innerhalb der Delphi-Tags, damit Deine Posts für alle übersichtlicher werden. Die findest Du unter "Bereiche", wenn Du einen Beitrag schreibst.

  2. Bitte formuliere Dein Anliegen etwas klarer. Was willst Du mit dem Programm erreichen und was für einen Fehler gibt er Dir an welcher Zeile aus?


Viele Grüße
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Fr 30.11.07 21:56 
Hallo und :welcome:

Ich nehme mal an, dass du Nullstellen von Polynomen dritten Grades bestimmen willst - aber so, wie du das da vorhast, funktioniert das vorne und hinten nicht ;-)

Ich nehme einfach mal an, dass das Programm scheinbar abstürzt, weil du eine Quasi-Endlosschleife drin hast. Das Programm reagiert dann nicht mehr auf Eingaben.

_________________
We are, we were and will not be.
WOOH Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Fr 30.11.07 22:35 
Genau das isset!^^
Gibbet denn dazu eine Alternative?^^ Möglichst eine funktionnierende?^^
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Fr 30.11.07 22:45 
Schau dir deinen Code mal genauer an und guck, was du da potenzierst - auf jeden Fall nicht das "x" ;-)

Dann: Ein Vergleich von Floats (= 0) ist immer eine schlechte Idee, was mit der Zahldarstellung im Rechner und damit verbundenen Ungenauigkeiten zu tun hat.

Weiter: Überleg mal, wie lang deine Berechnung dauert, wenn die Nullstelle weiter hinten liegt...du machst das in 0.0000000000000001-er Schritten. D.h. du brauchst 1.000.000.000.000.000 Schritte, um eine Nullstelle bei 1 zu finden.

Ich weiß, dass es eine Formel für Gleichungen dritten Grades gibt - schau mal bei Wikipedia, da sollte man das nachlesen können. Ansonsten helfen iterative Verfahren wie z.B. das Newton-Verfahren, um eine Nullstelle zu finden.

Die andere Frage hab ich mal gelöscht - Bitte erstelle dafür einen eigenen Thread ;-)

_________________
We are, we were and will not be.
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Di 04.12.07 14:55 
Es gibt auch ein Verfahren mit Rekursion zum Thema annäherungsweise Nullstellen berechnen. Wir mussten in der Uni das mal in Ada Implementieren. Das Verfahren ist bekannt unter dem Namen Suche in Wikipedia NEWTONVERFAHREN

Edit: Vielleicht hilft dir das Java-Script Beispiel unter de.wikipedia.org/wik...nometrische_Funktion

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.