JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=b88f1820ac69caacb73dd4aafc341545Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Komme mit den "Funktionen" nicht klar
Gehe zu Seite Zurück  1, 2
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
manu
Super JLI'ler


Alter: 35
Anmeldedatum: 09.03.2006
Beiträge: 327
Wohnort: allgäu (DE)
Medaillen: Keine

BeitragVerfasst am: 23.07.2006, 22:16    Titel: Antworten mit Zitat

LBFreddurst hat Folgendes geschrieben:
ok,wenn ich es jetzt endlich richtig verstanden habe:

die Parameter sind Variablen,die sich auch auf das Hauptprogramm,in diesem Fall main() auswirken,aber nur in der Funktion,in der sie entstehen genutzt werden können ???


fast.

Jo. die Parameter können nur in der Funktion genutzt werden, in der sie "entstehen". Aber sie wirken sich nur auf das "Hauptprogramm" aus, wenn du das so programmierst. Die Parameter sind nur in der jeweiligen funktion gültig. ja Smile
Zum Beispiel kannst du 1000 verschiedene funktionen erstellen und jede darf einen integer namens x erwarten, da die anderen Funktionen von Parametern der anderen Funktionen garnichts wissen...

Die main() ist übringens auch eine Funktion, wie man leicht erkennen kann.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
LBFreddurst
Mini JLI'ler



Anmeldedatum: 18.07.2006
Beiträge: 18

Medaillen: Keine

BeitragVerfasst am: 23.07.2006, 22:33    Titel: Antworten mit Zitat

erstmal danke dir,manu, sehr,vorallem für die gute und vor allem schnelle aufmerksamkeit Smile .


nochwas:

man kann also auch in einer funktion variablen definieren/intialisieren und sie (nur) in dieser Funkion benutzen ?


und wohin würde dieser code führen ??? ;


CPP:
float RadiusEinlesen(void)
{
      float Eingabe = 0.0f;

      cout << "bitte zahl eingeben";
      cin >> Eingabe;

      return Eingabe:
}



edit:

muss man immer eine Variable in der Hauptfunktion,man(), machen,wenn etwas aus einer anderen Funktion wiedergegeben werden soll,wie z.b hier:

CPP:
#include <iostream>
using namespace std;
void Sprechhelferlein(char Buchstabe,int Ziffer)
{
   
    cout << "Ich kann text ausgeben! Mein Lieblingsbuchstabe ist " << Buchstabe << Ziffer << "\n";
}

int main()
{   
    char Zeichen = 'y';
    int Zahl = 11;
   Sprechhelferlein(Zeichen,Zahl);
   
   
   
    cin.get();
   
    return 0;
}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
manu
Super JLI'ler


Alter: 35
Anmeldedatum: 09.03.2006
Beiträge: 327
Wohnort: allgäu (DE)
Medaillen: Keine

BeitragVerfasst am: 23.07.2006, 22:52    Titel: Antworten mit Zitat

LBFreddurst hat Folgendes geschrieben:
erstmal danke dir,manu, sehr,vorallem für die gute und vor allem schnelle aufmerksamkeit Smile .


nochwas:

man kann also auch in einer funktion variablen definieren/intialisieren und sie (nur) in dieser Funkion benutzen ?


Alle Variablen, die man in einer Funktion deklariert, können ausschließlich in dieser Funktion benutzt werden. Man nennt solche Variablen auch lokale Varibeln. Eigentlich werden fast alle Variblen in einer Funktion deklariert(Die main() ist ja auch eine Funktion()). Deswegen braucht man auch sowas wie Parameter bei Funktionen....

LBFreddurst hat Folgendes geschrieben:



edit:

muss man immer eine Variable in der Hauptfunktion,man(), machen,wenn etwas aus einer anderen Funktion wiedergegeben werden soll,wie z.b hier:


Nein. nicht im geringsten. Variblen speichern ja nur Werte.. Du kannst das auch so schreiben:

CPP:
#include <iostream>
using namespace std;
void Sprechhelferlein(char Buchstabe,int Ziffer)
{
   
    cout << "Ich kann text ausgeben! Mein Lieblingsbuchstabe ist " << Buchstabe << Ziffer << "\n";
}

int main()
{   

   Sprechhelferlein('y', 11);
   
   
    cin.get();
   
    return 0;
}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
LBFreddurst
Mini JLI'ler



Anmeldedatum: 18.07.2006
Beiträge: 18

Medaillen: Keine

BeitragVerfasst am: 23.07.2006, 23:15    Titel: Antworten mit Zitat

gut,aber des klappt auch:

CPP:
#include <iostream>
using namespace std;
void Sprechhelferlein(char Buchstabe,int Ziffer)
{
   bool Ergebnis ;

   int Alter1 = 100;
   int Alter2 = 100;

   Ergebnis = Alter1 == Alter2 ;
   
   cout << "Ich kann text ausgeben! Mein Lieblingsbuchstabe ist " << Buchstabe << Ziffer <<  "\n" << Ergebnis;
}

int main()
{   
  Sprechhelferlein('y',11);
  cin.get();
  return 0;
}


das heisst man kann absolut alles in dieser funktion (jaja,main ist auch eine^^) mach,was man in der hauptfunktion,main,machen kann ?

der Parameter ist,sozusagen nur zum weiterleiten an die main() funktion ???

ich mein man könnte das programm auch so schreiben und man bekommt , den vergleichswert der beiden personen:

CPP:
void Sprechhelferlein(int weiterleitung)
{
     bool Ergebnis ;

   int Alter1 = 100;
   int Alter2 = 100;

   Ergebnis = Alter1 == Alter2 ;
   
   cout << "Ich kann text ausgeben! Mein Lieblingsbuchstabe ist " << weiterleitung<<  "\n" << Ergebnis;
}

int main()
{   
   
   Sprechhelferlein(000);
  cin.get();
  return 0;
}


Und ich meine natürlich diesen Code und frage mich wo er hinführt :
CPP:
float RadiusEinlesen(void)
{
float Eingabe =0.0f;

cout << " Zahl eingeben";
cin >> Eingabe;

return Eingabe;
}


Wie ich sehe wird die Funktion nicht an die main() funktion geleitet und bleibt die ganze zeit in der RadiusEinlesen() funktion ?


Danke,die antworten dieser beiden Fragen sind echt wichtig für meine verständlichkeit Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
manu
Super JLI'ler


Alter: 35
Anmeldedatum: 09.03.2006
Beiträge: 327
Wohnort: allgäu (DE)
Medaillen: Keine

BeitragVerfasst am: 23.07.2006, 23:26    Titel: Antworten mit Zitat

Also die main() Funktion ist der Einstiegspunkt für jedes Programm. Von der main() funktion aus rufst du andere Funktionen aus.
Mit dem return, wird eine Funktion veralssen und wieder dahin gesprungen, wo sie aufgerufen wurde...

Zitat:
der Parameter ist,sozusagen nur zum weiterleiten an die main() funktion ???


Nein. Wie du das mit dem weiterleiten meinst, verstehe ich irgendwie grad nicht.. Aber ich bin erhrlich gesagt nicht gut im Erklären und komme hier schon stark an meine Grenzen... Du solltest dich vielleicht einfach nochmal intensiv mit dem Variabeln Kapitel und mit dem Funktionen Kapitel beschäftigen...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
GreveN
JLI Master


Alter: 37
Anmeldedatum: 08.01.2004
Beiträge: 901
Wohnort: Sachsen - Dresden
Medaillen: Keine

BeitragVerfasst am: 23.07.2006, 23:36    Titel: Antworten mit Zitat

Naja, du musst eine Funktion einfach als etwas Abstraktes begreifen, was aufgerufen wird (von einer anderen Funktion), dabei etwas erwartet (Parameter), anschließend etwas mit dem Übergebenen tut und schließlich das Ergebnis zurückgibt (Rückgabewert). Nun besteht ein C/C++-Programm generell nur aus Funktionen, und da Funktionen nur durch Funktionen aufgerufen werden können, werden wir irgendwo auf das Problem stoßen, "Wo wird eigentlich die erste Funktion aufgerufen?" Und an dieser Stelle kommt die 'main' ins Spiel, welche als einzige Funktion nicht explizit aufgerufen werden muss, sondern beim Start automatisch ausgeführt wird.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger MSN Messenger
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 23.07.2006, 23:59    Titel: Antworten mit Zitat

Zitat:
Und ich meine natürlich diesen Code und frage mich wo er hinführt :
CPP:
float RadiusEinlesen(void)
{
float Eingabe =0.0f;

cout << " Zahl eingeben";
cin >> Eingabe;

return Eingabe;
}


Wie ich sehe wird die Funktion nicht an die main() funktion geleitet und bleibt die ganze zeit in der RadiusEinlesen() funktion ?


Der Rückgabewert ist das, was nach dem Aufruf der Funktion durch den Aufruf ersetzt wird. z.B:
CPP:
float RadiusEinlesen(void)
{
float Eingabe =0.0f;

cout << " Zahl eingeben";
cin >> Eingabe;

return Eingabe;
}

int main()
{
int zahl = RadiusEinlesen(); // Funktion wird aufgerufen und ausgeführt. Dadrin wird mit Hilfe von cin eine eingegebene Zahl in der Variable 'Eingabe' gespeichert. Damit man die eingegebene Zahl auch außerhalb verwenden kann ('Eingabe' ist nur in 'RadiusEinlesen' verfügbar) gibt die FUnktion den Wert, der in 'Eingabe' steht zurück. Genauer gesagt wird hier der Aufruf 'RadiusEinlesen()' durch den Wert in 'Eingabe' ersetzt. Nehmen wir an, der User gibt 0.3 ein. Dann würde theoretisch hier folgendes stehen:
// int zahl = 0.3;


Gruß DXer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jonathan_Klein
Living Legend


Alter: 36
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 02.08.2006, 22:44    Titel: Antworten mit Zitat

Hm, ich würds so sagen:
Parameter sind Variablen die vom "Hauptprogramm" übergeben werden, aber nur inder Funktion genutzt werden können. Die Funktion benutzt sie um irgendwas damit zu tun, und evlt. das Ergebnis dann dem Hauptprogramm mit zuteilen.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Gehe zu Seite Zurück  1, 2
Seite 2 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum