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

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

21

22.04.2006, 17:26

Ich wollte jetzt nich erst eine Klasse schreiben, nur um zu zeigen, wie man die als Referenz übergibt. Dass man int als Variable übergeben kann, anstatt als Referenz ist mir auch klar. Ich dachte nur, dass das Beispiel den Unterschied zwischen konstant und nicht konstant ausreichend verdeutlicht.

22

24.04.2006, 20:30

Also liegt es an der Funktion oder an der main Funktion (jaja etwas doof geschrieben...)
Gruß

kalo

--------------------------------------------------------------
Wichtig:
Das Krümmelmonster darf aus Gesundheitsgründen nurnoch Gemüse essen.

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

23

24.04.2006, 20:53

Es liegt an der Funktion Steigerung, da die Variblen nicht "überschrieben" werden, siehe Thema Referenz / Pointer in diesem Thread.

24

24.04.2006, 21:24

Ok vielen dank *fleissig versuch aber irgendwie nich hinbekomm*


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
//die Funktion:



void Steigerung (int Strengh, int Agility, int neu, int neu2)

{
neu = Strengh/10;
Strengh = neu + Strengh;
neu2 = Agility/10;
Agility = neu2+ Agility/10;

} 



void Steigerung (float Strengh, float Agility, float neu, float neu2)

{
neu = Strengh/10;
Strengh = neu + Strengh;
neu2 = Agility/10;
Agility = neu2+ Agility/10;

} 
Gruß

kalo

--------------------------------------------------------------
Wichtig:
Das Krümmelmonster darf aus Gesundheitsgründen nurnoch Gemüse essen.

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

25

24.04.2006, 21:32

du hast es immernoch nicht verstanden, les dir den Text oben nochmal durch.

C-/C++-Quelltext

1
2
3
4
5
void Steigerung (int &Strengh, int &Agility)
{
Strengh = Strengh+5;
Agility = Agility + 7;
}

26

24.04.2006, 21:35

Zitat von »"koschka"«

du hast es immernoch nicht verstanden, les dir den Text oben nochmal durch.

C-/C++-Quelltext

1
2
3
4
5
void Steigerung (int &Strengh, int &Agility)
{
Strengh = Strengh+5;
Agility = Agility + 7;
}


Es soll ja aber ne Prozentsteigerung sein, aber danke
Gruß

kalo

--------------------------------------------------------------
Wichtig:
Das Krümmelmonster darf aus Gesundheitsgründen nurnoch Gemüse essen.

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

27

24.04.2006, 21:47

xEs war doch nicht bös gemeint, du hast aber den Referenzoperator (&) nicht verstanden, in welchem Umfang sich das ändert ist doch wurst

28

25.04.2006, 13:22

aber er ist ja auch erst in Kapitel 4 und Zeiger und Referenzen kommen erst in Kapitel 6 dran. Und ich denke mal, man soll 2 Funktionen schreiben die jeweils den neuen Wert zurückliefern. Wie es im dem Tipp vorgeschlagen wird.
Ich gebe bei der Arbeit immer 100%

6% Montags
30% Dienstags
35% Mittwochs
25% Donnerstag
4% Freitag

29

25.04.2006, 15:30

Öhh hab ich das im ersten vollständig quelltext struktuell net richtig gemacht?
Gruß

kalo

--------------------------------------------------------------
Wichtig:
Das Krümmelmonster darf aus Gesundheitsgründen nurnoch Gemüse essen.

30

25.04.2006, 16:36

Die Funktionen müssen den Wert zurückliefern den du veränderst.

Du musst das so machen:

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

//--------------------------------------------

// Name: AddPrecent

// Typ: Funktion

// Zweck: Verändert einen Wert vom Typ int

//            um einen bestimmten Prozentsatz

//---------------------------------------------         

int AddPercent (int iValue, int iPercent);

//--------------------------------------------

// Name: AddPercent

// Typ: Funktion

// Zweck: Verändert einen Wert vom Typ float

//            um einen bestimmten Prozentsatz

//--------------------------------------------

float AddPercent (float fValue, int iPercent);

//--------------------------------------------

// main - Funktion

//--------------------------------------------

int main ()
{
          int iStrength = 30;
          float fSpeed = 50;
          int iPercentage = 10;

          // Ausgabe der Werte

          std::cout << "Bisherige Stärke: " << iStrength << std::endl;
          std::cout << "Bisherige geschwindigkeit: " << fSpeed << std::endl;

          // Berechnung der neuen Werte

          iStrength = AddPercent (iStrength, iPercentage);
          fSpeed = AddPercent (fSpeed, iPercentage);

          // Neue Werte ausgeben

          std::cout << std::endl << "Neue Stärke: " << iStrength << std::endl;
          std::cout << "Neue Geschwindigkeit: " << fSpeed << std::endl;

          return 0;
}

//--------------------------------------------

// AddPercent

//--------------------------------------------

int AddPercent (int iValue, int iPercent)
{
         return iValue + iValue / 100 * iPercent;
}

//--------------------------------------------

// AddPercent

//--------------------------------------------

float AddPercent (float fValue, int iPercent)
{
        return fValue + fValue / 100 * iPercent;
}
Ich gebe bei der Arbeit immer 100%

6% Montags
30% Dienstags
35% Mittwochs
25% Donnerstag
4% Freitag

Werbeanzeige