Kurs:Python/LG/Py2009/Mathematik/Dreieck
Programmieraufgaben zum Thema Dreieck.
Rechnung
BearbeitenRechteck: 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
BearbeitenEs 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
Bearbeitenfrom 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
Bearbeitenfrom 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...
Bearbeitenein 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