Autor Beitrag
natabata
Hält's aus hier
Beiträge: 1



BeitragVerfasst: 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

ausblenden 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;       //  findet den fehler und speichert es neu

{$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')

  { TODO -oUser -cConsole Main : Hier Code einfügen }
end.



kann mir jmd sagen was hier falsch ist?

Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
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)
BeitragVerfasst: Mo 12.04.10 09:59 
user profile iconnatabata hat folgendes geschrieben Zum zitierten Posting springen:

kann mir jmd sagen was hier falsch ist?

Ohne Fehlerbeschreibung eher nicht.

ausblenden Delphi-Quelltext
1:
2:
IF nullstellen=true THEN
 write (x1,x2) else write ('keine lösung')

_________________
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 328
Erhaltene Danke: 101



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Mo 12.04.10 10:10 
user profile iconXion hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconnatabata hat folgendes geschrieben Zum zitierten Posting springen:

kann mir jmd sagen was hier falsch ist?

Ohne Fehlerbeschreibung eher nicht.

ausblenden 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.

ausblenden Delphi-Quelltext
1:
2:
IF Nullstellen THEN
  write (x1,x2) esle write('keine lösung')


lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
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)
BeitragVerfasst: Mo 12.04.10 18:05 
user profile iconelundril hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconXion hat folgendes geschrieben Zum zitierten Posting springen:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 918
Erhaltene Danke: 158

Win 10
VS 2013, VS2015
BeitragVerfasst: Mo 12.04.10 20:15 
user profile iconXion hat folgendes geschrieben Zum zitierten Posting springen:

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 ;)
user profile iconXion hat folgendes geschrieben Zum zitierten Posting springen:
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"
user profile iconXion hat folgendes geschrieben Zum zitierten Posting springen:
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 ;)