Python :: Aufgabe #269
3 Lösungen
Überholen: benötigte Strecke und Dauer berechnen
Anfänger - Python
von Waldgeist
- 22.04.2020 um 10:55 Uhr
Es soll ein Programm für die Berechnung von Überhol-weg und Überhol-zeit (bei angenommener konstanten Geschwindigkeit) erstellt werden.
Dazu werden die Länge der beiden Fahrzeuge (l1 und l2) und deren Geschwindigkeit (v1 und v2) angegeben.
Aus diesen Daten ermitteln wir den Sicherheitsabstand (a).
Dieser soll der halben Geschwindigkeit entsprechen. Also bei 100 km/h sind 60 m Sicherheitsabstand einzuhalten.
Die benötigte Strecke berechnen wir dann nach folgender Formel:
s = v1 / (v1−v2) * (l1+l2+2*a)
Weitere Information findet ihr hier: Video
Viel Spaß!
Dazu werden die Länge der beiden Fahrzeuge (l1 und l2) und deren Geschwindigkeit (v1 und v2) angegeben.
Aus diesen Daten ermitteln wir den Sicherheitsabstand (a).
Dieser soll der halben Geschwindigkeit entsprechen. Also bei 100 km/h sind 60 m Sicherheitsabstand einzuhalten.
Die benötigte Strecke berechnen wir dann nach folgender Formel:
s = v1 / (v1−v2) * (l1+l2+2*a)
Weitere Information findet ihr hier: Video
Viel Spaß!
Lösungen:
Python-Code
l1=float(input("Geben Sie die Länge des überholenden Autos in Meter ein: ")) l2=float(input("Geben Sie die Länge des zu überholenden Autos in Meter ein: ")) v1=float(input("Geben sie die Geschwindigkeit des überholenden Autos in km/h ein :")) v2=float(input("Geben sie die Geschwindigkeit des zu überholenden Autos in km/h ein :")) a = v1/2 # Sicherheitsabstand # Umrechnung Km/h nach m/s v1 = v1 * 5/18 v2 = v2 * 5/18 # Brechnung Überholweg und Überholzeit s = v1/(v1-v2)*(l1+l2+2*a) t = s/(v1-v2) print("Die Überholzeit ist {0:0.1f} Sekunden".format(t)) print("Der Überholweg ist {0:0.1f} Meter".format(s))
Python-Code
########################################################################################### # Aufgabe #269 - Überholen: Benötigte Dauer und Strecke berechnen ########################################################################################### # ___________________________________ #____| A u f g a b e n s t e l l u n g |_________________________________________________ # # Es soll ein Programm für die Berechnung von Überhol-weg und Überhol-zeit # (bei angenommener konstanten Geschwindigkeit) erstellt werden. # Dazu werden die Länge der beiden Fahrzeuge (l1 und l2) und deren Geschwindigkeit # (v1 und v2) angegeben. # # Aus diesen Daten ermitteln wir den Sicherheitsabstand (a). # Dieser soll der halben Geschwindigkeit entsprechen. # Also bei 100 km/h sind 60 m Sicherheitsabstand einzuhalten. # # Die benötigte Strecke berechnen wir dann nach folgender Formel: # s = v1 / (v1−v2) * (l1+l2+2*a) # _____________________________ #____| I n f o r m a t i o n e n |_______________________________________________________ # # In diesem Programm wurde der Sicherhaeitsabstand (a), wie in der Aufgabenenstellung # angegeben, aus der halbierten Geschwindigkeit errechnet. # Ich informiere deshalb, weil in der Aufgabenstellung auch angegeben ist das bei # 100 km/h, 60 m Sicherheitsabstand eingehalten werden muss. # ########################################################################################### #=========================================================================| code by daVinci ########################################################################################### #------------------------------------------------------------------------------------------ # p.s. ich bin noch ein absoluter Neuling in diesem Gebiet und freue mich für jeden # unterstützdenen Tipp zur zukünfig besseren/optimierten Umsetzung :) #------------------------------------------------------------------------------------------ # Funktion zur Definition der variablen Werte und Errechnung fester Werte def werte (): # Abrufbar über Variable "Eingaben[0]" l1 = eval(input("Wie lang ist AUTO_01 (Das zu überholdende Auto) [in Metern]?:\n")) # Abrufbar über Variable "Eingaben[1]" l2 = eval(input("Wie lang ist AUTO_02 (Das überholdende Auto) [in Metern]?:\n")) # Abrufbar über Variable "Eingaben[2]" v1 = eval(input("Wie schnell ist AUTO_01 (Das zu überholdende Auto) [in Km/h]?:\n")) # Abrufbar über Variable "Eingaben[3]" v2 = eval(input("Wie schnell ist AUTO_02 (Das überholdende Auto) [in Km/h]?:\n")) # Abrufbar über Variable "Eingaben[4] / Hier wird der Sicherheitsabstand errechnet" a = v2 / 2 return [l1, l2, v1, v2, a] #------------------------------------------------------------------------------------------ # Startmeldung print ("\n=================================================================================") print (" ÜBERHOLEN: BERECHNUNG DER ÜBERHOL- STRECKE UND ZEIT") print ("=================================================================================\n") print ("Dieses Programm dient als Hilfe zur Errechnung der Überholstrecke/-Zeit.") print ("Nach Eingabe der erforderlichen Werte erfolgt die Berechnung und Ausgabe des") print ("Ergebnisses.") print ("\nBENÖTIGTE ANGABEN:") print ("---------------------------------------------------------------------------------") print ('LÄNGE VON AUTO_01 --> (ZU ÜBERHOLENDES FAHRZEUG)') print ("LÄNGE VON AUTO_02 --> (ÜBERHOLENDES FAHRZEUG)") print ("GESCHWINDIGKEIT VON AUTO_01 --> (STANDARTMÄßIG 3 - 4 m)") print ("GESCHWINDIGKEIT VON AUTO_02 --> (STANDARTMÄßIG 3 - 4 m)") print ("=================================================================================\n") #------------------------------------------------------------------------------------------ # Schleife zur eventuellen korrktur der Eingaben while True: # Eingabe der variablen Werte eingaben = werte() #-------------------------------------------------------------------------------------- # Ausgabe von eingegebenen Werten print ("\nEINGETRAGENE ANGABEN:") print ("---------------------------------------------------------------------------------") print ("LÄNGE VON AUTO_01 --> ", eingaben[0], "m") print ("LÄNGE VON AUTO_02 --> ", eingaben[1], "m") print ("GESCHWINDIGKEIT VON AUTO_01 --> ", eingaben[2], "Km/h") print ("GESCHWINDIGKEIT VON AUTO_02 --> ", eingaben[3], "Km/h") print ("=================================================================================\n") #-------------------------------------------------------------------------------------- korrekt = input("Sind die Eingaben korrekt? [J]a / [N]ein: ") if (korrekt == "J" or korrekt == "j"): # Errechnung der Überholstrecke in Metern uestrecke = eingaben[3] / (eingaben[3] - eingaben[2]) * (eingaben[0] + eingaben[1] + 2 * eingaben[4]) # Errechnung der Überholzeit in Sekunden uezeit = (uestrecke * (1 / (eingaben[3] * 1000))) * 3600 # Ergebnisausgabe print ("\n=================================================================================") print ("Bei den Eingegebenen Werten ergibt sich,\n") print ("eine ÜBERHOLSTRECKE von: ", uestrecke, "Metern") print ("eine ÜBERHOLZEIT von : ", uezeit, "Sekunden") print ("=================================================================================\n") break else: print ("\n") continue ###########################################################################################
Mir ist das mit dem Abstand irgendwie nicht klar, aber da es um's Programmieren geht:
Python-Code
# -*- coding: utf-8 -*- v1 = int(input("Geschwindigkeit des langsameren Fahrzeugs (km/h): ")) a1 = v1 / 2 v1 = v1 / 3.6 l1 = int(input("Länge des langsameren Fahrzeugs (m): ")) v2 = int(input("Geschwindigkeit des überholenden Fahrzeugs (km/h): ")) a2 = v2 / 2 v2 = v2 / 3.6 l2 = int(input("Länge des überholenden Fahrzeugs (m): ")) t = (l1 + l2 + a2) / (v2 - v1) s = v2 * t print("\nDie Überholzeit beträgt:",t,"Sekunden.") print("\nDie Überholstrecke ist",s,"m lang.")