Kurs:Python/LG/Py2009/Mathematik/Dreieck
Programmieraufgaben zum Thema Dreieck.
Rechnung
[Bearbeiten]Rechteck: a = 3, b = 4
Fläche des Rechtecks: a * b = 3 * 4 = 12
Fläche des rechtwinkligen Dreiecks = a * b / 2 = 3 * 4 / 2 = 6
Also:
Im Beispiel: a = 3, b = 4, dann c = 5 (!)
16 * A ² = ( 9 + 16 + 25) ² - 2 * (81 + 256 + 625)
16 * A ² = 2500 - 1924
A ² = 576 / 16
sqrt (A²) = sqrt (36)
A = 6
Programm
[Bearbeiten](3) Jetzt mit Funktion:
from math import sqrt
def flaeche (a, b, c):
flaeche =sqrt((( a ** 2 + b ** 2 + c ** 2) ** 2 -2 * ( a ** 4 + b ** 4 + c ** 4 )) / 16)
return flaeche
a = input ("Bitte geben Sie die Seitenlaenge a ein: ")
b = input ("Bitte geben Sie die Seitenlaenge b ein: ")
c = input ("Bitte geben Sie die Seitenlaenge c ein: ")
print flaeche(a, b, c)
(2) Jetzt mit Eingabe:
from math import sqrt
a = input ("Bitte geben Sie die Seitenlaenge a ein: ")
b = input ("Bitte geben Sie die Seitenlaenge b ein: ")
c = input ("Bitte geben Sie die Seitenlaenge c ein: ")
flaeche =sqrt((( a ** 2 + b ** 2 + c ** 2) ** 2 -2 * ( a ** 4 + b ** 4 + c ** 4 )) / 16)
print flaeche
(1) Die Formel stimmt:
from math import sqrt
a = 3
b = 4
c = 5
flaeche =sqrt((( a ** 2 + b ** 2 + c ** 2) ** 2 -2 * ( a ** 4 + b ** 4 + c ** 4 )) / 16)
print flaeche
Theorie
[Bearbeiten]
Programm
[Bearbeiten]Es gab einen Formel-Fehler. Für die Division durch 16 fehlten die Klammern, so dass bedingt durch Punkt vor Strich zunächst der Bereich 2( a ** 4 + b ** 4 + c ** 4)
durch 16 dividiert und anschließend subtrahiert wurde. Hierdurch wurde das Ergebnis falsch.
from math import sqrt
def flaeche (a, b, c):
flaeche = sqrt( (a ** 2 + b ** 2 + c ** 2) * (a ** 2 + b ** 2 + c ** 2) - 2( a ** 4 + b ** 4 + c ** 4) / 16 )
return flaeche
# E I N G A B E
a = input ("Geben Sie die Seitenlaenge a ein: ")
b = input ("Geben Sie die Seitenlaenge b ein: ")
c = input ("Geben Sie die Seitenlaenge c ein: ")
# A U S G A B E
print "Der Flaecheninhalt des Dreiecks betraegt", round(flaeche(a, b, c),2), "cm2."
Wir kontrollieren, ob die Umformung korrekt ist, indem wir den Flächeninhalt eines rechtwinkligen Dreiecks mit dieser Formel berechnen und das Ergebnis anschließend mit dem Ergebnis der normalen Formel vergleichen:
Produziert den Fehler:
Das untersuchte Programm erzeugte die Ausnahme unhandled TypeError
"'int' object is not callable"
Datei: (...)/flaeche dreieck.py, Zeile: 4
Anhalten?
Version 0.2
[Bearbeiten]from math import sqrt
a = input ("Geben Sie die Seitenlaenge a ein: ")
b = input ("Geben Sie die Seitenlaenge b ein: ")
c = sqrt (a**2 + b**2)
# Berechnung 1
produkt1 = a ** 2 + b ** 2 + c ** 2
print produkt1
produkt2 = 2 * ( a ** 4 + b ** 4 + c ** 4)
print produkt2
flaeche = produkt1 ** 2 - produkt2 / 16
print flaeche
print sqrt (flaeche)
# Berechnung 2
print "Berechnung 2"
flaeche = a * b / 2
print flaeche
Protokoll:
Geben Sie die Seitenlaenge a ein: 12
Geben Sie die Seitenlaenge b ein: 10
488.0
180544.0
226860.0
476.298225905
Berechnung 2
60
Version 0.1
[Bearbeiten]from math import sqrt
a = 1
b = 2
c = 3
produkt1 = a ** 2 + b ** 2 + c ** 2
print produkt1
produkt2 = 2 * ( a ** 4 + b ** 4 + c ** 4)
print produkt2
flaeche = produkt1 ** 2 - produkt2 / 16
print flaeche
print sqrt (flaeche)
Wir suchen...
[Bearbeiten]ein rechtwinkliges Dreieck:
# c2 = a2 + b2
# c = sqrt (a**2 + b**2)
from math import sqrt
a = 12
b = 10
c = sqrt (a**2 + b**2)
print c
Protokoll:
15.6204993518