algorithmus
-
Hallo,
ich habe Probleme bei einem kleinen Algorithmus. Es geht um Pausezeiten, ist ist die eigentliche Fahrtzeit gegeben und dazu sollen nach folgender Bed. Zeiten addiert werden:
Nach 4,5 h -> 1h Ruhe, dann nach 9h -> 11h Pause usw. werden die Zeiten zur Fahrtdauer aufaddiert.Wenn man z.B. 19h fährt hat man 24h Pause
4,5 h -> 1h Pause
9,0 h -> 11h Ruhe
13,5 h -> 1h Pause
18h -> 11h Ruheals erste Version habe ich es für max 4 x Pause programmiert
maxlauf=4; lauf=0; while (lauf <= maxlauf) { lauf++; switch (lauf) { case 1: if (dauer > 270) dauer = dauer + 60; break; case 2: if (dauer > 540) dauer = dauer + 660; break; case 3: if (dauer > 810) dauer = dauer + 60; break; case 4: if (dauer > 1080) dauer = dauer + 660; break; }Das möchte ich jetzt variabel machen. Je nach Höhe der Fahrtdauer, soll die Anzahl der Durchgänge bestimmt werden und entschieden werden, ob Pause oder Ruhezeit ist:
int dauer = 850; int lauf, maxlauf, lpause_max=270, lruhe_max = 540, pause = 60, ruhe = 660, stand = 0, ges_pause = 0; maxlauf=dauer/lpause_max; lauf=0; while ((lauf <= maxlauf)) { lauf++; //Prüfung ob Pause oder Ruhe und dauer entspr um pause oder ruhe addieren. // Wie mache ich das?, s.u. ist ein Versuch komme aber nicht weiter // if(stand ==0) //{ //stand == pause; //dauer = dauer +pause; //} // else // { // stand = stand +pause; // if (stand/ruhe>0) // { // dauer = dauer + ruhe; // stand = stand +ruhe; // } // else dauer = dauer + pause; // } }Kann mir bitte jemand bei dem Ansatz weiterhelfen?
vielen Dank schon mal..
-
nicht [C O D E] sondern [ C P P]
-
Ich wäre dafür Beträge die einen längern COde beinhalten und keine Tags verwenden gleich zu löschen... irgendwie nervts....
-
Gustl schrieb:
Ich wäre dafür Beträge die einen längern COde beinhalten und keine Tags verwenden gleich zu löschen... irgendwie nervts....
++++
-
Es gibt halt nicht in jedem Forum cpp-Tags...
Und er hat auch code-tags gesetzt aber scheinbar auch BBCode deaktiviert...
Ich unterstell ihm keine bewusste Schlampigkeit.Zum Thema:
Findest du das direkte Arbeiten mit den Studen nicht etwas aufwändig? Merk dir doch einfachg die Anzahl der 4,5-stündigen Abschnitte.
Und dann dynamisch die Stunden zusammenrechnen, z.B.int semiSteps = m_steps / 2; int lastStep = m_steps % 2; double hoursOnTheRoad = m_steps * 4.5; // die gefahrenen Stunden hoursOnTheRoad += semiSteps * 1; // die ersten 4,5 einer 9 Stunden-Rallye hoursOnTheRoad += semiSteps * 11; // die zweiten 4,5 einer 9 Stunden-Rallye hoursOnTheRoad += lastStep * 1; // Falls nochmal eine 4,5h angefangen wurde hoursOnTheRoad += m_counter; // m_counter zählt von 0 bis 4,5. Da wird dann auf 0 gesetzt und m_steps um 1 inkrementiert.Das wäre mein Ansatz.