Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Fehlet im Quelltext


Binchen1987 - Mi 16.01.08 20:01
Titel: Fehlet im Quelltext
Habe folgenden Quelltext zur Berechnung von sin(x) aber es kommt der Fehler, dass y nicht initialiert wurde... was muss ich ändern?


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:
29:
30:
31:
32:
33:
procedure TForm1.Button2Click(Sender: TObject);
var x,G,y,nenn:real;
k,i:integer;
const epsilon=0.0005;
begin
x:=StrToFloat(Edit1.Text);
If (x>=1.0and (x<=1.5then
begin
y:=0;
G:=x;
k:=1;
repeat
y:=y+G;
nenn:=1;
k:=k+2;
for i:=2 to k do
begin
nenn:=nenn*1;
G:=(-1*G*x*x)/nenn;
end;

until abs (G) < epsilon;
end;
Edit2.text:= FloatToStr(y);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
edit1.clear;
edit2.clear;
end;

end.


Und habt ihr eine Idee für ein Unterprogramm eines Programms welches die Unternehem von vielen ermittelt, die einen Umsatz unter 1000€ errichen?

Vielen Dank für eure Hilfe!!!
LG

Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt


Yogu - Mi 16.01.08 20:08

Hallo und :welcome: im Delphi-Forum, user profile iconBinchen1987!

Wo genau tritt denn der Fehler auf? Kannst du uns vielleicht die Zeilennumer nennen?
Und warum codest du den Sinus neu, den gibt es doch schon mit Delphi mitgeliefert !?

Grüße,
Yogu


Gausi - Mi 16.01.08 20:11

Auch von mir ein :welcome:

Das ist ja kein Fehler, sondern nur eine Warnung, oder? Der tritt auf, weil du y nur einen Wert zuweist, wenn die obere Bedingung erfüllt ist, hinterher aber auf jeden Fall darauf zugreifst. Wenn die Bedingung nun nicht erfüllt wurde, ist y nicht definiert, sonder enthält irgendeinen Fantasiewert, der dann zu einer unsinnigen Anzeige führt. Daher die Warnung.


Mitmischer 1703 - Mi 16.01.08 20:56

user profile iconYogu hat folgendes geschrieben:

Und warum codest du den Sinus neu, den gibt es doch schon mit Delphi mitgeliefert !?


Auch meinerseits ein :welcome:

Sinus ist in der Unit Math unter sin, Cosinus unter cos definiert, für beide zusammen ist sincos schneller


Binchen1987 - Mi 16.01.08 21:21

Stimmt, ist eine Warnung. Programm wird trotzdem gestartet. Aber es läuft nicht richtig. Es wird immer bei jeder beliebigen Eingabe derselbe Wert ausgegeben.
Muss es so für die Uni programmieren, daher kann ich den feritigen Programmen bedienen sondern muss alleine ran;)


nagel - Mi 16.01.08 21:27

Hab jetzt nicht ganz verstanden was du da machst, aber ich vermute mal, dass der/ein Fehler in Zeile 18 liegt:

Delphi-Quelltext
1:
nenn:=nenn*1;                    

Oder hat das irgendeinen Sinn?


Binchen1987 - Mi 16.01.08 21:37

Nee, das stimmt schon, war so im Struktogramm vorgegeben


nagel - Mi 16.01.08 21:40

Bist du dir da sicher? Was soll das bringen, bei jedem Schleifendurchlauf mit 1 zu multiplizieren?
Ich vermute eher, dass das ein i sein sollte.


Binchen1987 - Mi 16.01.08 21:47

Juhu danke;)))) es funktioniert hab mich wirklich verschrieben;) Hab nochmal aufs Struktogramm geschaut;)Dankeschön