Entwickler-Ecke
Sonstiges (Delphi) - delphi exp fkt problem
natabata - Mo 12.04.10 09:48
Titel: delphi exp fkt problem
hallo zusammen, ich habe ein programm geschrieben das für nullstellen entweder keine lösung oder die nullstellen x werte einer exp, fkt angeben soll
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
| program test; {$APPTYPE CONSOLE}
uses SysUtils;
var a,b,c,x1,x2:longint;
function nullstellen:boolean; begin write('a eingeben'); readln(a); write('b eingeben'); readln(b); write('c eingeben'); readln(c); x1:=(-b+sqrt((b*b)-4*a*c)/(2*a)); x2:=(-b-sqrt((b*b)-4*a*c)/(2*a)); end; begin
IF nullstellen true THEN write (x1,x2) else write ('keine lösung')
end. |
kann mir jmd sagen was hier falsch ist?
Moderiert von
Gausi: Delphi-Tags hinzugefügt
Xion - Mo 12.04.10 09:59
natabata hat folgendes geschrieben : |
kann mir jmd sagen was hier falsch ist? |
Ohne Fehlerbeschreibung eher nicht.
Delphi-Quelltext
1: 2:
| IF nullstellen=true THEN write (x1,x2) else write ('keine lösung') |
Gammatester - Mo 12.04.10 09:59
Ich weiß zwar nicht was Du erwartest (wenn Du noch nicht mal weißt, was falsch ist), aber zwei Hinweise:
- Solche Rechnungen benötigen in der Regel Fliekommazahlen, also double bzw extendend und keine longint.
- Was Du ansatzweise machst, ist das Lösen einer quadratischen Gleichung und hat absolut nichts mit der Funktion exp zu tun.
elundril - Mo 12.04.10 10:10
UAAAAAAAAAAAAHHHHHH, ich sterbe!! Sowas tut man doch nicht, Herr Xion! Wenn man verbessert dann, bitte schon gleich auf die optimale Lösung.
Delphi-Quelltext
1: 2:
| IF Nullstellen THEN write (x1,x2) esle write('keine lösung') |
lg elundril
ALF - Mo 12.04.10 11:26
Hi, und wann wird "nullstellen" result true oder false!?
Nur eine Formel Ergebnis ohne Prüfung auf was, ergibt weder True noch False.
Gruss Alf
Xion - Mo 12.04.10 18:05
Ich mach das oft mit =true...ich weiß, soll man nicht...das konstruierte Beispiel hat mich nie überzeugt, wenn ich in der Function Result:=True setze, dann ist das result auch true...hatte zumindest noch nie Probleme. Warum ich es eigentlich mache, ist mehr eine Verständnis Sache des Codes. if Nullstelle then sagt mir nix. Wer weiß was Nullstelle aussagt, am Ende einen integer mit der Anzahl der Nullstellen. Jetzt muss ich schon überlegen, was Delphi machen würde bei if 1 then...ich würde das jetzt als true interpetieren, wie alles <>0. Wenn dann if NullstelleExists then. Da ist klar was Sache ist. In der obigen Funktion kann man eh nicht von gutem Programmierstil der Funktion sprechen, da sie garkeinen bool zurückgibt...weil sie ja auch 2 integer zurückgibt, die sie aber in globale Variablen füllt...
Die Aufgabenstellung hier erinnert mich an ne Hausaufgabe...gegeben ist ein Code, man soll alle Fehler finden...ohne Fehlerbeschreibung.
Edit: Ui, der Kommentar in der ersten Zeile...hmm, scheinbar hatte ich recht.
elundril - Mo 12.04.10 20:11
Doch, die Methode selbst gibt nen Boolean zurück, wie du da Integer oder sonstwas interpretieren würdest ist den compiler schnuppe, da ein boolean ein boolean bleibt und delphi nicht so wie php einfach den Variablentyp ändern kann. Würde die Methode Nullstellen nämlich ein Integer zurückgeben dann kannst das mit if Nullstellen then eh knicken sondern musst schreiben if Nullstellen = 0 then
Und das die Methode nicht NullstellenExist heißt sondern nur Nullstellen ist eine weitere Sache die böse ist da man die Methoden aussagekräftig benennen soll.
jfheins - Mo 12.04.10 20:15
Xion hat folgendes geschrieben : |
Ich mach das oft mit =true...ich weiß, soll man nicht...das konstruierte Beispiel hat mich nie überzeugt, wenn ich in der Function Result:=True setze, dann ist das result auch true...hatte zumindest noch nie Probleme. |
Nur weil bis jetzt gut gegangen ist, muss es nicht immer gut gehen ;)
Xion hat folgendes geschrieben : |
| Warum ich es eigentlich mache, ist mehr eine Verständnis Sache des Codes. if Nullstelle then sagt mir nix. Wer weiß was Nullstelle aussagt, am Ende einen integer mit der Anzahl der Nullstellen. |
Wie wäre es, die Funktion passend umzubenennen? z.B. in "hatNullstelle" oder "hasRoot"
Xion hat folgendes geschrieben : |
| Jetzt muss ich schon überlegen, was Delphi machen würde bei if 1 then... |
Ich hoffe mal auf das hier: "Error: Incompatibe Types Integer vs. Boolean" oder so ähnlich ;)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!