Kreis Flächeninhalt

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
iucundus
User
Beiträge: 5
Registriert: Freitag 16. August 2013, 15:57
Wohnort: Zittau

Das Programm liefert falsche Ergebnisse. Wäre nett, wenn jemand drüber schauen könnte.
Danke im Voraus.

Code: Alles auswählen

import math

print "KREIS Flaecheninhalt"

#Eingabe
print "\nRadius (1) oder Durchmesser (2)?"
wahl=int(input())

if wahl==1:
	print "Radius:"
	radius=double(input())
	#Berechnung
	a=math.pi*(radius*radius)
	print "\nFlaecheninhalt:", a, "Einheit^2"
	
else:
	print "Durchmesser:"
	durchmesser=int(input())
	#Berechnung
	a=(math.pi/4.0)*(durchmesser*durchmesser)
	print "\nFlaecheninhalt:", a, "Einheit^2"
Zuletzt geändert von iucundus am Freitag 16. August 2013, 18:34, insgesamt 3-mal geändert.
BlackJack

@iucundus: In wie fern? Welche Eingabe? Was kommt als Ausgabe und was hattest Du stattdessen erwartet.
Sirius3
User
Beiträge: 17745
Registriert: Sonntag 21. Oktober 2012, 17:20

Wenn Du glaubst, daß das Programm einen Fehler hat, dann mußt Du Schritt für Schritt das nachvollziehen was gemacht wird. Hat »wahl« den Wert, den Du erwartest, »radius«, »math.pi« usw.
iucundus
User
Beiträge: 5
Registriert: Freitag 16. August 2013, 15:57
Wohnort: Zittau

@ BlackJack

Ein Beispiel:
Wenn ich den Radius wähle und z.B. 1.3 eingebe, wird der Flächeninhalt falsch angezeigt (≈3,14). Richtig wäre ≈5,3.

Ein weiteres Beispiel. r=2,5; A≈12,7; richtig wäre ≈17,3
georgebaker
User
Beiträge: 25
Registriert: Freitag 12. April 2013, 19:53

@iucundus: Wie Sirius3 schon meinte, schau dir an welche Werte die Variablen haben, besonders deine Eingabe. Dann solltest du den Fehler gleich bemerken.
iucundus
User
Beiträge: 5
Registriert: Freitag 16. August 2013, 15:57
Wohnort: Zittau

@ georgebaker
Funktioniert jetzt.
Danke für den Lösungsansatz.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Du solltest in Python 2.x kein ``input`` benutzen, sondern ``raw_input``.

Und was zur Hölle ist denn ``double()``?
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten