Function funktioniert nicht?
-
Für short nochmal;
würde ich lieber bool verwenden.
-
Also danke mal für die antworten^^
das mit bool funzt nicht wegen -->
cin >> nochmal;
und das mit den vordeklarieren funzt
aber leider erkennt er alle variablen drinnen nicht...
also alle die in den functionen verwendet werdenthx
-
Variablen, die in einem Block definiert werden, verlieren ihre Gültigkeit beim verlassen des Blocks.
... int a; while... { int b=0; ... } //ab hier gibt es b nicht mehr ...
-
max_1 usw. ist in max_punkte() auch nicht definiert. Du solltest das anders lösen - aber nicht unbedingt mit globalen Variablen.
Überhaupt hast du das Prinzip einer Funktion nicht so ganz verstanden. Es ist nicht so gedacht, dass du in einer Funktion die eine Eingabe machst, in einer andere Funktion die nächste, usw.
Eine Funktion sollte eine in sich abgeschlossene Aufgabe erfüllen (z.B. den Notendurchschnitt berechnen) und dann EINEN Wert zurückliefern.
-
Ich würd jetzt auch mal spontan empfehlen, anstall einzelne Variablen, ein Array zu deklarieren. Damit kannst Du zumindest mal die Länge deines Codes um einen exorbitant
hohes Maß verkürzen, und somit schneller programmieren, besser Fehler finden und bessere Programme schreiben.
Bsp an Deinem Code:
Du schreibst:int max_1,max_2,max_3,max_4,max_5;//__________________________________________ MAximale Punkte Anzahl pro bsp. /*... hier steht andere Code von Dir, den wir jetzt mal kurz bis hier über springen ;) ...*/ cout << " Die Maximale Punkteanzahl für Bsp.1? :"; cin >> max_1; cout << endl; cout << " Die Maximale Punkteanzahl für Bsp.2? :"; cin >> max_2; cout << endl; cout << " Die Maximale Punkteanzahl für Bsp.3? :"; cin >> max_3; cout << endl; cout << " Die Maximale Punkteanzahl für Bsp.4? :"; cin >> max_4; cout << endl; cout << " Die Maximale Punkteanzahl für Bsp.5? :"; cin >> max_5; cout << endl;
SCHRECKLICH ;), wie wärs hiermit. Das erfüllt den gleichen Zweck:
int maxPunkte[5]; // hier deklarierst Du ein Array für 5 Werte, // statt 5 verschiedene Variabelen (max_1 bis max_5), und Du kannst längere // Kommentare einfügen :) /*....hier steht sonstiger Code ...*/ //jetzt kannst du das obige Zitat durch folgende Schleife um Zeilen verkürzen for( int i = 0; i < 5; ++i) { cout << " Die Maximale Punkteanzahl für Bsp." << (i+1) << "? :"; // i fängt bei 0 an also im ersten Durchlauf i+1 =1 ; //zweiter Durchlauf i= 1 also dann 2; usw... cin >> maxPunkte[i]; /*... i läuft von 0 bis 4 und maxPunkte speichert 5 verschiedene Werte...*/ }
mfg
tom
-
Hoho thx^^
hmm noch ne frage..
wie krieg ich dann die if anweisung hin?
also das -->if( punkte_1 <= max_1 && punkte_2 <= max_2 && punkte_3 <= max_3 && punkte_4 <= max_4 && punkte_5 <= max_5)
und das-->
summe = punkte_1 + punkte_2 + punkte_3 + punkte_4 + punkte_5;
Büdde helft mir schnell
-
statt punkte_1 punkte[0] statt punkte_2 punkte[1] statt punkte_3 punkte[2] etc.
-
hust stimmt ja^^
thx davie und an alle die mir geholfen haben..
-
so wieder ein problem^^
hier mal der code:
// +++++++++++++++++++++++++ Include-Files ++++++++++++++++++++++++ #include <iostream.h> #include <math.h> #include <stdlib.h> //int max_punkte(); int reel_punkte(); // +++++++++++++++++++++++++ Hauptprogramm ++++++++++++++++++++++++ int main () { // +++++++++++++++++++++++++++ Constante ++++++++++++++++++++++++++++ const max=100; const maxpt=20; // +++++++++++++++++++++++++++ Variablen +++++++++++++++++++++++++++++ int Punkte[5]; double summe; //______________________________________________________________ Das Endergebnis short nochmal; //______________________________________________________________ Ob man nochmal will.. // ++++++++++++++++++++++++ Beginn Konversation =) ++++++++++++++++++++++++++ cout << endl; cout << " ---------------------------------------------------------------------------------------" << endl; cout << " Willkommen bei Simons Notenberechnungs Programm :)" << endl; cout << " Mit diesem Programm hast du die Moeglichkeit einen Test/Schularbeit dynamisch berechnen zu lassen." << endl; cout << " Also lass uns beginnen..." << endl; cout << " PS: Ich nehme einmal an das es 5 Bsp. sind. ( Bei Anfrage koennen es auch mehr werden^^ )" << endl; cout << " ---------------------------------------------------------------------------------------" << endl; cout << endl; // +++++++++++++++++++++++++++++++ Abfragen² ++++++++++++++++++++++++++++++++ cout << " So, Jetzt gehts ans Eingemachte :D " << endl; cout << " Hier darfst du jetzt eingeben wieviele Punkte ein Schueler bei dem jeweiligen/n Bsp. erreicht hat!" << endl; cout << endl; reel_punkte(); // +++++++++++++++ Falls jetzt ein Eierschädeln nen Scheiß eingibt -.- ++++++++++++++++++ if( summe >= 0 && summe <= 50) { cout << " Das is ein Mordsdrum Fleck :'(" << endl; } else if( summe >= 51 && summe <= 62) { cout << " Grad noch die Kurve gekratzt^^" << endl << " Note: 4" << endl; } else if( summe >= 63 && summe <= 75) { cout << " Solide Leistung!" << endl << " Note: 3" << endl; } else if( summe >= 76 && summe <= 87) { cout << " Hohoho... Eine flotte 2 :)" << endl; } else if( summe >= 88 && summe <= 100) { cout << " Schui.. Ein Sehr gut!!! --> 1" << endl; } cout << " So das wars jetzt..." << endl; cout << " Willst du nochmal?" << endl << endl; cout << " Gib 1 fuer ein nochmaliges Starten des Progamms ein!: "; cin >> nochmal; if( nochmal==1 ) { system("cls"); //max_punkte(); reel_punkte(); } system("pause"); return 0; } // ++++++++++++++++++++++++++++++ Abfragen ++++++++++++++++++++++++++++++++++ int reel_punkte() { int Punkte[5]; double summe; // +++++++++++++++++++++++++++++++ Abfragen² ++++++++++++++++++++++++++++++++ for( int i = 0; i < 5; ++i) { cout << "Beispiel " << (i+1) << " --> Punkte? : "; cin >> Punkte[i]; cout << endl; summe = Punkte[0] + Punkte[1] + Punkte[2] + Punkte[3] + Punkte[4]; } return 0; }
ich möchte das man pro abfrage nur 20 punkte maximal eingeben darf und somit das ergebniss auch nicht mehr als 100 betragen darf..
Wie verwirkliche ich das?Noch ein problem --> er umgeht mir die ausgaben für die noten..--> if(..&&..) dann blabla
An was liegt das?
Bite um dringende hilfe
thx mani
-
Büdde helft mir schnell 8[
-
bin zwar kein 'jungs', aber deine funktion kennt zwar die summe, dein main programm jedoch nicht.
variablen sind in blöcken gültig, also die summe in der funktion eben nur in der funktion.
möchtest du sie bleibend auch in der main verändern, dann nutze referenzen oder pointer (siehe dazu auch volkards kurs im tutorial teil)
zum bleistift
int reel_punkte(int Punkte[], int &summe)
wäre eine möglichkeit.
so long erstmal
-
werde ich probieren..
thx
PS: jungs=>sollte sachlich gesehen werden.. also werde auch frauen angesprochen^^