www.matheraum.de
Das Matheforum.
Das Matheforum des MatheRaum.

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Mathe
  Status Schulmathe
    Status Primarstufe
    Status Mathe Klassen 5-7
    Status Mathe Klassen 8-10
    Status Oberstufenmathe
    Status Mathe-Wettbewerbe
    Status Sonstiges
  Status Hochschulmathe
    Status Uni-Analysis
    Status Uni-Lin. Algebra
    Status Algebra+Zahlentheo.
    Status Diskrete Mathematik
    Status Fachdidaktik
    Status Finanz+Versicherung
    Status Logik+Mengenlehre
    Status Numerik
    Status Uni-Stochastik
    Status Topologie+Geometrie
    Status Uni-Sonstiges
  Status Mathe-Vorkurse
    Status Organisatorisches
    Status Schule
    Status Universität
  Status Mathe-Software
    Status Derive
    Status DynaGeo
    Status FunkyPlot
    Status GeoGebra
    Status LaTeX
    Status Maple
    Status MathCad
    Status Mathematica
    Status Matlab
    Status Maxima
    Status MuPad
    Status Taschenrechner

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
Mathe-Seiten:Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenSonstiges - InformatikWerteparam., Variablenparam...
Foren für weitere Studienfächer findest Du auf www.vorhilfe.de z.B. Astronomie • Medizin • Elektrotechnik • Maschinenbau • Bauingenieurwesen • Jura • Psychologie • Geowissenschaften
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.matheforum.net
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]