Du bist nicht angemeldet.

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

1

02.07.2006, 14:27

Aufgabe Kapitel 4 Alternative

hi leute,
also ich hab mal ne alternativ lösung zu der Aufgabe aus Kapitel 4 gemacht.

schreibt einfach verbsserungsvorschläge.(das mit std:cout und so hab ich noch nicht hinbekommen...)

MFG Zahlenwächter

quelltext aus dem Buch:

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 Aufgabe 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 Staerke des Charakters: ";
    cin >> Staerke;

    cout << "Bisherige Geschwindigkeit des Charakters: ";
    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 << "Staerke: " << 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;
}


und jetzt meiner:

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
#include <iostream>

using namespace std;

int erhoehe (int Staerke, int Prozent);
float erhoehe (float Geschwindigkeit, int Prozent);

int main(void)
{
    int Staerke;
    float Geschwindigkeit;
    int Prozent;

    cout << "Aktuelle Staerke:";
    cin >> Staerke;

    cout << "Aktuelle Geschwindigkeit: ";
    cin >> Geschwindigkeit;

    cout << "Prozentsatz der Steigerung: ";
    cin >> Prozent;

    Staerke = erhoehe (Staerke, Prozent);
    cout << "Neue Starke: " << Staerke << endl;

    Geschwindigkeit = erhoehe (Geschwindigkeit,Prozent);
    cout << "Neue Geschwindigkeit: " << Geschwindigkeit << endl;
    
    return 0;
} 

int erhoehe (int Staerke, int Prozent)
{
    Staerke = Staerke + (Staerke*Prozent)/100;
    return Staerke;
}

float erhoehe (float Geschwindigkeit, int Prozent)
{
    Geschwindigkeit = Geschwindigkeit + (Geschwindigkeit*Prozent)/100.0f;
    return Geschwindigkeit;
}
C# oder C++? ==> das ist hier die Frage.
"I want to die peacefully in my sleep like my grandfather. Not screaming in terror like his passengers."

Anonymous

unregistriert

2

02.07.2006, 14:40

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
// 1. Denglish sucks! 

// 2. Englische Funktionsnamen kommen besser, die Hauptfunktion von C++ heißt ja auch nicht "haupt" *würg*

// 3. use unsigned!

// 4. Angelegte Variablen immer initialisieren!!!!

// 5. using sucks

// 6. Prototypen anlegen, ist im obrigen Beispiel Unsinnig! Je mehr Zeilen man sparen kann, desto Besser!

// 7. Code ist diesmal erheblich besser als Deine Letzten und noch mal erheblich besser als der aus dem Buch! Gratu


#include <iostream>  

unsigned long add_strength (unsigned long value, unsigned long percent) 
{ 
    return (value + value * percent / 100); 
} 

float add_speed (float speed, unsigned long percent) 
{   
    return (speed + speed * percent / 100.0f); 
}

int main (void) 
{ 
    unsigned long strength = 0; 
    float speed = 0.0f; 
    unsigned long percent = 0; 

    std::cout << "Aktuelle Stärke:"; 
    std::cin >> strength; 

    std::cout << "Aktuelle Geschwindigkeit: "; 
    std::cin >> speed; 

    std::cout << "Prozentsatz der Steigerung: "; 
    std::cin >> percent; 

    std::cout << "Neue Starke: " << add_strength (strength, percent) << std::endl; 
    std::cout << "Neue speed : " << add_speed (speed, percent) << std::endl; 
    
    return 0; 
}

3

02.07.2006, 14:53

vielen dank. sieht zwar etwas ungewohnt aus aber ich werde mich damit anfreunden. ;)

MFG Zahlenwächter

prototypen bringens nur bei langem Quelltext mit vielen Methoden, stimmst? oder sind prototypen generell out?

unsigned? mein compiler macht aber automatisch unsigned oder soll das dazu dienen dass der code dann compiler unabhängig ist?
C# oder C++? ==> das ist hier die Frage.
"I want to die peacefully in my sleep like my grandfather. Not screaming in terror like his passengers."

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

4

02.07.2006, 14:54

Dein Compiler macht daraus automaitsch unsigned? Kann ich mir nicht vorstellen ...

Prototypen gehören in die Headerdatei! Nicht in eine Cpp ;)

Anonymous

unregistriert

5

02.07.2006, 14:55

Zahlenwächter
Ich benutze keine Prototypen in cpp-Dateien, wozu auch? In Headern kann ich es noch verstehen, aber nicht in cpp-Dateien.

unsigned macht Dein Compiler sicherlich nicht direkt, dann währe er richtig böse ;)

6

02.07.2006, 15:01

okay alles klar. thema geklärt.

MFG Zahlenwächter

frage am rande:
(hab letztens mal folgenden Code gesehen):

C-/C++-Quelltext

1
2
3
int main(void) {
//blablabla

}


wie findet ihr das?
C# oder C++? ==> das ist hier die Frage.
"I want to die peacefully in my sleep like my grandfather. Not screaming in terror like his passengers."

Anonymous

unregistriert

7

02.07.2006, 15:05

Da könnt ich kotzen drüber.

Vorallem bei soetwas:

C-/C++-Quelltext

1
2
3
4
5
if (gaga != false){
    printf ("bla");
}else{
    printf ("bla2");
}

Fang es erst GAR NICHT AN!

8

02.07.2006, 15:12

okay geht klar.

MFG Zahlenwächter

aber man spart doch zeilen? :lol: :lol: :lol:
C# oder C++? ==> das ist hier die Frage.
"I want to die peacefully in my sleep like my grandfather. Not screaming in terror like his passengers."

Sheddex

unregistriert

9

02.07.2006, 15:13

Zeilen sparen macht den Code übersichtlicher.
Auf diese Weise Zeilen sparen macht ihn extrem unübersichtlich ;)

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

10

02.07.2006, 15:32

OMG, sind wir hier bei Java? Ich krieg immer das Kotzen im Informatikunterricht wenn ich sehe das dieser ach so tolle jBuilder geschweifte Klammern automatisch so setzt.

Werbeanzeige