Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Flächensätze des Pythagoras (https://www.delphipraxis.net/66960-flaechensaetze-des-pythagoras.html)

Chrissi91 7. Apr 2006 05:58


Flächensätze des Pythagoras
 
Hi :hi:,

ich habe für meinen Matheunterricht mal ein Programm geschrieben, das anhand von 2 Seitenlängen bei einem rechtwinkligen Dreieck die restlichen Seiten errechnet. Das gezippte Programm, sowie eine ERklärung findet ihr hier

Größe: 184 kb

Direkter Download: Klick mich

Kritik ist erwünscht, auch bei dem Inhalt der Website (Erkläung, Readme, etc.)

Danke.

Nicodius 7. Apr 2006 06:12

Re: Flächensätze des Pythagoras
 
ja klappt alles ;)

mach vl als zusatz noch n 4tes edit wo der flächeninhalt berechnet wird :)
undi n die info datei muss nicht unbedingt kommen geeignet für win95,98 etc :stupid:

-> es erfüllt seinen zweck :thumb:


grüße Nico :)

Sharky 7. Apr 2006 06:17

Re: Flächensätze des Pythagoras
 
Hai Chrissi91,

ich zitiere mal [user=Daniel]Chäffe[/user] aus den Regeln für das vorstellen eines Programmes in dieser Sparte:

Desperate House Elf sagt
direkter Download-Link evtl. mit Angabe, wie gross der Download ist

bundy 7. Apr 2006 06:25

Re: Flächensätze des Pythagoras
 
Funktioniert ohne Probleme.

Du könntest das Programm noch mit Winkelfunktionen ausstatten.
Um die Seitenlängen über Winkel ausrechen zu können.

z.B

sin(Alpha)= Gegenkathete / Hypothenuse
cos(Alpha)= Ankathete / Hypothenuse
tan(Alpha)= Gegenkathete / Ankathete


aber sonst TOP :hi:

lg
Bundy

Chrissi91 7. Apr 2006 12:35

Re: Flächensätze des Pythagoras
 
Zitat:

Zitat von Nicodius
ja klappt alles ;)

mach vl als zusatz noch n 4tes edit wo der flächeninhalt berechnet wird :)
undi n die info datei muss nicht unbedingt kommen geeignet für win95,98 etc :stupid:

-> es erfüllt seinen zweck :thumb:


grüße Nico :)

Beide Ideen werde ich dann mal sofort machen. ;) Danke für den Vorschalg.

Zitat:

Zitat von Sharky
Hai Chrissi91,

ich zitiere mal [user=Daniel]Chäffe[/user] aus den Regeln für das vorstellen eines Programmes in dieser Sparte:

Desperate House Elf sagt
direkter Download-Link evtl. mit Angabe, wie gross der Download ist

ERledigt. Da ich es zum ersten Mal von einer Homepage anbiete, hielt ich es erst nicht für nötig. Aber jetzt weiß ich es. :D


Zitat:

Zitat von bundy
sin(Alpha)= Gegenkathete / Hypothenuse
cos(Alpha)= Ankathete / Hypothenuse
tan(Alpha)= Gegenkathete / Ankathete

Hm ... davon habe ich noch nichts gehört. Ich werde mir es nachher mal genau anschauen, damit ich die Logik verstehe. Danach werde ich es auch einbauen, ;)

Asonsten danke ich euch für euer Lob und eure Ideen.

P.S.: Neue Version (1.1). Downloadlink bleibt derselbe (s. Beitrag #1)

Chrissi91 7. Apr 2006 15:02

Re: Flächensätze des Pythagoras
 
Hi nochmal,

Ich verstehe das mit den Winkeln noch nicht ganz. Vielleicht kannst du das nochmal ein bisschen erläutern. Verstehe ich denn den Zweck richtig:?

Ich kann anhand der Maße von a, b, c die Winkel errechnen, richtig?

Zitat:

Zitat von bundy
sin(Alpha)= Gegenkathete / Hypothenuse
cos(Alpha)= Ankathete / Hypothenuse
tan(Alpha)= Gegenkathete / Ankathete

Und was ist die Ankathete.

Ansonsten klingt es interessant.

Helmi 7. Apr 2006 15:11

Re: Flächensätze des Pythagoras
 
Hallo,

das ist ja ein ganz nettes Programm.

Nur solltest du die Eingabe von Buchstaben verhindern, da sonst ein Fehler kommt.

Chrissi91 7. Apr 2006 15:23

Re: Flächensätze des Pythagoras
 
Zitat:

Zitat von Helmi
Hallo,

das ist ja ein ganz nettes Programm.

Nur solltest du die Eingabe von Buchstaben verhindern, da sonst ein Fehler kommt.

Wie meinst du das? Soll ich Buchstaben beim Eingeben gleich löschen, oder eine eigene Fehlermeldung ausgeben und nicht die von Delphi direkt?

Ultimator 7. Apr 2006 15:25

Re: Flächensätze des Pythagoras
 
Du solltest gar nicht erst zulassen, dass Buchstaben eingegeben werden ;)

mkinzler 7. Apr 2006 15:25

Re: Flächensätze des Pythagoras
 
Z.B. die Eingabe bereits im Edit auf Zahlen beschränken.

xZise 7. Apr 2006 17:02

Re: Flächensätze des Pythagoras
 
Zitat:

Zitat von Chrissi91
Ich verstehe das mit den Winkeln noch nicht ganz.

Fehlt dir das Mathematische Grundwissen?
Dann kann ich dir weiterhelfen. Mit
ArcusSinus,
ArcusCosinus und
ArcusTangens.

Kannst du mithilfe von 2 Seiten einen Winkel ausrechnen!
Griechisch(Alpha) := ArcusSinus von (Gegenkathete / Hypotenuse)
Griechisch(Alpha) := ArcusCosinus von (Ankathete/ Hypotenuse)
Griechisch(Alpha) := ArcusTangens von (Ankathete/ Gegenkathete)

Gegenkathete = Die Kathete, die dem Betrachtetetn Winkel gegenüberliegt
Ankathete = Die Kathete an den betracheteten Winkel
Hypotenuse = Die Seite, die dem Winkel gegenüber ist! (Diese Seite ist KEINE Kathete!)

Chrissi91 7. Apr 2006 17:40

Re: Flächensätze des Pythagoras
 
Zitat:

Zitat von xZise
Zitat:

Zitat von Chrissi91
Ich verstehe das mit den Winkeln noch nicht ganz.

Fehlt dir das Mathematische Grundwissen?
Dann kann ich dir weiterhelfen. Mit
ArcusSinus,
ArcusCosinus und
ArcusTangens.

Kannst du mithilfe von 2 Seiten einen Winkel ausrechnen!
Griechisch(Alpha) := ArcusSinus von (Gegenkathete / Hypotenuse)
Griechisch(Alpha) := ArcusCosinus von (Ankathete/ Hypotenuse)
Griechisch(Alpha) := ArcusTangens von (Ankathete/ Gegenkathete)

Gegenkathete = Die Kathete, die dem Betrachtetetn Winkel gegenüberliegt
Ankathete = Die Kathete an den betracheteten Winkel
Hypotenuse = Die Seite, die dem Winkel gegenüber ist! (Diese Seite ist KEINE Kathete!)

Danke! Jetzt habe ich es verstanden. Das kommt auf jeden Fall in die neue Version. Vielleicht bringe ich die heute abend noch raus.

Chrissi91 14. Apr 2006 16:15

Re: Flächensätze des Pythagoras
 
Ist ArcusSinus dasselbe wie sin() oder ist das etwas anderes?

xZise 14. Apr 2006 16:18

Re: Flächensätze des Pythagoras
 
Das ist was anderes:
ArcusSinus(Gegenkathete / Hypotenuse) = Winkel
Sinus(Winkel) = Gegenkathete / Hypotenuse

Sozusagen das gegenstück!

Chrissi91 14. Apr 2006 16:34

Re: Flächensätze des Pythagoras
 
Und wie lautet der Delphibefehl dazu? arcussin? arcsin?

Nikolas 14. Apr 2006 16:37

Re: Flächensätze des Pythagoras
 
Schau doch einfach mal in der OH nach... Da findest du in etwa 20sec arcsin.

Chrissi91 14. Apr 2006 16:42

Re: Flächensätze des Pythagoras
 
Hi nochmal,

also kann ich mit dem einen befehl, alle winkel ausrchnen, da ein winkel ja immer 90° hat, alpha ich ausrechnen kann und der dritte is dann ja noch einfacher ;)

aber was heißt gegenkathete? angenommen ich habe folgendes dreieck:

-C
A B

alpha is bei a, oder? was ist jetzt die gegenkathete? die gegenüberliegende? also bc?

Phistev 14. Apr 2006 16:57

Re: Flächensätze des Pythagoras
 
Wikipedia sollte hier weiterhelfen...

Chrissi91 14. Apr 2006 17:19

Re: Flächensätze des Pythagoras
 
Eine Frage noch. ^^

Ich habe den Code geändert, den vorherigen habe ich aus Versehen gelöscht. :wall:

Delphi-Quellcode:
procedure TfrmMain.btnCalculateClick(Sender: TObject);
begin
  If (Length(edtKathete1.Text) > 0) and (Length(edtHyphotenuse.Text) > 0)
  Or (Length(edtKathete2.Text) > 0) and (Length(edtHyphotenuse.Text) > 0)
  Or (Length(edtKathete1.Text) > 0) and (Length(edtKathete2.Text) > 0) then
    begin
      If btnKathete1.Checked then edtKathete1.Text := FloatToStr(sqrt(sqr(StrToFloat(edtHyphotenuse.Text))-sqr(StrToFloat(edtKathete2.Text))));
      If btnKathete2.Checked then edtKathete2.Text := FloatToStr(sqrt(sqr(StrToFloat(edtHyphotenuse.Text))-sqr(StrToFloat(edtKathete1.Text))));
      If btnHyphotenuse.Checked then edtHyphotenuse.Text := FloatToStr(hypot(StrToFloat(edtKathete1.Text),StrToFloat(edtKathete2.Text)));
      edtP.Text := FloatToStr(StrToFloat(edtKathete1.Text) * StrToFloat(edtKathete1.Text) / StrToFloat(edtHyphotenuse.Text));
      edtQ.Text := FloatToStr(StrToFloat(edtKathete2.Text) * StrToFloat(edtKathete2.Text) / StrToFloat(edtHyphotenuse.Text));
      edtHeight.Text := FloatToStr(sqrt(StrToFloat(edtP.Text) * StrToFloat(edtQ.Text)));
      edtFlaeche.Text := FloatToStr(StrToFloat(edtHyphotenuse.Text) * StrToFloat(edtHeight.Text) / 2);
      edtGamma.Text := '90 °';
    end
  Else MessageDlg('Es müssen 2 Seiten angegeben werden.', mtError, [mbOK], 0);
end;
Delphi-Quellcode:
      If btnKathete1.Checked then edtKathete1.Text := FloatToStr(sqrt(sqr(StrToFloat(edtHyphotenuse.Text))-sqr(StrToFloat(edtKathete2.Text))));
Wenn er mir das ausrechnet, die If - Bedingung also erfüllt ist, passiert folgendes, wenn ich 20 und 12 eingebe:

EInvalidOp "Invalid floating point operation".

Woran kann das liegen?

Phistev 14. Apr 2006 20:02

Re: Flächensätze des Pythagoras
 
Ist sichergestellt, dass die Hypothenuse die längste Seite ist, also Hypothenuse > Kathete?
Ansonsten wird der Term unter der Wurzel negativ, und das geht ohne komplexe Zahlen nicht.

3_of_8 14. Apr 2006 20:10

Re: Flächensätze des Pythagoras
 
Das wars bei ihm, er hat mir per ICQ gesagt, dass er die zwei Edits vertauscht hat.

LOL, komplexe Zahlen, das führt hier glaub ich wirklich ein bisschen zu weit. ;)

Phistev 14. Apr 2006 20:15

Re: Flächensätze des Pythagoras
 
Wenn ich geschrieben hätte, dass man aus negativen Zahlen keine Wurzeln ziehen könne, hätte es garantiert Protest gegeben :wink:

faux 14. Apr 2006 20:22

Re: Flächensätze des Pythagoras
 
Hallo!

@Chrissi:
Formatiere mal deinen Code im Vorigen Beitrag etwas. Der ist ja beinahe unlesbar.

Falls das Trigonometrie-Problem noch besteht:

http://upload.wikimedia.org/wikipedi...gesDreieck.png
Wir betrachten Winkel α: b ist hierbei die Ankathete, a die Gegenkathete (ist ja genau gegenüber) und c (wie immer) die Hypotenuse.
Du erhältst jetzt α durch arcsin(a/c) oder durch arccos(b/c), welche beide das selbe ergeben.
Wenn wir β betrachten, sei arcsin(b/c) und arccos(a/c) und γ ist sowieso 90°.
Man kann das ganze auch mit dem Tangens berechnen (α=cot(a/b)), was jedoch sinnlos ist, da der Tangens gleich dem Sinus durch den Kosinus ist und es keine extra Funktion in Delphi gibt, und das nur aufwändiger wäre.

Grüße
Faux

Chrissi91 15. Apr 2006 10:14

Re: Flächensätze des Pythagoras
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also, es scheint alles zu funktionieren, nur die Winkel nicht. Wenn ich ein Dreieck, wie im vorherigen Beitrag angegeben habe, ist bei Gamma ein rechter winkel (90°).

WEnn ich nun Alpha berechne, kann ich danach auch Beta berechnen, weil alle 3 Winkel im Dreieck immer 180° ergeben, oder? Gut, dann hie mein Problem. ^^

Delphi-Quellcode:
edtGamma.Text := '90 °';
edtAlpha.Text := FloatToStr(ArcSin(StrToFloat(edtKathete1.Text) / StrToFloat(edtHyphotenuse.Text)));
edtBeta.Text := FloatToStr(90 - StrToFloat(edtAlpha.Text)) + ' °';
Wobei edtKathete1 Seite a sein.

Delphi-Quellcode:
edtKathete1.Text := FloatToStr(sqrt(sqr(StrToFloat(edtHyphotenuse.Text))-sqr(StrToFloat(edtKathete2.Text))));
Also a² = c² - b²

Also müsste der obige Code richtig sein. Aber das Programm rechnet etwas unmögliches aus (siehe Screenshot).

Haabe ich mich wieder mal verrechnet? ^^

3_of_8 15. Apr 2006 10:17

Re: Flächensätze des Pythagoras
 
Der Sinus ist Gegenkathete/Ankathete.

Phistev 15. Apr 2006 10:18

Re: Flächensätze des Pythagoras
 
Und die Delphi-Funktionen rechnen im Bogenmaß -> Ergebnis von Alpha erst umwandeln

Und Gegenkathete/Ankathete ist der Tangens

faux 15. Apr 2006 10:19

Re: Flächensätze des Pythagoras
 
Also wo genau liegt das Problem? Was berechneste du denn; also was hast du und was willst du? Ich denke mal, das ist kein programmiertechnisches sondern ein mathematisches Problem.

Zitat:

Zitat von 3_of_8
Der Sinus ist Gegenkathete/Ankathete.

Ähm... Meiner Meinung nach erhält man den Tangens eines Winkels mit Gegenkathete/Ankathete, und nicht den Sinus.
Außerdem könnte er dies sowieso den vorhergehenden Beiträgen entnehmen.

Grüße
Faux

Hawkeye219 15. Apr 2006 10:20

Re: Flächensätze des Pythagoras
 
Delphi-Referenz durchsuchenArcSin liefert das Ergebnis im Bogenmaß, nicht in Grad!

Gruß Hawkeye

3_of_8 15. Apr 2006 10:22

Re: Flächensätze des Pythagoras
 
Ja stimmt, Denkfehler. Gegenkathete/Hypotenuse.

Aber allein am Bogenmaß könnte es doch auch nicht liegen, oder?

faux 15. Apr 2006 10:23

Re: Flächensätze des Pythagoras
 
Zitat:

Zitat von Hawkeye219
Delphi-Referenz durchsuchenArcSin liefert das Ergebnis im Bogenmaß, nicht in Grad!

Ahh! Das ist das Problem!
OH:
Der Rückgabewert wird im Bogenmaß angegeben und liegt im Bereich [-Pi/2..Pi/2].


Aber nicht nur ArcSin, sondern auch alle anderen Kreis- und Winkelfunktionen der VCL.
Ich denke Delphi-Referenz durchsuchenRadToDeg schafft Abhilfe.

Grüße
Faux

xZise 15. Apr 2006 11:12

Re: Flächensätze des Pythagoras
 
Müsste das Programm nicht langsam mal heißen:

"Flächensätze des Pyytagoras und Winkelsätze der Trigonomentrie"

?

Chrissi91 15. Apr 2006 12:36

Re: Flächensätze des Pythagoras
 
Kommt ja noch. Ich suche jetzt erstmal nach dem Bogenmaß. ^^

3_of_8 15. Apr 2006 12:38

Re: Flächensätze des Pythagoras
 
Wieso suchen? Es wurde doch schon gesagt, wie es geht.

xZise 15. Apr 2006 14:05

Re: Flächensätze des Pythagoras
 
Zitat:

Zitat von faux
Ich denke Delphi-Referenz durchsuchenRadToDeg schafft Abhilfe.

Bevor hier gefragt wird ;)

Rad = Bogenmass (radian)
Deg = Grad (degree)

faux 15. Apr 2006 14:13

Re: Flächensätze des Pythagoras
 
Zitat:

Zitat von xZise
Zitat:

Zitat von faux
Ich denke Delphi-Referenz durchsuchenRadToDeg schafft Abhilfe.

Bevor hier gefragt wird ;)

Rad = Bogenmass (radian)
Deg = Grad (degree)

Nicht zu verwechseln mit Delphi-Referenz durchsuchenRadToGrad! Denn Grad ist Neugrad.

Mache einfach mal so:
Delphi-Quellcode:
function DegArcSin(const Value: Extended): Extended;
begin
  Result := RadToDeg(ArcSin(Value));
end;
Grüße
Faux

Chrissi91 15. Apr 2006 15:29

Re: Flächensätze des Pythagoras
 
Hi,

ja, so habe ich das dann auch in meinen alten Projektdateien gefunden. Trotzdem danke. Die neue Version ist jetzt online, ersetzt durch die alte im 1. Beitrag.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:39 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz