Kurs:Python/LG/Py2009/Mathematik/Dreieck

Aus Wikiversity
< Kurs:Python‎ | LG‎ | Py2009‎ | Mathematik

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