Programmieren - alles kontrollieren 4.935 Themen, 20.621 Beiträge

Frage zu einer Brechnung (Noob Frage, C++)

Selecta / 17 Antworten / Flachansicht Nickles

Habe mit (Borland C++ Builder 5.0 prof.) folgenden Code geschrieben.
Die Aufgabe war: Ein Bus nimmt pro Person 0.10 Euro und pro gefahrenen Kilometer nochmals 0.10 Euro. Eine Person (Der Leiter) zahlt nur die Hälfte, jede 10. Person fährt Gratis.
Meine Hauptfrage: Wie berechne ich den Gratisbetrag ? Personen / 10 geht ja nicht, da da ein Rest uebrig bleibt, etwa (15/10 = 1.5) und das wäre mehr Freibetrag als es eigentlich sein soll.


#include <iostream>
#include <iomanip>
#include <conio.h>
#include <windows.h>


void main()
{


float person, cost = 0.10, distance, chief, free; // chief soll der Leiter sein, free der Freipreis
cout << "Geben sie die Anzahl der Personen ein: ";
cin >> person;


if (person < 10);   // Dachte ich mach mal mit if, hilft mir nicht, da ich die Berechnung nicht kann, außer person ist < als 10, da die Rechnung wegfiele...
{
cout << endl << "Geben (A) sie die Laenge der Strecke ein: ";
cin >> distance;
cout << endl << "Die Gesamtkosten belaufen sich auf: " <<
((person + distance) * cost) - (cost * 0.5) << " Euro" ;   // Personen und Entfernung * 0.10 und dann fuer eine Person (den leiter) die Haelfte des Peises abziehen
getch();
}


if (person > 10);
{
cout << "Geben (B) sie die Laenge der Strecke ein: ";
cin >> distance;
cout << setprecision(2);
cout << endl << "Die Gesamtkosten belaufen sich auf: " <<
((person * distance) * cost) - (cost * 0.5) - (           ) // so hier weiss ich nicht, was ich da jetzt abziehen soll ... 2 frage; wenn ich nun am anfang mehr als 10 eingebe, kommt trozdem der if < 10 Block ! Warum das?
getch();
}


getch();
}


 


Hoffe ihr versteht mein Problem ... Is bestimmt ganz simpel ... Aber halt schwer zu erklären

GreeTz Selecta

bei Antwort benachrichtigen
BIMEX Selecta „Frage zu einer Brechnung (Noob Frage, C++)“
Optionen

Hab´ keine Ahnung, ob es unter C++ eine Wenn/Dann Funktion gibt (wenn WERT > X dann Formel Y sont Formel Z) gibt, denke wohl ja, dann könnte man über komplexe Formelwerte an die Lösung kommen.

Ist aber vielleicht auch folgender Denkanstoss hilfreich ? Es handelt sich bei dem genannten Ansatz um ein Lösungergebnis aus gerundeter Multiplikation von Faktoren. Es müsste nun der sogenannte "kleinste gemeinsame ganzzahlige Nenner" herausgefunden werden.

Beispiel:

100 Plätze pro Bus
10 Euro cent pro Person
10 Euro cent pro km
5 Euro cent pro Leiter
5 Euro cent pro Leiter und km
0 Euro cent für jeden 10 Fahrgast
0 Euro cent für jeden km des 10 Fahrgasts

M.E. ist 5 der kleinste gemeinsame ganzzahlige Nenner, passt 1 mal in Bezug auf den Leiter und seine Leiter/km, passt 2 mal pro Person und Person/km, passt 50 mal in Bezug auf die zur Verfügung stehenden Busplätze und passt 0 mal in Bezug auf jeden 10 Fahrgast, passt 10 mal pro max. Busplätze usw.

Die Zahl 5 ist allen ganzzahlig gemeinsam und sollte in der Berechnungsformel als verbindendes Element zur Erreichung des Endergebnisses zugrunde liegen.

Nur so eine Idee für einen möglichen Formelansatzpunkt ...



bei Antwort benachrichtigen