#import math # Variante 2 Module "math" importieren
# a^2 + b^2 = c^2
a = float(input("Länge der Ankathete (cm): "))
b = float(input("Länge der Gegenkathete (cm): "))
c = (a**2 + b**2)**0.5 # Variante 1!!
#c = math.sqrt(a**2 + b**2)
print(f"Die Hypotenuse ist {c} cm lang. ")
Hallo,
wie bringe ich das Script dazu, mir das Ergebnis auf zwei Stellen zu runden und in cm auszugeben??
LG
Sorry, bin blutiger Anfänger!!!
Function "round"
- __blackjack__
- User
- Beiträge: 14047
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Wobei man die genannte Funktion hier nicht braucht. Die ist eher dazu da wenn man tatsächlich mit gerundeten Zahlen weiter rechnen möchte. Für das Einsetzen in eine Zeichenkette würde man eher bei der Format-Mini-”Sprache” ansetzen, also das "{c}" um die entsprechenden Formatierungsangaben ergänzen. Die Referenzdokumentation findet man hier: https://docs.python.org/3.10/library/st ... i-language
Edit: Wenn man weiss wie man eine Gleitkommazahl in eine ganze Zahl umwandeln kann, lässt mit einer zusätzlichen Grundrechenart, und zweien die schon im Programm vorkommen, mit ein bisschen nachdenken auch eine gerundete Zahl berechnen. Die im Gegensatz zur `round()`-Funktion dann auch eher der Rundung entspricht, welche viele Leute anscheinend erwarten, wenn sie noch nie damit konfrontiert waren, dass es mehrere Arten zu runden gibt, und es per se nicht *die* richtige Art zu runden gibt.
Edit: Wenn man weiss wie man eine Gleitkommazahl in eine ganze Zahl umwandeln kann, lässt mit einer zusätzlichen Grundrechenart, und zweien die schon im Programm vorkommen, mit ein bisschen nachdenken auch eine gerundete Zahl berechnen. Die im Gegensatz zur `round()`-Funktion dann auch eher der Rundung entspricht, welche viele Leute anscheinend erwarten, wenn sie noch nie damit konfrontiert waren, dass es mehrere Arten zu runden gibt, und es per se nicht *die* richtige Art zu runden gibt.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
- DeaD_EyE
- User
- Beiträge: 1239
- Registriert: Sonntag 19. September 2010, 13:45
- Wohnort: Hagen
- Kontaktdaten:
Das wissenschaftliche Runden verursacht eine geringere Abweichung, wenn z.B. gerundete Werte aufsummiert werden. Beim kaufmännischen Runden entstehen größere Differenzen, wenn man die Einzelwerte summiert.
Code: Alles auswählen
def value_gen(start, stop):
for i in range(start * 10, stop * 10, 10):
yield (i + 5) / 10
def roundk(value):
"""
Kaufmännisches Runden
"""
int_value = int(value)
if abs(value - int_value) >= 0.5:
int_value += 1
return int_value
values = tuple(value_gen(0, 11))
for value in values:
print(f"Wert: {value:<7} round: {round(value):<7} roundk: {roundk(value)}")
print()
print(f"Summe: {sum(values)}")
print(f"Summe (round): {sum(round(v) for v in values)}")
print(f"Summe (roundk): {sum(roundk(v) for v in values)}")
Wert: 0.5 round: 0 roundk: 1
Wert: 1.5 round: 2 roundk: 2
Wert: 2.5 round: 2 roundk: 3
Wert: 3.5 round: 4 roundk: 4
Wert: 4.5 round: 4 roundk: 5
Wert: 5.5 round: 6 roundk: 6
Wert: 6.5 round: 6 roundk: 7
Wert: 7.5 round: 8 roundk: 8
Wert: 8.5 round: 8 roundk: 9
Wert: 9.5 round: 10 roundk: 10
Wert: 10.5 round: 10 roundk: 11
Summe: 60.5
Summe (round): 60
Summe (roundk): 66
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
-
- User
- Beiträge: 2
- Registriert: Samstag 23. November 2024, 14:51
#print(f"Die Hypotenuse ist {c:.2f} cm lang.") Danke, so schaut das Ergebnis aus!!!!!bikehiro_57 hat geschrieben: Samstag 23. November 2024, 15:24 #import math # Variante 2 Module "math" importieren
# a^2 + b^2 = c^2
a = float(input("Länge der Ankathete (cm): "))
b = float(input("Länge der Gegenkathete (cm): "))
c = (a**2 + b**2)**0.5 # Variante 1!!
#c = math.sqrt(a**2 + b**2)
print(f"Die Hypotenuse ist {c} cm lang. ")
Hallo,
wie bringe ich das Script dazu, mir das Ergebnis auf zwei Stellen zu runden und in cm auszugeben??
LG
Sorry, bin blutiger Anfänger!!!
Danke Microsoft EDGE Copilot!!!!!
@DeaD_EyE: Wäre kaufmännisches Runden zur nächsten Ganzzahl nicht einfach das hier?
Code: Alles auswählen
int_value = int(value + 0.5)
- __blackjack__
- User
- Beiträge: 14047
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@snafu: Ich würde das so machen (oder dazu schreiben, dass das nur für positive Zahlen verwendet werden sollte):
Durch das Quadrieren spielt das bei der gegebenen Aufgabe natürlich keine Rolle.
Hach ja, da werde ich wieder nostalgisch…
@bikehiro_57: Später könntest Du das Programm noch durch Fehlerbehandlung erweitern, damit die Benutzer keinen Unsinn eingeben können, wie Eingaben die keine Zahlen sind, oder negative Längenangaben.
Code: Alles auswählen
int_value = int(value + 0.5 * math.copysign(1, value))
Hach ja, da werde ich wieder nostalgisch…
Code: Alles auswählen
10 PRINT"LAENGEN IN CM:"
20 INPUT"ANKATHETE";A
30 INPUT"GEGENKATHETE";B
40 C=SQR(A*A+B*B)
50 PRINT"HYPOTENUSE =";INT(C*100+.5)/100;"CM"
“Vir, intelligence has nothing to do with politics!” — Londo Mollari