www.vorkurse.de
Ein Projekt von vorhilfe.de
Die Online-Kurse der Vorhilfe

E-Learning leicht gemacht.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Teams · Forum · Wissen · Kurse · Impressum
Forenbaum
^ Forenbaum
Status Mathe-Vorkurse
  Status Organisatorisches
  Status Schule
    Status Wiederholung Algebra
    Status Einführung Analysis
    Status Einführung Analytisc
    Status VK 21: Mathematik 6.
    Status VK 37: Kurvendiskussionen
    Status VK Abivorbereitungen
  Status Universität
    Status Lerngruppe LinAlg
    Status VK 13 Analysis I FH
    Status Algebra 2006
    Status VK 22: Algebra 2007
    Status GruMiHH 06
    Status VK 58: Algebra 1
    Status VK 59: Lineare Algebra
    Status VK 60: Analysis
    Status Wahrscheinlichkeitst

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Sonstiges - Informatik" - Werteparam., Variablenparam...
Werteparam., Variablenparam... < Sonstige < Schule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Sonstiges - Informatik"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Werteparam., Variablenparam...: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 22:29 Mo 27.11.2006
Autor: Teufel

Hallo!

Wir haben letztens mit einem Haufen Theorie angefangen. Es ging um Werteparameter und Variablenparameter, formale und aktuelle Parameter (in Unterprogrammen).

Ich glaube, dass ich das mit formalen und aktuellen Parametern verstanden habe (kann trotzdem noch bitte jemand das grundlegende ganz kurz zusammenfassen?). Formale sind nur Platzhalten und die Aktuellen, mit denen diese Plätze belegt werden, oder?

Aber was sind nun Werte- und Variablenparameter? Ich weiß nur, dass bei Werteparametern die Werte nicht verändert werden und dass die Unterprogramme dort mit Kopien arbeiten (oder?). Bei den aktuellen Parametern aber werden auch Sachen geändert irgendwie...

Danke für Hilfe.

        
Bezug
Werteparam., Variablenparam...: Antwort
Status: (Antwort) fertig Status 
Datum: 13:45 Di 28.11.2006
Autor: Martin243

Hallo,

> Formale sind nur Platzhalten und die Aktuellen, mit denen diese Plätze belegt werden, oder?

Ja, so kann man das ausdrücken. Beim Aufruf eines Unterprogramms (oder einer Funktion) übernimmt der formale Parameter für die Dauer dieses Unterprogramms den Wert des aktuellen Parameters.

> Ich weiß nur, dass bei Werteparametern die Werte nicht verändert werden und dass die Unterprogramme dort mit Kopien arbeiten (oder?). Bei den aktuellen Parametern aber werden auch Sachen geändert irgendwie...

Bei der Arbeit mit Werteparametern ("call-by-value") wird tatsächlich eine Kopie des Parameters angelegt, so dass die Werte der Variablen im Hauptprogramm nicht verändert werden. Variablenparameter sind aber Parameter, die das Unterprogramm direkt bearbeitet, weil es ja die Adressen der "Originale" übergeben bekommt. Dies ist sehr nützlich, birgt aber Tücken, wenn man es beim Programmieren vergisst, weil man versehentlich ungewünschte Veränderungen der Variablenwerte bewirken kann.

Beispiel:
quadrat(x) sein eine Funktion, die das Quadrat einer Zahl liefert. Sie kann so aussehen:
quadrat(x){
  x=x*x;
  return x;
}

Falls sie mit einem Wertparameter arbeitet, dann bekommt sie einen Wert übergeben, speichert diesen in x, speichert dessen Quadrat in x und gibt x zurück. Da hier nur der Wert übergeben wurde, hat die Variable im Hauptprogramm, deren Quadrat du berechnest, noch denselben Wert.

Falls die Funktion aber mit einem Variablenparameter arbeitet, dann wirkt sich jede Veränderung von x auf die Variable im Hauptprogramm aus (auch wenn es ungewollt ist!). Das bedeutet, dass sich der Wert dieser Variablen durch den Aufruf der Funktion quadrat plötzlich ändert.

Ich hoffe, diese Beschreibung war einigermaßen verständlich...

Gruß
Martin

Bezug
                
Bezug
Werteparam., Variablenparam...: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 15:30 Di 28.11.2006
Autor: Teufel

Ok, ich danke dir erstmal :)

Also das heißt, wenn ich bei der quadrat-Funktion mit einem Variablenparameter arbeite und ich die Funktion z.B. öfter hintereinander ausführen würde, würde das x immer größer werden?

Bezug
                        
Bezug
Werteparam., Variablenparam...: Antwort
Status: (Antwort) fertig Status 
Datum: 16:40 Di 28.11.2006
Autor: Martin243

Hallo,

du darfst dich nicht an den Variablennamen klammern. Wenn du in diesem Fall quadrat mehrmals auf dieselbe Variable deines Hauptprogramms anwendest, dann wird diese Variable (unabhängig davon, wie sie heißt) immer größer.

Angenommen, dein Programm sieht so aus:

Knödel = 4;
Hackfleisch = 3;
KnödelQuadrat = quadrat(Knödel);
HackfleischQuadrat = quadrat(Hackfleisch);
KnödelQuadrat2 = quadrat(Knödel);
HackfleischQuadrat2 = quadrat(Hackfleisch);

Nach Ablauf des Programms hast du folgende Variablenbelegungen:
Knödel = 256;
KnödelQuadrat = 16;
KnödelQuadrat2 = 256;

Hackfleisch = 81;
HackfleischQuadrat = 9;
HackfleischQuadrat2 = 81;


Du kannst es ja einmal durchsimulieren.


Gruß
Martin

Bezug
                                
Bezug
Werteparam., Variablenparam...: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 19:16 Di 28.11.2006
Autor: Teufel

Ok, danke nochmal für die Erklärungen :) hab's nun verstanden. Aber der ganze Quelltext hat mir nun Hunger gemacht ;)

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Sonstiges - Informatik"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.vorkurse.de
[ Startseite | Mitglieder | Teams | Forum | Wissen | Kurse | Impressum ]