Autor Beitrag
H.Wagner
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mo 21.12.15 10:10 
Moin Leute,
und zwar habe ich folgendes Problem. Ich habe ein Programm geschrieben, welches die P-Q Formel anwendet. Das Compilieren funktioniert aber es kommen sehr falsch klingende werte raus. Es stecckt also ein "Rechenfehler" da drinne, den kann ich aber nicht finden. Ich hinterlege hier mal meinen Quellcode :)

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
procedure TForm1.Button1Click(Sender: TObject);
VAR x1, x2, q, p ,d : REAL;
begin
  q := StrToFloat (Edit1.text);
  p := StrToFloat (Edit2.text);
  Edit3.text := FloatToStr (x1);
  Edit4.text := FloatToStr (x2);
  D := ((p*p)/4) - q;

  IF           D   >     0 then
               begin
               (x1) := (p/2) + SQRT(D) ;
               (x2) := (p/2) - SQRT(D)  ;
               end
   Else If      D   <        0  then
               begin
                panel1.caption := ('Die eingabe war ungültig')  ;
               end

  ELSE (x1) := (p/2);

Ich habe den Wurzelteil als D dargestellt, um mir unnötige schreibarbeit zu sparen. Ich danke schon mal den Leuten die sich dafür Zeit nehmen:)

Moderiert von user profile iconMartok: Delphi-Tags hinzugefügt
baumina
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 304
Erhaltene Danke: 61

Win 7
Delphi 10.2 Tokyo Enterprise
BeitragVerfasst: Mo 21.12.15 10:39 
Sicher wäre es sinnvoller zuerst die Werte x1 und x2 zu berechnen und erst danach die Ausgabe der Werte auf dem Bildschirm zu machen und nicht andersrum, denn x1 und x2 sind am Anfang der procedure mit irgendeinem Müll belegt.
frankyboy1974
Hält's aus hier
Beiträge: 4
Erhaltene Danke: 1



BeitragVerfasst: Mo 21.12.15 11:38 
hallo,

muss es nicht

ausblenden Delphi-Quelltext
1:
2:
               (x1) := -(p/2) + SQRT(D) ;
               (x2) := -(p/2) - SQRT(D)  ;


heissen?

mfg

Moderiert von user profile iconMartok: Delphi-Tags hinzugefügt
klassiknerd
Hält's aus hier
Beiträge: 9
Erhaltene Danke: 5

Win 7 Ult., OS X 10.10.5
Delphi 7 Ent., Lazarus 1.6.2, QtCreator 3.6.1
BeitragVerfasst: Mo 21.12.15 16:17 
Hallo,

vielleicht solltest du die Ausgabe bei negativen D, was in der Mathematik im Übrigen als Diskriminante bezeichnet wird, von "Die eingabe war ungültig" in "Die Lösungen sind nicht reel" verändern. Den mathematisch gesehen gibt es Lösungen, eben nur keine im Bereich der reellen Zahlen.

Beste Grüße
klassiknerd

_________________
Wer all seine Ziele erreicht hat, hat sie sich als zu niedrig ausgewählt.
- H. v. Karajan
H.Wagner Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Sa 26.12.15 01:17 
Danke für die Zahlreiche hilfe:) Frohe weihnacht euch allen und ein guter rutsch ins neue jahr:)