C# :: Aufgabe #307 :: Lösung #4

5 Lösungen Lösungen öffentlich
#307

Überholen: benötigte Strecke und Dauer berechnen

Anfänger - C# 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ß!

#4
vote_ok
von PhiMo (90 Punkte) - 20.07.2020 um 11:31 Uhr
Quellcode ausblenden C#-Code
using System;
					
public class Program
{
	public static void Main()
	{
		double L1;
		double L2;
		double V1;
		double V2;
				
		Console.WriteLine("Geben Sie die Länge von Fahrzeug 1 an: ");
		while(!double.TryParse(Console.ReadLine(), out L1))
		{
			Console.WriteLine("Eingabe ungültig!");
		}
		
		Console.WriteLine("Geben Sie die Länge von Fahrzeug 2 an: ");
		while(!double.TryParse(Console.ReadLine(), out L2))
		{
			Console.WriteLine("Eingabe ungültig!");
		}
		
		Console.WriteLine("Geben Sie die Geschwindigkeit von Fahrzeug 1 an: ");
		while(!double.TryParse(Console.ReadLine(), out V1))
		{
			Console.WriteLine("Eingabe ungültig!");
		}
		
		Console.WriteLine("Geben Sie die Geschwindigkeit von Fahrzeug 2 an: ");
		while(!double.TryParse(Console.ReadLine(), out V2))
		{
			Console.WriteLine("Eingabe ungültig!");
		}
		
		
		double A = Sicherheitsabstand(V1, V2);
		double S = Überholweg(L1, L2, V1, V2, A);
		double T = Überholzeit(S, V1, V2);
		
		Console.WriteLine("Sicherheitsabstand = " + A + 
						 "\nÜberholweg = " + S + 
						 "\nÜberholzeit = " + T);
		
	}
	
	public static double Sicherheitsabstand(double v1, double v2)
	{
		double a;
		
		if(v1 < v2)
		{
			a = v2 / 2;
		}
		else
		{
			a = v1 / 2;
		}
		
		return a;
	}
	
	public static double Überholweg(double l1, double l2, double v1, double v2, double a)
	{
		double s; 
		
		s = v1 / (v1 - v2) * (l1 + l2 + 2 * a);
		
		return s;
	}
	
	public static double Überholzeit(double s, double v1, double v2)
	{
		double t;
		
		if(v1 < v2)
		{
			t = s / (v2 - v1);
		}
		else
		{
			t = s / (v1 - v2);
		}
		
		return t;
	}
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
2102108

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.