matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Hochschulmathe
  Status Uni-Analysis
    Status Reelle Analysis
    Status UKomplx
    Status Uni-Kompl. Analysis
    Status Differentialgl.
    Status Maß/Integrat-Theorie
    Status Funktionalanalysis
    Status Transformationen
    Status UAnaSon
  Status Uni-Lin. Algebra
    Status Abbildungen
    Status ULinAGS
    Status Matrizen
    Status Determinanten
    Status Eigenwerte
    Status Skalarprodukte
    Status Moduln/Vektorraum
    Status Sonstiges
  Status Algebra+Zahlentheo.
    Status Algebra
    Status Zahlentheorie
  Status Diskrete Mathematik
    Status Diskrete Optimierung
    Status Graphentheorie
    Status Operations Research
    Status Relationen
  Status Fachdidaktik
  Status Finanz+Versicherung
    Status Uni-Finanzmathematik
    Status Uni-Versicherungsmat
  Status Logik+Mengenlehre
    Status Logik
    Status Mengenlehre
  Status Numerik
    Status Lin. Gleich.-systeme
    Status Nichtlineare Gleich.
    Status Interpol.+Approx.
    Status Integr.+Differenz.
    Status Eigenwertprobleme
    Status DGL
  Status Uni-Stochastik
    Status Kombinatorik
    Status math. Statistik
    Status Statistik (Anwend.)
    Status stoch. Analysis
    Status stoch. Prozesse
    Status Wahrscheinlichkeitstheorie
  Status Topologie+Geometrie
  Status Uni-Sonstiges

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
StartseiteMatheForenSonstiges - InformatikWerteparam., Variablenparam...
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Philosophie • Religion • Kunst • Musik • Sport • Pädagogik
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.unimatheforum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]