schleife inkl switch
-
hallo, ich bin neu mit c++. muss für ein schulprojekt eine aufgabe verwirklichen
und komme da absolut nicht weiter. vielleicht kann mir mal einer helfen?die aufgabe:
Weitsprungwettbewerb, Lehrer trägt sprungweite in eine liste ein.
Nach 3 Monaten wird die Leistungsabnahme wiederholt.
Es gibt 2 Möglichkeiten der Bewertung:
1.Note wird abhängig von Sprungweite ermittelt:
Sprungweite Note
Über 5m 1
4,75-4.99 2
4.50-4,74 3
4,25-4,49 4
4,00-4,24 5
unter 4 62.Steigerung der Sprungweite wird bewertet:
Steigerung Note
Mehr als 50cm 1
40-49cm 2
30-39 3
20-29 4
10-19 5
Unter 10 6Beide Bewertungsmöglichkeiten werden herangezogen und diejeniege, welche die bessere Note ergibt wird in die Notenliste eingetragen:
Die Aufgabe: c++ Programm welches Sprungweite am jahresanfang und die steigerung einliest und dann die note auf dem bildschirm ausgibt. vorgang soll so of wiederholt werden, bis der nutzer das programm beendet.
bei programmende soll die insgesamt beste sprungweite und gröpte leistungssteigerung auf dem bildschirm ausgegeben werden.So, ich hab schon echt einiges versucht, und ich kriegs einfach nicht hin, wie gesagt bin auch neu.
Mein Ansatz wäre:#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { char eing; int i = 0; while(i==0){ cout<<"Sprungweite in Metern[a]:"<<endl; cout<<"Steigerung in Centimetern[b]:"<<endl; cout<<"Beende [x]"<<endl<<endl; cout<<"Auswahl: "; cin>>eing; switch(eing){ case 'a':{ } } } system("PAUSE"); return EXIT_SUCCESS; }bin für jeden tip dankbar.
/edit pumuckl: cpp-Tags. Nächstemal bitte selbst dran denken!
-
Du solltest in jedem Schleifendurchlauf BEIDE Werte einlesen (Sprungweite und Steigerung). Danach kannst du deine Berechnungen anstellen, um daraus die Note zu ermitteln.
PS: Ich war mal so frei, deinen Beitrag auszulagern - in dem alten Thema hatte er nichts zu suchen.
-
Socke schrieb:
Sprungweite Note
Über 5m 1
4,75-4.99 2
4.50-4,74 3
4,25-4,49 4
4,00-4,24 5
unter 4 62.Steigerung der Sprungweite wird bewertet:
Steigerung Note
Mehr als 50cm 1
40-49cm 2
30-39 3
20-29 4
10-19 5
Unter 10 6-> benutze hier eine if else Anweisung
um zu sehen welche note besser ist auch eine if anweisung-> das maximum musst du in der Schleife bereits berechnen
if(max_Sprungweite<Sprungweite[i]) max_Sprungweite=Sprungweite[i];
dasselbe musst du dann mir der Steigerung machen
zuvor musst du noch beide variablen deklarieren und auf null setzenEDIT: wenn du es trotzdem nicht hinbekommst, sag einfach wo du hängen bleibst
-
Lies doch einfach zwei Variablen 'old_length' und 'new_length' ein.
Und dann das:
double length_difference = old_length - new_length; int mark = std::min(6 - ((new_length >= 5) + (new_length >= 4.75) + (new_length >= 4.5) + (new_length >= 4.25) + (new_length >= 4)), 6 - ((length_difference >= 50) + (length_difference >= 40) + (length_difference >= 30) + (length_difference >= 20) + (length_difference >= 10)));Wenn du das verstanden hast, bist du schon mal nicht schlecht
