Geschwindigkeit+Geschwindigkeitsänderung Aufgabe

Die Programmiersprache C# und Programmierung im .NET Framework/Mono
Antworten
DerSamu
Beiträge: 35
Registriert: Sa Dez 23, 2017 3:15 pm

Geschwindigkeit+Geschwindigkeitsänderung Aufgabe

Beitrag von DerSamu » Fr Dez 29, 2017 12:27 pm

Hey und zwar bins wieder mal ich.
Diesmal geht es mehr um eine Frage, welche sich mehr um das Berechnen bezieht, also ich kapiere einfach nicht wie ich etwas berechnen soll.
Hier erstmal die Aufgabenstellung:
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ösungsansatz:

Code: Alles auswählen

 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 ich mir dabei gedacht habe: Also zuerst soll der user natürlich ganz einfach die Zahlen eingeben. Danach werden die zwei Geschwindigkeiten natürlich in km/min umgewandelt, weil wir ja nicht mit Minuten und km/h rechnen könnten(alternativ könnte man auch die Minuten in Stunden umwandeln, macht aber keinen Unterschied denke ich).
Dann soll er so lange in der Schleife bleiben, bis die distanz erreicht wurde. Und hier ist dann mein Problem, weil er hier irgendwie nie aus der Schleife geht. Alles danach kapiere ich, nur eben das(was ja der Hauptteil im Grunde ist) vom rechnen her nicht.
lernender Programmierer, hauptsächlich C# und Java

mfro
Beiträge: 346
Registriert: Mi Jan 16, 2013 4:58 pm

Re: Geschwindigkeit+Geschwindigkeitsänderung Aufgabe

Beitrag von mfro » Fr Dez 29, 2017 3:12 pm

Denk' mal drüber nach, was bei einer Ganzzahldivision von z.B. 60 km/h, d.h. 1km/min / 60 min und 2 km/min / 60 min rauskommt...
It's as simple as that. And remember, Beethoven wrote his first symphony in C.

DerSamu
Beiträge: 35
Registriert: Sa Dez 23, 2017 3:15 pm

Re: Geschwindigkeit+Geschwindigkeitsänderung Aufgabe

Beitrag von DerSamu » Fr Dez 29, 2017 3:23 pm

Stimmt, da kommt ja ein falscher Wert raus, bzw ein abgeschnittener. Habs jetzt umgeändert und das Programm stimmt trotzdem noch nicht.
lernender Programmierer, hauptsächlich C# und Java

Antworten