Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
das Programm hat zwar die Aufgabe erfüllt, auch wenn ich Einiges wie return, lokale Variablen in den Funktionen, void Bezeichnung der Funktionen statt int & float und der Zuweisung 33-34 nicht verwendet habe.
Ich hatte beim Testen ein Verständnisproblem. Ist es richtig, das Stärke die Werte nach dem , nicht im Endergebnis anzeigt, weil im main die Variable als int deklariert ist? Beim lesen der Aufgabenstellung und Lösung hab ich den Eindruck das, das Programm selbst entscheiden soll float oder int und sich entsprechende Funktion auswählt.
Was mich auch etwas verwirrt, an sich verstehe ich den Aufbau der Funktionen, nur am Ende gibt er mit "return neuerWert" die lokale Variable als Ergebnis zurück. Bei der Zuweisung hat er aber dann wieder die normale main Variable "Staerke & Geschwindigkeit" in der Funktion drin.
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
// C++ für Spieleprogrammierer // Listing 4.9 // Lösungsvorschlag zur Abgabe in Kapitel 4 // #include <iostream> using namespace std; int addProzent(int Wert, int Prozent); float addProzent(float Wert, int Prozent); // Hauptprogramm // int main() { // Variablen // int Staerke; float Geschwindigkeit; int Steigerung; // Abfrage der Werte cout << "Bisherige Starke des Charatkters: "; cin >> Staerke; cout << "Bisherige Geschwindigkeit des Charaktiers: "; cin >> Geschwindigkeit; cout << "Steigerung in Prozent: "; cin >> Steigerung; // Neue Werte berechnen Staerke = addProzent(Staerke, Steigerung); Geschwindigkeit = addProzent(Geschwindigkeit, Steigerung); // Ausgabe der neuen Werte cout << "\nNeue Charakterwerte: " << endl; cout << "Starke: " << Staerke << endl; cout << "Geschwindigkeit: " << Geschwindigkeit << endl; return 0; } // addProzent (für Integer-Werte) // int addProzent(int Wert, int Prozent) { int neuerWert; neuerWert = Wert + (Wert*Prozent / 100); return neuerWert; } // addProzent (für float-Werte) // float addProzent(float Wert, int Prozent) { float neuerWert; neuerWert = Wert + (Wert*Prozent) / 100.0f; return neuerWert; } |
C-/C++-Quelltext |
|
1 2 |
void addProzent (int Staerke, int Prozentsatz); void addProzent (float fGeschwindigkeit, int Prozentsatz); |
C-/C++-Quelltext |
|
1 2 3 4 |
void addProzent (int Staerke, int Prozentsatz) { (Staerke*Prozentsatz)/100+Staerke; } |
C-/C++-Quelltext |
|
1 |
cout << "Neue Staerke: " << addProzent (int Staerke, int Prozentsatz) << endl; |
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Golden_Boy« (09.06.2015, 16:13)
Ich hab jetzt 1zu1 die Lösung abgetippt und er zeigt ebenfalls bei der Stärke keine Nachkommastellen an.
Ich hab meinen Quelltext meiner Lösung leider nicht gespeichert. Das Endergebnis war so wie ich das jetzt sehe das Gleiche nur hab ich eben folgende Codeteile anders.
C-/C++-Quelltext
1 2 void addProzent (int Staerke, int Prozentsatz); void addProzent (float fGeschwindigkeit, int Prozentsatz);
Die Funktion an sich hatte ich so...
C-/C++-Quelltext
1 2 3 4 void addProzent (int Staerke, int Prozentsatz) { (Staerke*Prozentsatz)/100+Staerke; }
in den mainbereich hatte ich es einfach so eingebaut
C-/C++-Quelltext
1 cout << "Neue Staerke: " << addProzent (int Staerke, int Prozentsatz) << endl;
Zuweisung aus Zeile 32-34 fehlt.
C-/C++-Quelltext |
|
1 2 |
cout << "Neue Staerke: "; addProzent (int Staerke, int Prozentsatz): << endl; |
das Programm hat zwar die Aufgabe erfüllt, auch wenn ich Einiges wie return, lokale Variablen in den Funktionen, void Bezeichnung der Funktionen statt int & float und der Zuweisung 33-34 nicht verwendet habe.
C-/C++-Quelltext |
|
1 |
void addProzent(int[b]&[/b] Staerke, int[b]&[/b]Prozentsatz); |
Beim lesen der Aufgabenstellung und Lösung hab ich den Eindruck das, das Programm selbst entscheiden soll float oder int und sich entsprechende Funktion auswählt. Grad wegen der neutralen Variablenbezeichnung "Wert und Prozent", die ja für Stärke/Geschwindigkeit und Steige
C-/C++-Quelltext |
|
1 |
int addProzent(int Staerke, int Prozentsatz); |
C-/C++-Quelltext |
|
1 |
float addProzent(int Staerke, int Prozentsatz); |
Was mich auch etwas verwirrt, an sich verstehe ich den Aufbau der Funktionen, nur am Ende gibt er mit "return neuerWert" die lokale Variable als Ergebnis zurück. Bei der Zuweisung hat er aber dann wieder die normale main Variable "Staerke & Geschwindigkeit" in der Funktion drin.
C-/C++-Quelltext |
|
1 2 3 |
std::cout << "Adresse Staerke: " << &Staerke << "Wert Staerke: " << Staerke << std::endl; std::cout << "Adresse Staerke: " << &Prozentsatz<< "Wert Prozentsatz: " << Prozentsatz<< std::endl; std::cout << "Adresse neuerWert: " << &neuerWert<< "Wert neuerWert: " << neuerWert<< std::endl; |
Wie kommt der Wert der Variablen von z.B. bei int Staerke; in int Wert; in der Funktion?
C-/C++-Quelltext |
|
1 2 3 |
Staerke = addProzent(Staerke, Steigerung); // ersetzen mit Staerke = addProzent(50, Steigerung); |
Werbeanzeige