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

CBenni::O

1x Contest-Sieger

Beiträge: 1 145

Wohnort: Stuttgart

  • Private Nachricht senden

11

09.07.2010, 18:04

Siehe alle Post vor diesem hier :rolleyes:

Ein Prototyp, ein Funktionsaufruf...
Lies dir WIRKLICH mal das Kapitel zu den Funktionen noch einmal durch...
mfg CBenni::O
Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.
42!
Aufräumen kann jeder, nur das Genie überblickt das Chaos!
Metal will never die!
1. Sppro Gamecontest - mein Beitrag

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

12

09.07.2010, 18:15

S_Spieler Spieler1 ist das gleiche wie int Zahl1, nur fuer den Typ Spieler.

BTW ist der Code ziemlicher Schwachsinn.
Naja, das soll er ja auch sein, oder nicht?!

C-/C++-Quelltext

1
2
// Listing 6.1
// Nachteile ohne Zeiger
Aber auch ohne Zeiger kann man das besser loesen. Aber wenn das ein Beispiel fuer Schwachsinn ist, dann ist es wenigstens gelungen.

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

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

  • Private Nachricht senden

13

09.07.2010, 18:16

Lies dir WIRKLICH mal das Kapitel zu den Funktionen noch einmal durch...

+ das mit den variablen und spiel ein bisschen damit. schreib programme in denen du das gelernte anwendest, nur so kann man programmieren lernen.
"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?

jonnesen

Frischling

  • »jonnesen« ist der Autor dieses Themas

Beiträge: 58

Wohnort: Brandenburg, Templin

Beruf: Schüler

  • Private Nachricht senden

14

09.07.2010, 18:50

also wenn ich euch jetzt richtig verstanden habe dann könnte ich für (Spieler1) in Z. 40 (S_Spieler) schreiben oder wie?



Gruß Jonas

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

15

09.07.2010, 19:41

also wenn ich euch jetzt richtig verstanden habe dann könnte ich für (Spieler1) in Z. 40 (S_Spieler) schreiben oder wie?



Gruß Jonas
Koenntest du statt int einfach Zahl1 schreiben?

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

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

  • Private Nachricht senden

16

09.07.2010, 20:04

S_Spieler(datentyp) ist wie eine formular(z.b. ein überweisungsauftrag) das du beliebig oft kopieren und andere werte eintragen kannst(so wie deine Zahl1 oder Spieler1. das nennt man ein instanz oder ein objekt). jede kopie brauch eine/n eindeutige/n namen/ID damit du die auf die eingetragenen werte zugreifen kannst. "gib mir mal überweisungsauftrag nummer 0815 an herrn sowieso"
deine funktion nimmt nun genau diese art von überweisungsschein(S_Spieler) an, nichts anderes, kopiert sie, gibt der kopie einen temporären namen, bearbeitet sie und schickt eine kopie von dem bearbeiteten überweisungsschein zurück.
"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?

jonnesen

Frischling

  • »jonnesen« ist der Autor dieses Themas

Beiträge: 58

Wohnort: Brandenburg, Templin

Beruf: Schüler

  • Private Nachricht senden

17

10.07.2010, 09:37

also muss bei der verwendung/aufruf der funktion die instanz/kopie der struktur in der parameterliste?? angegeben werden und bei dem prototyp und der definition der richtige name der struktur...z.B.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// Prototypen
//
S_Spieler NameAbfragen (S_Spieler Spieler1); 

 // Name des Spielers abfragen
    Spieler1 = NameAbfragen (Spieler1);   
    cout << "Neuer Spieler: " << Spieler1.Name << endl;

S_Spieler NameAbfragen (S_Spieler Spieler1) 
{
    // Name abfragen
    cout << "Name des Spielers: ";
    cin.get (Spieler1.Name, 29);

    return Spieler1;
} // NameAbfragen






Zitat von »CBenni::O«



Lies dir WIRKLICH mal das Kapitel zu den Funktionen noch einmal durch...

+ das mit den variablen und spiel ein bisschen damit. schreib programme in denen du das gelernte anwendest, nur so kann man programmieren lernen.

ich habe das kapitel mit den funktion verstanden :) auch wenn das nicht so aussehen mag....ich hab bis jetzt jedes code Bsp. mit funktionen verwendet....ich komm jetzt i-wie durch einander weil in den klammern(parameterliste)verschiedene sachen stehen...daon war im buch noch nie die rede 8|

Gruß Jonas

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

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

  • Private Nachricht senden

18

10.07.2010, 11:02

Zitat

also muss bei der verwendung/aufruf der funktion die instanz/kopie der struktur in der parameterliste?? angegeben werden und bei dem prototyp und der definition der richtige name der struktur...z.B.

so ist es.
dein problem lag also eher bei den variablen und strukturen. zur not kannst du dir nochmal kapitel 5.9 "was sind strukturen, und wozu dienen sie?" anschauen.

Zitat

weil in den klammern(parameterliste)verschiedene sachen stehen...daon war im buch noch nie die rede 8|

eigentlich schon. du hattest sonst nur einen primitiven datentyp(z.b. int). jetzt übergibst du einen benutzerdefinierten typ.
im zahlenraten(kapitel 4.13, zeilen: 14, 26, 68, 127) wird das genau so gemacht wie in diesem beispiel
"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?

jonnesen

Frischling

  • »jonnesen« ist der Autor dieses Themas

Beiträge: 58

Wohnort: Brandenburg, Templin

Beruf: Schüler

  • Private Nachricht senden

19

10.07.2010, 12:49

ok danke für den hinweis nachoman :)



das habe ich jetzt verstanden ,dass der datentyp(in meinem fall struktut/S_Spieler) nicht bei dem aufruf der funktion angegeben werden/muss.



aber warum steht dann im eigentlichen(erster post) code bei dem prototyp und der defintion nicht spieler1 sondern spieler wie bei dem aufruf der funktion....so wie ich es auch später nochmal gepostet habe



S_Spieler Spieler wurde doch sonst niergens initialisiert oder?....







Gruß Jonas

20

10.07.2010, 14:18

Wenn du eine Funktion schreibst, sind die Variablen in der Parameterliste nicht die gleichen wie bei dem Aufruf der Funktion.
(Wenn du später einen Pointern übergibst, haben die beiden Variable nur die gleiche Adresse ;))
Der Parameter sagt ja nur aus, dass die Funktion einn Datentyp S_Spieler benötigt, die dann in der Variablen Spieler gespeichert wird.
Wenn du dann den Funktionaufruf hast, wo du den Spieler1 übergibst, dann wird eine lokale Kopie in der Funktion gespeichert, die du der Variablen Spieler, übergibtst.

Falls du es nicht wissen sollterst: Die Variable Spieler ist auch nur in der Funktion gültig (4.4 Gültigkeitsbereiche in C++ für Spieleprogrammierer)

Hoffe, ich hab das jetzt richitig erklärt ^^

Werbeanzeige