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

01.01.2012, 20:45

Verständnisfrage listing 4.10

also, ich frage mich warum beim listing 4.10 die Parameter geändert werden uns es dennoch funktioniert... entscheidet dabei dass der Datentyp und Funktionsnamen immer noch übereinstimmen? ich leg das beispiel dazu

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
61
62
63
64
65
66
// C++ für Spieleprogrammierer
// Listing 4.10
// Verwenden von eigenen .hpp- und .cpp-Dateien
//
#include <iostream>
#include "charakter.hpp"

using namespace std;

// 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;
}

//Charakter.cpp Datei
#include "charakter.hpp"

// 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;
}

//Die .hpp-Datei

int   addProzent (int Wert,   int Prozent);
float addProzent (float Wert, int Prozent);

2

01.01.2012, 20:53

Wie "geändert werden"?

MfG
Check

3

01.01.2012, 20:56

also, bei den Funktionen steht
addProzent

C-/C++-Quelltext

1
(Staerke, Steigerung);

dann bei der deklarierung steht auf einmal

C-/C++-Quelltext

1
int   addProzent (int Wert,   int Prozent);

4

01.01.2012, 20:58

wupps, doppelpost, sorry

5

01.01.2012, 21:04

Hmm...
Die Parameter... Wie soll man das bestmöglich erklären?
Also ich versuche es mal so:
Die Parameter "Wert" und "Prozent" sind wie zwei leere Zettel zu betrachten, die du eben beschriften musst, wenn du die Funktion ausführen möchtest.
Du beschriftest die leeren Zettel, natürlich alles metaphorisch betrachtet, mithilfe von "Staerke" und "Steigerung" sowie später "Geschwindigkeit" und "Steigerung".

MfG
Check

6

01.01.2012, 21:07

aha... das heißt, ich könnt egal was hinschreiben? nur der Datentyp zählt da und in welcehr reihenfolge es geschrieben ist?

7

01.01.2012, 21:08

Nein!
Bis jetzt kannst du nur den Wert der Variablen auf den Zetteln schreiben.
Lies dich nochmal mehr ein. Das ist komplizierter und beknackter zu erklären, als es eigentlich ist. :lol:
Die Zettel haben eine bestimmte Farbe, also kannst du nur mit bestimmten Stiften darauf malen. Blau auf Blau geht ja schlecht. Naja...

MfG
Check

8

01.01.2012, 21:12

watre ich glaub ich verstehs gerade...

also wenn ich parameter angebe, gebe ich im hauptprogramm an welche Parameter die Funktion mitnehemen soll zum rechnen und so ist es einfach universal angeschrieben?

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

9

01.01.2012, 21:15

Nochmal etwas deutlicher:
Du hast zwei Zettel auf denen steht wieviel Stärke und Steigerung du hast.
Nun gibst du deiner Sekretärin einen Auftrag, sie soll die Steigerung hinzuaddieren. Dafür benötigt sie zwei werde, diese schreibst du auf andere Zettel, du kopierst sie also damit du deine Zettel behalten kannst. Sie rechnet mit ihren eigenen Zetteln, wirft diese weg und bringt dir einen neuen Zettel mit dem Wert(das wäre der Rückgabewert). Dabei ist es der Sekretärin egal ob es Stärke oder Geschwindigkeit ist. Sie weiß nur, dass sie Prozentrechnung drauf anwenden muss. Danach schreibst den neuen Wert von der Sekretärin auf dein alten Zettel für die Stärke und wirfst den Zettel der Sekretärin weg.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

10

01.01.2012, 21:17

ok... aber ich kann die Parameter auch einfach gleich benennen oder?

Werbeanzeige