Autor Beitrag
area6
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22

win 2000, suse lin 9.1
d6 personal, d7, kylix3
BeitragVerfasst: Mo 24.06.02 10:03 
Hallo,

einmal wieder habe ich einen Kampf mit sinus, cosinus und Co.

Folgender Source hat einen Fehler, finden Sie ihn!!!
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
if beta.Text<>'0' then begin            {Winkel beta ggb.}
                        if hypo.Text<>'0' then begin            {Hypothenuse ggb.}
                                b:= strtofloat(beta.Text);
                                hy:= strtofloat(hypo.Text);
                                a:= 90-b;            {einfach gemacht --> eine Möglichkeit an alpha zu kommen}
                                an:= cos(a)*hy;            {das kann er nicht richtig berechnen}
                                g:= sin(a)*hy;            {das auch nicht}
                                alpha.Text:= floattostr(a);
                                ank.Text:= floattostr(an);
                                gegen.Text:= floattostr(g);
                                exit;
                        end;
                        if ank.Text<>'0' then begin
                                b:= strtofloat(beta.Text);
                                an:= strtofloat(ank.Text);
                                a:= 90-b;
                                g:= tan(a)*an;
                                hy:= sqrt((g*g)+(an*an));
                                alpha.Text:= floattostr(a);
                                gegen.Text:= floattostr(g);
                                hypo.Text:= floattostr(hy);
                                exit;
                        end;

Nur zur Info:

1.) an = Ankathede; g = Gegenkathede; hypo = Hypothenuse; a = alpha; b = beta
2.) Math-Unit ist eingebunden und arcsin und arccos, etc. laufen.
3.) An der Umrechnung von Bogen- in Gradmaß liegt es auch nicht...

Viel Spass beim Suchrätsel...

cu, area6.

Code-Tags hinzugefügt. Tino
Torsten
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 160



BeitragVerfasst: Mo 24.06.02 12:02 
Moinsen!

Wie ist das jetzt gemeint?
Hast Du damit ein Problem oder soll das ein Rätsel für uns sein?

Grüße

Torsten
Torsten
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 160



BeitragVerfasst: Mo 24.06.02 12:06 
Ach ja, noch was.
Was soll Beta sein? Welcher Winkel?
Im rechtwinkligen Dreieck spielt nur der Winkel Alpha, also der von Hypotenuse und Ankatete eingeschlossene Winkel eine Rolle.

Beta wird bei Dir auch gar nicht verwendet. Also wozu?
Arbeite doch direkt mit Alpha.

Grüße

Torsten
Lemmy
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 792
Erhaltene Danke: 49

Windows 7 / 10; CentOS 7; LinuxMint
Delphi 7-XE10.1, VS 2015
BeitragVerfasst: Mo 24.06.02 12:58 
area6 hat folgendes geschrieben:

3.) An der Umrechnung von Bogen- in Gradmaß liegt es auch nicht...


was soll der Müll?? Natürlich liegt der Fehler daran! Wo rechnest Du denn um??

Zitat aus der Onlinehilfe:

Beschreibung
Sin gibt den Sinus des mit X angegebenen Winkels im Bogenmaß (Rad) zurück.

und das steht so bei cos,... auch! Ansonsten rechnet das Zeugs...

Grüße
Lemmy
Torsten
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 160



BeitragVerfasst: Mo 24.06.02 13:14 
Moinsen!

Ja, rechnet tut er wohl. Das habe ich auch eben festgestellt.
Also wo soll Dein Fehler sein?
Sag uns das doch bitte.

Und die Angabe im Bogenmaß ist ja kein Fehler. Ist nur eine Frage der Darstellung.

Grüße

Torsten
MathiasH
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 699

WinXP, Win98SE, Debian, Win95
D5 Stand, D6 Prof
BeitragVerfasst: Mo 24.06.02 15:11 
du ziehst von 90 b ab , 1/4 Kreis ist in dieser Maßeinheit(b und a) aber Pi/2 also a = Pi/2 - b und ab muss schon im Bogenmaß vorliegen.

MathiasH

_________________
"Viel von sich reden, kann auch ein Mittel sein, sich zu verbergen."
Friedrich Nietzsche
area6 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22

win 2000, suse lin 9.1
d6 personal, d7, kylix3
BeitragVerfasst: Mo 24.06.02 16:35 
o.k., also:

1.) beta ist deshalb dabei, weil beide Winkel eingegeben werden können
2.) mit der Umrechnung in Gradmaß (die ich nur kurzfristig aus dem source entfernt habe) kommt trotzdem nicht das richtige Ergebnis raus (das Ergebnis ist weder Grad- noch Bogenmaß, sondern schlicht falsch)
area6 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22

win 2000, suse lin 9.1
d6 personal, d7, kylix3
BeitragVerfasst: Mo 24.06.02 16:35 
o.k., also:

1.) beta ist deshalb dabei, weil beide Winkel eingegeben werden können
2.) mit der Umrechnung in Gradmaß (die ich nur kurzfristig aus dem source entfernt habe) kommt trotzdem nicht das richtige Ergebnis raus (das Ergebnis ist weder Grad- noch Bogenmaß, sondern schlicht falsch)
3.) ó.g. ist mein Problem und ein Suchrätsel für Euch dazu
Torsten
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 160



BeitragVerfasst: Mo 24.06.02 16:41 
Gib doch mal bitte ein Beispiel für eine Berechnung, die Deiner Meinung nach falsch ist.

Grüße

Torsten
area6 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22

win 2000, suse lin 9.1
d6 personal, d7, kylix3
BeitragVerfasst: Mo 24.06.02 16:42 
o.k., also:

1.) für Torsten: beta ist deshalb dabei, weil beide Winkel eingegeben werden können

2.) für Lemmy: mit der Umrechnung in Gradmaß (die ich nur kurzfristig aus dem source entfernt habe) kommt trotzdem nicht das richtige Ergebnis raus, da das falsche Ergebnis nicht beim Winkel, sondern bei den Seitenlängen für An- und Gegenkathede, schliesslich ändert 90°-beta nichts in dem Maß von beta (demnächst bitte entweder erst selbst richtig lesen oder das posten unterlassen)

3.) für Torsten: o.g. ist mein Problem und ein Suchrätsel für Euch dazu
area6 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22

win 2000, suse lin 9.1
d6 personal, d7, kylix3
BeitragVerfasst: Mo 24.06.02 16:43 
Titel: Nachtrag trigon. Fkt.
o.k., also:

1.) für Torsten: beta ist deshalb dabei, weil beide Winkel eingegeben werden können

2.) für Lemmy: mit der Umrechnung in Gradmaß (die ich nur kurzfristig aus dem source entfernt habe) kommt trotzdem nicht das richtige Ergebnis raus, da das falsche Ergebnis nicht beim Winkel, sondern bei den Seitenlängen für An- und Gegenkathede, schliesslich ändert 90°-beta nichts in dem Maß von beta (demnächst bitte entweder erst selbst richtig lesen oder einfach nix posten?!?)

3.) für Torsten: o.g. ist mein Problem und ein Suchrätsel für Euch dazu
Torsten
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 160



BeitragVerfasst: Mo 24.06.02 16:49 
OK, soweit habe ich verstanden.
Dennoch mal bitte ein Beispiel für eine angeblich falsche Berechnung.

Grüße

Torsten
Lemmy
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 792
Erhaltene Danke: 49

Windows 7 / 10; CentOS 7; LinuxMint
Delphi 7-XE10.1, VS 2015
BeitragVerfasst: Mo 24.06.02 21:01 
Titel: Re: Nachtrag trigon. Fkt.
area6 hat folgendes geschrieben:

2.) für Lemmy: mit der Umrechnung in Gradmaß (die ich nur kurzfristig aus dem source entfernt habe) kommt trotzdem nicht das richtige Ergebnis raus, da das falsche Ergebnis nicht beim Winkel, sondern bei den Seitenlängen für An- und Gegenkathede,...


Warum funktioniert bei mir dann dieser Code??

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
if beta.Text<>'0' then begin      {Winkel beta ggb.}
            if hypo.Text<>'0' then begin      {Hypothenuse ggb.}
                b:= strtofloat(beta.Text);
                hy:= strtofloat(hypo.Text);
                a:= 90-b;      
                an:= cos(a*pi/180)*hy;      //Umrechnug Teil 1
                g:= sin(a*pi/180)*hy;        //Umrechnung Teil 2
                alpha.Text:= floattostr(a);
                ank.Text:= floattostr(an);
                gegen.Text:= floattostr(g);
                exit;
            end;


Bei mir kommen bei folgenden Werten die richtigen Maße raus:

beta=45, Hypo=5: an=gg=3,5355..
beta=36.869897647, Hypo=5: an=4, gg=3


area6 hat folgendes geschrieben:

schliesslich ändert 90°-beta nichts in dem Maß von beta


Habe ich auch nie gesagt! Die Rechnung ist ja vollkommen korrekt. Du gehst aber mit der Winkeleinheit DEGREE in die Berechnung sin(a) bzw. cos(a). Dort muss aber die Winkeleinhat RADIANT stehen! Die Umrechnung erfolg mit PI/180.

area6 hat folgendes geschrieben:

(demnächst bitte entweder erst selbst richtig lesen oder einfach nix posten?!?)


Sorry für den Ton meines ersten Postings... *umverzeihungbitt*.... :oops:

Grüße
Lemmy
area6 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22

win 2000, suse lin 9.1
d6 personal, d7, kylix3
BeitragVerfasst: Mo 24.06.02 21:10 
Die Umrechnung in Bogenmaß habe ich tatsächlich im code drin, daran lag es nicht, aber wie ich soeben feststellen konnte, hatte ich mehrere edits übereinander, das, was eingelesen wird unter dem, in das eingetragen wird, hat sich also erledigt :arrow: und ich dachte schon ich sei ein bißchen :mrgreen: nach stundenlangem, tagelangem Testen war ich der festen Überzeugung, daß der Code stimmt, nu, war ja auch so...

Für Lemmy nochmal ein Original-Ausschnitt aus dem Source incl. aller Umrechnungen:

ausblenden 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:
if beta.Text<>'0' then begin
                        if hypo.Text<>'0' then begin
                                b:= strtofloat(beta.Text);
                                hy:= strtofloat(hypo.Text);
                                a:= 90-b;
                                alpha.Text:= floattostr(a);
                                zw:= (a * pi)/180;
                                a:= zw;
                                an:= cos(a)*hy;
                                g:= sin(a)*hy;
                                ank.Text:= floattostr(an);
                                gegen.Text:= floattostr(g);
                                exit;
                        end;
                        if ank.Text<>'0' then begin
                                b:= strtofloat(beta.Text);
                                an:= strtofloat(ank.Text);
                                a:= 90-b;
                                alpha.Text:= floattostr(a);
                                zw:= (a * pi)/180;
                                a:= zw;
                                g:= tan(a)*an;
                                hy:= sqrt((g*g)+(an*an));
                                gegen.Text:= floattostr(g);
                                hypo.Text:= floattostr(hy);
                                exit;
                        end;


ne? Umrechnung stimmte schon, also ist die Lösung des Rätsels :arrow: KEINER 8) naja, bis demnächst....

cu, area6.
Torsten
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 160



BeitragVerfasst: Mo 24.06.02 21:28 
Also haut nun alles hin?
area6 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22

win 2000, suse lin 9.1
d6 personal, d7, kylix3
BeitragVerfasst: Mo 24.06.02 22:09 
Jupp, wie gesagt, das Problem entsprang meiner schlampigen Arbeit an der Oberfläche. :oops:
Torsten
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 160



BeitragVerfasst: Mo 24.06.02 22:14 
Dann bin ich ja beruhigt. ;)

Grüße

Torsten
Chatfix
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1583
Erhaltene Danke: 10

Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
BeitragVerfasst: Mo 24.06.02 22:28 
ich auch :mrgreen:

_________________
Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce