Folgendes Problem bei folgender Übungsaufgabe:
Ein Auto startet zum Zeitpunkt 0 mit der Geschwindigkeit startGeschwindigkeit (positive Ganzzahl in km/h). Alle 30 Minuten erhöht das Fahrzeug die Geschwindigkeit um geschwindigkeitsZuwachs (positive Ganzzahl in km/h). Nach wie vielen Stunden und Minuten (auf zwei Nachkommastellen genau) erreicht das Auto das Ziel in entfernung (positive Ganzzahl in km).
Der Benutzer ist aufzufordern, über die Tastatur die Vorgaben einzugeben.
Das Programm gibt das Ergebnis aus
Und hier drei Testvorgaben: 1.: startGeschwindigkeit: 0, Geschwindigkeitszuwachs: 10 Entfernung: 5 Ankunft: 01:00
2.: startGeschwindigkeit: 0, Geschwindigkeitszuwachs: 1 Entfernung: 5 Ankunft: 02:30
3.: startGeschwindigkeit: 0, Geschwindigkeitszuwachs: 1 Entfernung: 7 Ankunft: 02:54
Mein Lösungsversuch:
Was genau stimmt nicht, und könnte mir jemand bei der Berechnung generell helfen? Wär super...
Sidenote: Ich will NICHT einen Code oder eine Komplettlösung erhalten. Ich kapiere nur überhaupt nicht, wie man das hier berechnet, und ob ich denn auf dem richtigen Weg bin. Das /=60 über der Schleife dient dazu, die km/h in km/min umzurechnen.
Ein Auto startet zum Zeitpunkt 0 mit der Geschwindigkeit startGeschwindigkeit (positive Ganzzahl in km/h). Alle 30 Minuten erhöht das Fahrzeug die Geschwindigkeit um geschwindigkeitsZuwachs (positive Ganzzahl in km/h). Nach wie vielen Stunden und Minuten (auf zwei Nachkommastellen genau) erreicht das Auto das Ziel in entfernung (positive Ganzzahl in km).
Der Benutzer ist aufzufordern, über die Tastatur die Vorgaben einzugeben.
Das Programm gibt das Ergebnis aus
Und hier drei Testvorgaben: 1.: startGeschwindigkeit: 0, Geschwindigkeitszuwachs: 10 Entfernung: 5 Ankunft: 01:00
2.: startGeschwindigkeit: 0, Geschwindigkeitszuwachs: 1 Entfernung: 5 Ankunft: 02:30
3.: startGeschwindigkeit: 0, Geschwindigkeitszuwachs: 1 Entfernung: 7 Ankunft: 02:54
Mein Lösungsversuch:
Code:
string userInput;
double startVelocity;
double changeOfVelocity;
int distance;
double minutes=0;
int hours=0;
Console.WriteLine("Ziel mit steigender Geschwindigkeit ansteuern");
Console.WriteLine("=============================================");
Console.Write("Startgeschwindigkeit: ");
userInput = Console.ReadLine();
startVelocity = Convert.ToInt32(userInput);
Console.Write("Geschwindigkeitszuwachs: ");
userInput = Console.ReadLine();
changeOfVelocity = Convert.ToInt32(userInput);
Console.Write("Entfernung: ");
userInput = Console.ReadLine();
distance = Convert.ToInt32(userInput);
startVelocity /= 60;
changeOfVelocity /= 60;
while (distance != startVelocity * minutes)
{
minutes +=30;
startVelocity += changeOfVelocity;
}
if (minutes >= 60)
{
hours = (Int32)minutes / 60;
minutes %= 60;
}
Console.WriteLine();
Console.WriteLine($"Fahrzeit: {hours} Stunden und {minutes:f} Minuten");
Console.Write("Programm mit einer beliebigen Taste beenden...");
Console.ReadKey();
Was genau stimmt nicht, und könnte mir jemand bei der Berechnung generell helfen? Wär super...
Sidenote: Ich will NICHT einen Code oder eine Komplettlösung erhalten. Ich kapiere nur überhaupt nicht, wie man das hier berechnet, und ob ich denn auf dem richtigen Weg bin. Das /=60 über der Schleife dient dazu, die km/h in km/min umzurechnen.
Zuletzt bearbeitet: