Archiv verlassen und diese Seite im Standarddesign anzeigen : Mathematisches Problem
Date Murphy
22.09.2002, 15:28
Hi @ all,
ich möchte ein Programm schreiben, in welchem man 3 Seitenlängen eines Dreicks eingibt und das Programm dann ermittelt, um was für ein Dreieck es sich handelt (Gleichseitiges Dreieck, Gleichschenkliges Dreieck oder ein Rechwinkliges Dreieck). Hat jemand einen Tipp für für mich, wie man das am besten errechnen kann, um was für ein Dreieck es sich handelt ?Danke schon mal.
Gruß Date Murphy :D
Na das ist ja easy ;)
- alle Winkel ausrechnen
- Wenn a = b = c -> Gleichseitiges Dreieck
- Wenn alpha, beta od. gamma = 90° -> rechtwinkliges
Und bei dem
Gleichschenkligem fällt mir grad net ein wie das aussah
Hoffe das ist was Du wolltest!
Wäre schön wenn Du Deine code-Lösung hier hereinstellen könntest.
erfolgreiche Grüsse,
smpx7
gleichschenklig ist ein dreieck wenn 2 winkel/seiten gleich gross sind.
das einzige beim rechtwinkelingen muss du mit sin/cos/tan die winkel ausrechnen
Felix Kaiser
23.09.2002, 14:41
Und da bitte beachten, dass die Delphifunktionen für sin/cos/tan nur mit Bogenmaßen rechnen und nicht mit Grad. Musste vorher noch umrechnen.
wenn mich nicht alles taeuscht
bogenmass = grad * pi / 180;
grad = bogenmass * 180 / pi
Date Murphy
23.09.2002, 15:21
@ xOOn
Kannst du mir mal bitte mit dem ausrechnen von
den Winkeln beim Rechtwinkligen Dreieck helfen ?
Gruß Date Murphy :D
also auswendig weiss ich es nichtmehr aber das findest du enmass im internet wie der sinus und co laeuft
du musst einfach die winkel ausrechen und schauen ob einer 90 **auf der tastatur gradzeichen hab ** grad ist
winkel x = sin (gegenkathete/hypothenuse) * 180 / pi;
fabian ackle
23.09.2002, 15:33
um zu schauen ob es sich um ein rechtwinkliges dreieck handelt musst du die winkel gar nicht kennen, du kannst es auch so lösen:
if (a^2+b^2)^0.5=c then rechtwinklig
if (a^2+c^2)^0.5=b then rechtwinklig
if (c^2+b^2)^0.5=a then rechtwinklig
else nicht rechtwinklig :)
mfg
fabian
@fabian ackle
jepp aber mit den scheiss floats die nicht immer soo genau rechnen beweifle ich ob da immer genau das richtige rauskommt
12 <> 11.99999999
bei 3,4,5 stimmts sicher aber bei komplexeren muesste man das testen
Felix Kaiser
23.09.2002, 15:50
Oder auf die letzte Stelle runden, das geht auch ganz einfach: Vergleiche nicht float mit float, mach aus beiden Float mit FloatToStr nen String und vergleiche die :)
muesste man probieren aber ich glaube durch das potenzieren und wurzel machen fehlt mehr als nur eine stelle
you must make some tests:D :D
Felix Kaiser
23.09.2002, 17:28
Durchs Runden wirds dann aber wieder akzeptabel, da die Abweichungen in einem durch Runden wegfallenden Bereich liegen.
0.1 = 1/10 -> false
FloatToStr(0.1) = FloatToStr(1/10) -> true
Ist halt der FPU Algo.
Date Murphy
23.09.2002, 19:55
Danke Euch, werde es mal testen :)
Gruß Date Murphy :D
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.