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

11

01.01.2012, 21:40

Ein Integer ist eine Zahl, 'Staerke' steht dann einfach für eine ganz bestimmte Zahl, die in deinem Kontext die Stärke angibt. Wert und Prozent sind auch nur Namen für Zahlen.
Beim Aufruf nimmst du den Wert der Variable Stärke - jetzt hast du nur noch die Zahl, nicht mehr die Variable - und schreibst deren Wert in die Parametervariable 'Wert'. Wert und Stärke sind 2 verschiedene Variablen, aber mit dem selben Inhalt. Es ist, als ob du einer Variable den Wert einer anderen zuweisen würdest (später kommen noch Pointer und Referenzen dazu, aber bis dahin, hast du das hier wohl verstanden).
Lieber dumm fragen, als dumm bleiben!

12

01.01.2012, 21:55

aso, danke verstehe

mfg Fendoer

13

08.01.2012, 07:26

Ich habe grade mit diesem Listing etwas experimentiert, die Erklärung mit der Sekretärin, die Sekretärin wäre dann also die "charakter.hpp" Datei, da für die Sekretärin egal ist wie die Namen heissen, sondern nur die Zahlen wichtig sind.

Die "charakter.hpp"-Datei:

int addProzent (int Jacke, int Hose);
float addProzent (float Affe, int Banane);

In der "charakter.cpp"-Datei und "Listing 4_10.cpp"-Datei müssen aber die Namen wieder gleich sein, sonst kommt eine Fehlermeldung.

14

08.01.2012, 13:39

Nein. Das sind wohl die Funktionen....

MfG
Check

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

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

  • Private Nachricht senden

15

08.01.2012, 15:29

Die Sekretärin wäre die Funktion.
Sie hat eigene Begriffe für ihre Werte, die viel allgemeiner sind.

C-/C++-Quelltext

1
int addProzent (int Wert, int Prozent);

Die Bezeichnungen sind in der Deklaration und Definition also schon richtig. Sie könnten anders sein, sollten aber nicht.

Du kannst der Funktion alles übergeben. Ihr ists egal ob du gerade Zinsen berechnest oder einen Charakter in deinem Spiel stärker machst.
Der Aufruf könnte also so aussehen:

C-/C++-Quelltext

1
geld = addProzent (geld, zinssatz);

oder so:

C-/C++-Quelltext

1
charakterStaerke = addProzent (charakterStaerke, erhohungInProzent);

oder so:

C-/C++-Quelltext

1
beispiel = addProzent (100, 10);

wobei immer 110 in der Variable "beispiel" gespeichert werden würde.

Würde man es nicht so abstrakt machen bräuchte man für diese drei Fälle, drei Funktionen. Baut man einen Fehler in die Funktion, muss man ihn an drei Stellen ändern. Der Code nimmt drei mal so viel Speicherplatz ein und macht den Code unübersichtlich.
"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?

16

08.01.2012, 16:22

Drei? :P

MfG
Check

17

08.01.2012, 20:34

Hi, also ich bin auch noch ziemlicher Anfänger,
aber deswegen kann ich dein Problem vielleicht besser verstehen.
(Weiß aber gerade nicht, ob du noch Hilfe brauchst... Naja, ich schreib
einfach mal meine Erklärung hin, vielleicht kann ich damit ja andere helfen.)

Also bei einem Funktionsaufruf muss man genau so viele Werte in Klammern
mit angeben, wie auch Prototyp gefordert wird.
(Wichtig: Sie müssen auch vom gleichen Datentyp sein, also z.B Int oder so.)

Diese Werte werden dann der Funktionübergeben. Die Funktion macht sich aber nur Kopien von
den übergebenen Werten und speichert sie in neue Variablen, diese sind in der Klammer deklariert und definiert.
Dabei kann man sie beliebig benennen.

Hoffe ich konnte irgendjemanden helfen.
(Falls ich irgendwo einen Fehler haben sollte, bitte ich die Erfahrenen Programmierer dies zu korrigieren, danke ^^)

18

08.01.2012, 22:15

Naja, so wie es NachoMan freundlicherweise metaphorisch darstellte.
Aber immer gut, wenn eine Person in den Anfängen sich versucht darin, das Thema zu beantworten. Das übt. ;)
Du hast folgendes geschrieben: Also bei einem Funktionsaufruf muss man genau so viele Werte in Klammern
mit angeben, wie auch Prototyp gefordert wird.[...]

Nicht ganz richtig. Aber für den Anfang hat dich das, denke ich, wenig zu interessieren.
Naja, beim Deklarieren, nicht beim Definieren, kann man den Parametern einen Wert zuweisen, wodurch man sie auch auslassen kann.
Folgendes Beispiel wäre also völlig gültig und würde zur Ausgabe von "3" führen, Einstiegspunkt etc.pp. habe ich jetzt mal ausgelassen:

C-/C++-Quelltext

1
2
3
4
5
6
int addNums(int num1=1, int num2=2);
// ... Irgendwas
std::cout << addNums();
// ... Irgendwas
int addNums(int num1, int num2)
{return num1+num2;}


MfG
Check

Werbeanzeige