Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
23.02.2002, 11:10
shenZi



ich progge seit ca. einem halben jahr und ich bin nur selten auf return gest0ßen und habe daher keine ahnung welche funktion return hat. irgendwie muss das mit dem void funktionsname () etwas zu tun haben. bei void gibt die funktion keinen wert zurück und bei return wohl je nachdem einen wert
return 0; also den wert 0 und return 1; den wert 1. das ist nur eine vermutung und ich habe keine ahnung also bitte nicht hauen ;)
und wozu muss eine funktion einen wert zurückgeben?
für verständliche antworten wäre ich sehr dankbar

--

..::Follow the rabbit ::..

zum Seitenanfang zum Seitenende Profil || Suche
001
23.02.2002, 11:23
mani



z.b.

int blubb()
{
int i = 3;
return i;
}

wenn du jez sagst:

void main()
{
int bla;
bla = blubb();
}

dann ist bla 3 :)

oder z.B.:

int blubb(int i)
{
return i;
}

wenn du jez sagst:

void main()
{
int bla;
bla = blubb(4);
}

dann nimmt bla den wert an, den du blubb(int) übergibst :)

das kann man dann auch für klassen nehmen:

class test
{
private:
int i;
public:
void SetI(int a) { i = a; };
};

und so...

--


Dieser Beitrag wurde am 23.02.2002 um 11:31 von mani bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
002
23.02.2002, 11:24
Zeeke



Ouch... tut mir echt leid, aber ist so :) Vielleicht solltest du es doch nochmal mit Basic probieren :P

www.c-plusplus.de

Da gibts schöne viele Tutorials...

--

zum Seitenanfang zum Seitenende Profil || Suche
003
23.02.2002, 11:38
CabaL



schön für dich zeeke das wusste ich auch

--

..::I've carved my soul to shreds in service of the Cabal. What little humanity I retain is corrupted by the Beast, which has grown stronger with every life I've taken::.

zum Seitenanfang zum Seitenende Profil || Suche
004
23.02.2002, 11:49
Tron



das ist nicht dein ernst, shenZi, oder?!
fuehr dir unbedingt nochmal einige c tuts zu gemuete!

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett


Dieser Beitrag wurde am 23.02.2002 um 11:49 von Tron bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
005
23.02.2002, 21:56
shenZi



ja werde ich auchmachen @tron
ich progge nicht seit einem halben jahr c/c++ sondern hauptsächlich delphi und ich lerne seit ein paar wochen c und da hab ich hier mal ein tut und da mal ein tut gelsen aber nirgends wurde mir return erklärt, ich konnte mir schon im ungefähren denken was es bewirkt aber ich wollte einfach eine genaue definition. war einfach zu faul zu suchen sorry
und danke an mani für die erklärung
cu

--

..::Follow the rabbit ::..


Dieser Beitrag wurde am 23.02.2002 um 21:57 von shenZi bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
006
23.02.2002, 23:28
Ferdi



Zitat:

und wozu muss eine funktion einen wert zurückgeben?

würde mich wundern wenn bei Delphi Funktionen keine Werte zurückliefern

--


Dieser Beitrag wurde am 23.02.2002 um 23:29 von Ferdi bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
007
23.02.2002, 23:45
Retro



Jein, bei Delphi hat man ja prozeduren und funktionen, eigentlich auch wie bei C++ nur anders! ;)

Quellcode:[b]function[/b] BlaTest(Moep: Integer): Integer;
[b]var[/b]
I: Integer;
[b]begin[/b]
I := Moep;
Return := I;
[b]end[/b];

--

[b]procedure[/b] PlaTest(Moep: Integer);
[b]var[/b]
I: Integer;
[b]begin[/b]
I := Moep;
// Eine Prozedur besitzt kein Return!
[b]end[/b];

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
008
24.02.2002, 00:55
Ferdi



was heisst da Jein? Natürlich tun sie dass
wäre ja dumm wenn sie es nicht könnten

redet ja keiner von Procedure(s) (bzw. Sub(s) in Basic)
und wenn ich funktionen sage dann meine ich auch function(s)
....

--


Dieser Beitrag wurde am 24.02.2002 um 00:57 von Ferdi bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
009
24.02.2002, 02:39
Kriz



Wie ohne Return programmieren? Wie geht denn das? Hast du nur die void main() {} Variante ohne jegliche Funktionen benutzt? Das grenzt beinahe an Sadismus!

=)

== EDIT ==

Und nochmal der Unterschied zwischen Funktionen, Methoden und Prozeduren in C/C++:

Funktion

Eine Funktion ist ein globales Unterprogramm, welches immer einen Wert zurückliefert (sei es in Form eines return Werts oder eines Call-By-Reference (C/C++) bzw. Call-By-Alias (C++ only)).

Methode

Identisch mit der Funktion, ist aber Bestandteil einer Klasse und daher nicht global.

Prozedur

Eine Prozedur ist ein Unterprogramm, welches sowohl global als auch klassenabhängig sein kann. Der Unterschied zu den anderen beiden Unterprogrammtypen ist der, daß eine Prozedur keinen Wert zurückliefert, weder direkt noch indirekt. Prozeduren verändern nur Werte innerhalb des ihnen bekannten Gültigkeits- und Sichtbarkeitsbereichs.

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)


Dieser Beitrag wurde am 24.02.2002 um 02:45 von Kriz bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
010
24.02.2002, 09:04
Megge



eines hab ich bisher noch nie begriffen, sei es in php oder in c++ (bin noch schrechlich newbie in c++):

was ist der unterschied zwischen einer klasse und einer funktion ?
eine funktion, kein problem: wert(e) rein, nach gegebenem muster verändern, wert(e) raus / exit;

ich versteh nicht, was es noch mehr braucht. viel mehr kannste doch ned mehr mit werten machen..?!

und für was ist das return bei php gut ? hab das ein par ma im thwboard code gesehen, versteh aber ned, wieso da ein return ist... kam bisher in php auch bestens ohne aus..

--

zum Seitenanfang zum Seitenende Profil || Suche
011
24.02.2002, 11:11
KhanRKerensky



Zitat:
Kriz postete
Wie ohne Return programmieren? Wie geht denn das? [...] Das grenzt beinahe an Sadismus!

Siehe den Quelltext von meinem Codec ;). Lang und langsam *gg*.

--

"[...] you're going to burn in a very special level of Hell. A level they reserve for child molesters and people who talk at the theater." - Book

zum Seitenanfang zum Seitenende Profil || Suche
012
24.02.2002, 11:29
Tron



Zitat:
Kriz postete
Wie ohne Return programmieren? Wie geht denn das? Hast du nur die void main() {} Variante ohne jegliche Funktionen benutzt? Das grenzt beinahe an Sadismus!

ich wuerd's eher als masochismus bezeichnen (;

Zitat:
Funktion
Eine Funktion ist ein globales Unterprogramm, welches immer einen Wert zurückliefert (sei es in Form eines return Werts oder eines Call-By-Reference (C/C++) bzw. Call-By-Alias (C++ only)).

meines wissen gibt's in reinem c keine referenzen und call-by-alias ist mir was ganz neues.
meinst du nicht statt call-by-reference call-by-pointer und statt call-by-alias call-by-reference?

Zitat:
Methode
Identisch mit der Funktion, ist aber Bestandteil einer Klasse und daher nicht global.

auch prozeduren, (void-funktionen) die zu einer klasse gehoeren sind methoden.

Zitat:
Prozedur
Eine Prozedur ist ein Unterprogramm, welches sowohl global als auch klassenabhängig sein kann. Der Unterschied zu den anderen beiden Unterprogrammtypen ist der, daß eine Prozedur keinen Wert zurückliefert, weder direkt noch indirekt. Prozeduren verändern nur Werte innerhalb des ihnen bekannten Gültigkeits- und Sichtbarkeitsbereichs.[/i]

wie grade gesagt: wenn eine prozedur zu einer klasse gehoert, ist sie auch eine methode.
ausserdem koennen prozeduren werte, die by-pointer oder by-reference uebergeben haben veraendern, die wohl somit in ihrem sichtbarkeitsbereich liegen; ich finde schon, dass man das als wertrueckgabe bezeichnen kann.
zudem koennen sie auch globale variablen veraendern, aber davon sprechen wir besser nicht (;

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
013
24.02.2002, 11:41
Tron



Zitat:
Megge postete
eines hab ich bisher noch nie begriffen, sei es in php oder in c++ (bin noch schrechlich newbie in c++):

was ist der unterschied zwischen einer klasse und einer funktion ?
eine funktion, kein problem: wert(e) rein, nach gegebenem muster verändern, wert(e) raus / exit;

ich versteh nicht, was es noch mehr braucht. viel mehr kannste doch ned mehr mit werten machen..?!

grob gesagt ist eine klasse daten + methoden. (wobei methoden zur klasse gehoerende funktionen und prozeduren sind)
objektoreintierung (kurz oo oder oop: objekt orientierte programmierung) bietet fuer den/die programmierer vorteile durch konzepte wie data/implemtation-hiding, vererbung (inheritance), polymorphismen, virtuelle methoden (und einiges mehr, was mir gerade nicht einfaellt)
dadurch wird die wiederverwendbarkeit von code erhoeht sowie wartung undentwicklung von (grosen) programmen erleichtert.
allerdings muss man sagen, dass man diese konzepte auch richtig nutzen muss, um diese vorteile zu gewinnen. (der satz trifft wohl auch ziemlich alles zu *g*)
dass oo zwangslaeufig langsamer ist als prozedurales programmieren stimmt nicht, wenn man es richtig nutzt entsteht dadurch kein overhead.
wenn dich oo interessiert such dir einige quellen im netz oder kauf dir ein gutes buch, alle aspekte hier zu erlaeutern waere ziemlich langwierig...

ps: nicht jede definition von oo sieht alle diese konzpete als voraussetzung fuer oo.

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
014
24.02.2002, 12:23
Megge



Zitat:

(bin noch schrechlich newbie in c++)

deswegen:
hab nur bahnhof von dem verstanden, was du da gesagt hast :)

egal, werd mich ein bissel im rindernetz schlaumachen..
trotzdem danke
%-]

--

zum Seitenanfang zum Seitenende Profil || Suche
015
24.02.2002, 12:52
Tron



Zitat:
Tron postete
wenn dich oo interessiert such dir einige quellen im netz oder kauf dir ein gutes buch, alle aspekte hier zu erlaeutern waere ziemlich langwierig...

(;

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
016
24.02.2002, 13:54
Kriz



Zitat:
meines wissen gibt's in reinem c keine referenzen und call-by-alias ist mir was ganz neues.
meinst du nicht statt call-by-reference call-by-pointer und statt call-by-alias call-by-reference?

Die Begrifflichkeit ist nicht einheitlich. Ich habe hier genügend Material, die besagen, daß Call-By-Reference einerseits die Zeigerübergabe betiteln, andererseits wiederum die Referenzübergabe. Da aber einige Materialien nur C ansprechen und dort von Call-By-Reference als Zeigerübergabe sprechen (und ich das auch so gelehrt bekommen habe an der FH), ist für mich Call-By-Reference eben die Zeigerübergabe. Das möchte ich noch dadurch untermauern, da man beim Auflösen des Zeigers von einer Dereferenzierung spricht.

Die Begriffe Call-By-Pointer und Call-By-Alias sind ebenfalls nicht "genormt". Pointer ist klar, das soll dasselbe aussagen wie Call-By-Reference. Call-By-Alias bezieht sich dagegen mehr auf die Übergabe von Referenzen an sich, da man hier mit einem Aliasnamen für den impliziten Zeiger der Variablen arbeitet.

Prozeduren geben keine Werte zurück, weder über return noch über Zeiger oder Referenzen!!! Sie können höchstens globale Werte verändern.

Also nochmal die Liste der Begrifflichkeiten:

Übergabe per Wert:

* Call-by-value (offiziell)

Übergabe per Zeiger:

* Call-by-reference (offiziell)
* Call-by-pointer

Übergabe per Referenz (C++ only):

* Call-by-alias
* Call-by-reference (kritisch, da maßgeblich inkorrekte Bezeichnung)

Cu

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)

zum Seitenanfang zum Seitenende Profil || Suche
017
24.02.2002, 14:05
Tron



ich hab mal ien bissl gegoogelt: call-by-reference wird von einigen fuer pointer, bei anderen fuer referenzen und bie dritten fuer beides verwendet ):
allerdings zum stichwort call-by-alias hab ich nix gefunden, den begriff hab ich heute auch zum ersten mal gelesen.

nach deiner definition:

funktion:
int f(int);

prozedur:
void f(int);

was ist dann:
void f(int*);

nach meiner begrifflichkeit ist das eine prozedur, da ueber return nichts zurueckgegeben wird.

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
018
24.02.2002, 14:06
Kriz



ARGH, Tron....

Zitat:
Prozeduren geben keine Werte zurück, weder über return noch über Zeiger oder Referenzen!!! Sie können höchstens globale Werte verändern.

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)

zum Seitenanfang zum Seitenende Profil || Suche
019
24.02.2002, 14:18
Tron



ARGH, Kriz....

was ist dann: void f(int*); ?

kleine analogie aus pascal/delphi: eine function gibt einen wer ueber return zurueck, eine procedure gibt nichts ueber return zurueck, aber beide koennen variable parameter uebergeben bekommen...

in basic sieht's genauso aus (allerdings mit sub und function)

in java kann man an prozeduren auch parameter als referenz uebergeben

in fortran auch...

btw: globale variablen veraendern ist eine INDIREKTE wertrueckgabe

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
020
24.02.2002, 15:47
Mazze



Eine Funktion denk ich mal!

--

BattleTech-MOD:
http://bthl.unitedgaming.net/

zum Seitenanfang zum Seitenende Profil || Suche
021
24.02.2002, 16:03
Kriz



Das Sprachwirrwarr ist vollkommen ;)

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)

zum Seitenanfang zum Seitenende Profil || Suche
022
24.02.2002, 16:52
TheTinySteini



Nun, da es ja sowas gibt wie swap( int &a, int &b ); und das normalerweise als Funktion bezeichnet wird...
Gibt aber eben auch nix zurück (unter Rückgabe verstehe ich einen NEUEN Wert, der beim Rücksprung verfügbar ist) - das is dann wohl Philosophie, lol.

(editiert wegen sprachlicher Inkompetenz)

--

TheTinySteini
Coder Poke646
"Don't Panic" - Hitchhiker's Guide to the Galaxy


Dieser Beitrag wurde am 24.02.2002 um 16:56 von TheTinySteini bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche