| Autor |
Beitrag |
natabata
Hält's aus hier
Beiträge: 1
|
Verfasst: Mo 12.04.10 09:48
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
      

Beiträge: 1952
Erhaltene Danke: 128
Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
|
Verfasst: Mo 12.04.10 09:59
_________________ a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
Zuletzt bearbeitet von Xion am Mo 12.04.10 10:00, insgesamt 1-mal bearbeitet
|
|
Gammatester
      
Beiträge: 328
Erhaltene Danke: 101
|
Verfasst: 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
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Mo 12.04.10 10:10
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
ALF
      
Beiträge: 1085
Erhaltene Danke: 53
WinXP, Win7, Win10
Delphi 7 Enterprise, XE
|
Verfasst: 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
_________________ Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
|
|
Xion
      

Beiträge: 1952
Erhaltene Danke: 128
Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
|
Verfasst: Mo 12.04.10 18:05
elundril hat folgendes geschrieben : | Xion hat folgendes geschrieben : |
Delphi-Quelltext 1: 2:
| IF nullstellen=true THEN write (x1,x2) else write ('keine lösung') | |
UAAAAAAAAAAAAHHHHHH, ich sterbe!! Sowas tut man doch nicht, Herr Xion! Wenn man verbessert dann, bitte schon gleich auf die optimale Lösung. |
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.
_________________ a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: 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.
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
jfheins
      
Beiträge: 918
Erhaltene Danke: 158
Win 10
VS 2013, VS2015
|
Verfasst: Mo 12.04.10 20:15
|
|
|