![]() |
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 ![]() Größe: 184 kb Direkter Download: ![]() Kritik ist erwünscht, auch bei dem Inhalt der Website (Erkläung, Readme, etc.) Danke. |
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 :) |
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 |
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 |
Re: Flächensätze des Pythagoras
Zitat:
Zitat:
Zitat:
Asonsten danke ich euch für euer Lob und eure Ideen. P.S.: Neue Version (1.1). Downloadlink bleibt derselbe (s. Beitrag #1) |
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:
Ansonsten klingt es interessant. |
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. |
Re: Flächensätze des Pythagoras
Zitat:
|
Re: Flächensätze des Pythagoras
Du solltest gar nicht erst zulassen, dass Buchstaben eingegeben werden ;)
|
Re: Flächensätze des Pythagoras
Z.B. die Eingabe bereits im Edit auf Zahlen beschränken.
|
Re: Flächensätze des Pythagoras
Zitat:
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!) |
Re: Flächensätze des Pythagoras
Zitat:
|
Re: Flächensätze des Pythagoras
Ist ArcusSinus dasselbe wie sin() oder ist das etwas anderes?
|
Re: Flächensätze des Pythagoras
Das ist was anderes:
ArcusSinus(Gegenkathete / Hypotenuse) = Winkel Sinus(Winkel) = Gegenkathete / Hypotenuse Sozusagen das gegenstück! |
Re: Flächensätze des Pythagoras
Und wie lautet der Delphibefehl dazu? arcussin? arcsin?
|
Re: Flächensätze des Pythagoras
Schau doch einfach mal in der OH nach... Da findest du in etwa 20sec arcsin.
|
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? |
Re: Flächensätze des Pythagoras
![]() |
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:
Wenn er mir das ausrechnet, die If - Bedingung also erfüllt ist, passiert folgendes, wenn ich 20 und 12 eingebe:
If btnKathete1.Checked then edtKathete1.Text := FloatToStr(sqrt(sqr(StrToFloat(edtHyphotenuse.Text))-sqr(StrToFloat(edtKathete2.Text))));
EInvalidOp "Invalid floating point operation". Woran kann das liegen? |
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. |
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. ;) |
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:
|
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: ![]() 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 |
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:
Wobei edtKathete1 Seite a sein.
edtGamma.Text := '90 °';
edtAlpha.Text := FloatToStr(ArcSin(StrToFloat(edtKathete1.Text) / StrToFloat(edtHyphotenuse.Text))); edtBeta.Text := FloatToStr(90 - StrToFloat(edtAlpha.Text)) + ' °';
Delphi-Quellcode:
Also a² = c² - b²
edtKathete1.Text := FloatToStr(sqrt(sqr(StrToFloat(edtHyphotenuse.Text))-sqr(StrToFloat(edtKathete2.Text))));
Also müsste der obige Code richtig sein. Aber das Programm rechnet etwas unmögliches aus (siehe Screenshot). Haabe ich mich wieder mal verrechnet? ^^ |
Re: Flächensätze des Pythagoras
Der Sinus ist Gegenkathete/Ankathete.
|
Re: Flächensätze des Pythagoras
Und die Delphi-Funktionen rechnen im Bogenmaß -> Ergebnis von Alpha erst umwandeln
Und Gegenkathete/Ankathete ist der Tangens |
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:
Außerdem könnte er dies sowieso den vorhergehenden Beiträgen entnehmen. Grüße Faux |
Re: Flächensätze des Pythagoras
|
Re: Flächensätze des Pythagoras
Ja stimmt, Denkfehler. Gegenkathete/Hypotenuse.
Aber allein am Bogenmaß könnte es doch auch nicht liegen, oder? |
Re: Flächensätze des Pythagoras
Zitat:
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 ![]() Grüße Faux |
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" ? |
Re: Flächensätze des Pythagoras
Kommt ja noch. Ich suche jetzt erstmal nach dem Bogenmaß. ^^
|
Re: Flächensätze des Pythagoras
Wieso suchen? Es wurde doch schon gesagt, wie es geht.
|
Re: Flächensätze des Pythagoras
Zitat:
Rad = Bogenmass (radian) Deg = Grad (degree) |
Re: Flächensätze des Pythagoras
Zitat:
![]() Mache einfach mal so:
Delphi-Quellcode:
Grüße
function DegArcSin(const Value: Extended): Extended;
begin Result := RadToDeg(ArcSin(Value)); end; Faux |
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 21:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz