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

Korowai

unregistriert

1

23.07.2015, 20:46

struct Parameter in void Funktion

Hallo,

ich brauche etwas HIlfe. Ich habe in meinen beiden BÜchern und im Internet nichts passendes gefunden.

Ich habe eine void Funktion, die von der main aus aufgerufen wird.
In dieser void FUnktion sollen Parameter eines struct geändert und ausgegeben werden.

Ich erhalte diese Fehlermeldung: "Name des struct" was not declared in this scope

Ich weiß, dass ich die struct Paramater (acht Stück) an die Funktion übergeben müsste, als Referenz bspw., oder sollte ich Zeiger nehmen?
Ich komme da nicht richtig weiter. Mir fehlt da ein Ansatz, wie das programmiert wird.

Außerdem werden später noch andere Variablen, Klassen etc... in dieser Funktion verarbeitet werden. WIrd das dann funktionieren?

Ich brauche mal einen Crashkurs in SAchen Referenzen und Zeiger... oder bin ich auf dem Holzweg?

2

23.07.2015, 20:57

Zeig mal Code. Call by Reference ist hier das Stichwort, denke ich.

Korowai

unregistriert

3

23.07.2015, 21:11

Hi, ich stelle mal die relevanten Teile ein:

Quellcode

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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
#include ...

using namespace std;

//Globale
...

struct Preisentwicklung
{
    int Zufall;
    int Steigerung;
    int Senkung;
    float Wertentwicklung;
    float Planetpreis;
    string Boerse;
    float Kauf;
    int Warenart;

};

float Preisabfrage(float Kostenniveau);
int Deflationsabfrage(int Deflation);
int Inflationsabfrage(int Inflation);

float Preisabfrage(float Kostenniveau)
{

    int Preishoch=0;
    int Preisrunter=0;
    int Kostenentwicklung=0;
    srand (time(NULL));
    Kostenentwicklung= rand()%99+1;

    Preishoch=rand()%99+1;

    Preisrunter=rand()%99+1;
    if (Kostenentwicklung<=25)
    {
        if (Preisrunter<=35)
        {
            Kostenniveau=0,95;

        }
        else if (Preisrunter<65&&Preisrunter>35)
        {
            Kostenniveau=0,9;

        }
        else if (Preisrunter>=65&&Preisrunter<=85)
        {
            Kostenniveau=0,85;

        }
        else if (Preisrunter>85&&Preisrunter<=95)
        {
            Kostenniveau=0,8;

        }
        else
        {
            Kostenniveau=0,75;

        }

    }
    else if (Kostenentwicklung>=75)
    {
        if (Preishoch<=35)
        {
            Kostenniveau=1,05;

        }
        else if (Preishoch>=36&&Preishoch<=64)
        {
            Kostenniveau=1,1;

        }
        else if (Preishoch>=65&&Preishoch<=85)
        {
            Kostenniveau=1,15;

        }
        else if (Preishoch>=86&&Preishoch<=95)
        {
            Kostenniveau=1,2;

        }
        else
        {
            Kostenniveau=1,25;

        }
    }
    else
    {
        Kostenniveau=1;

    }



return(Kostenniveau);
}

int Deflationsabfrage(int Deflation)
{
    int Kostenentwicklung;
    srand (time(NULL));
    Kostenentwicklung= rand()%99+1;

    if (Kostenentwicklung<25)
    {
        Deflation=2;
    }
    else if (Kostenentwicklung>=25&&Kostenentwicklung<75)
    {
        Deflation=1;
    }
    else
    {
        Deflation=3;
    }
    return (Deflation);
}

int Inflationsabfrage(int Inflation)
{
    int Preishoch=0;
    int Preisrunter=0;
    int Kostenentwicklung=0;
    srand (time(NULL));
    Kostenentwicklung= rand()%99+1;

    if (Kostenentwicklung <25)
    {
        Inflation=2;
    }
    else if (Kostenentwicklung>=25&&Kostenentwicklung<75)
    {
        Inflation=1;
    }
    else
    {
        Inflation=3;
    }
    return (Inflation);

}



void Haupt ()
{

while (true)
{

int Preischance;
srand (time(NULL));
Preischance=rand()%99+1;
if (Preischance>50)
{
    float Deflationsabzug;
    float Inflationsabzug;
    Preisabfrage(Kostenniveau);
    Deflationsabfrage(Deflation);
    Inflationsabfrage(Inflation);

    if (Deflation=2)
    {
        srand (time(NULL));
    Deflationsabzug= rand()%99+1;
    Preisentwicklung.Senkung=Deflation*Deflationsabzug/100;
    };
    if (Deflation=1)
    {
        Preisentwicklung.Senkung=1;
    };
    if (Deflation=3)
    {
        srand (time(NULL));
        Inflationsabzug= rand()%99+1;
        Preisentwicklung.Senkung=Inflation*Inflationsabzug/100*2;
    };



    if (Inflation=2)
    {
        srand (time(NULL));
        Inflationsabzug=rand()%99+1;
        Preisentwicklung.Steigerung=Inflation*Inflationsabzug/100;
    };
    if (Inflation=1)
    {
        Inflation=1;
    };
    if (Inflation=3)
    {
        srand (time(NULL));
        Inflationsabzug=rand()%99+1;
        Preisentwicklung.Steigerung=Inflation*Inflationsabzug/100*2;
    };
    Preisentwicklung.Wertentwicklung=(Preisentwicklung.Steigerung*Preisentwicklung.Senkung
                                      *Kostenniveau);
}
else {Preisentwicklung.Wertentwicklung=1};

...
};

...

int main ()
{
...

Haupt();

return 0;


}



Der COmpiler erkennt in Haupt nicht den struct. WIe teile ich Haupt() den struct mit?

cojo2015

Alter Hase

Beiträge: 516

Wohnort: bei mir zu Hause

Beruf: Schüler

  • Private Nachricht senden

4

23.07.2015, 21:20

Probiere das mal aus:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void Haupt (Preisentwicklung p)
{ ... }

int main()
{
   struct Preisentwicklung
   {
       ...
   };

   // Instanz erstellen
   Preisentwicklung P; // Name ist egal

   ...
   Haupt (P);
   ...
}

5

23.07.2015, 21:21

Wenn ich das beim Überfliegen richtig gesehen habe erzeugst du keine Instanz von deinem Struct!
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

cojo2015

Alter Hase

Beiträge: 516

Wohnort: bei mir zu Hause

Beruf: Schüler

  • Private Nachricht senden

6

23.07.2015, 21:25

Wenn ich das beim Überfliegen richtig gesehen habe erzeugst du keine Instanz von deinem Struct!


:dash: Stimmt. Das hätte ich auch sehen müssen :pillepalle:

Korowai

unregistriert

7

23.07.2015, 21:31

Ach Shit, natürlich, da liegt der Hund und ist noch nicht mal begraben.

Probiere ich gleich aus.

:dash:

Korowai

unregistriert

8

23.07.2015, 21:32

SOrry für diese unqualifizierte FRage, das ist mir durchgerutscht, ich Esel

cojo2015

Alter Hase

Beiträge: 516

Wohnort: bei mir zu Hause

Beruf: Schüler

  • Private Nachricht senden

9

23.07.2015, 21:37

Egal. 6 Augen sehen nun mal mehr als 2 :D . Wenn du meinen "Fragen-Verlauf" ansiehst, wirst du viel mehr 'dumme' Fragen finden :)

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

10

23.07.2015, 21:43

Bei der Groß- und Kleinschreibung ist es allerdings auch kein Wunder, dass man das nicht sofort sieht.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige