Python :: Aufgabe #269

3 Lösungen Lösungen öffentlich

Ü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ß!

Lösungen:

vote_ok
von Gisbert5020 (3000 Punkte) - 27.04.2020 um 10:56 Uhr
Quellcode ausblenden 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))
vote_ok
von daVinci (320 Punkte) - 15.05.2020 um 21:08 Uhr
Quellcode ausblenden 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



###########################################################################################
vote_ok
von Nachbar (2810 Punkte) - 26.05.2020 um 16:05 Uhr
Mir ist das mit dem Abstand irgendwie nicht klar, aber da es um's Programmieren geht:

Quellcode ausblenden 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.")