<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Namensparameter</id>
	<title>Namensparameter - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Namensparameter"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Namensparameter&amp;action=history"/>
	<updated>2026-05-28T10:10:01Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Namensparameter&amp;diff=61333&amp;oldid=prev</id>
		<title>imported&gt;SteEis: Belege fehlen</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Namensparameter&amp;diff=61333&amp;oldid=prev"/>
		<updated>2018-12-11T16:20:28Z</updated>

		<summary type="html">&lt;p&gt;Belege fehlen&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Belege fehlen| Belege fehlen. --[[Benutzer:SteEis|SteEis]] &amp;lt;small&amp;gt;([[Benutzer Diskussion:SteEis|Diskussion]]&amp;amp;nbsp;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;&amp;amp;nbsp;[[Benutzer:SteEis/Bewertung|Bewertung]]&amp;amp;nbsp;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;&amp;amp;nbsp;[[Spezial:Beiträge/SteEis|Beiträge]])&amp;lt;/small&amp;gt; 17:20, 11. Dez. 2018 (CET) }}&lt;br /&gt;
&lt;br /&gt;
Ein &amp;#039;&amp;#039;&amp;#039;Namensparameter&amp;#039;&amp;#039;&amp;#039; (englisch &amp;#039;&amp;#039;call by name&amp;#039;&amp;#039;) ist ein [[Parameter (Informatik)|Parameter]] eines [[Unterprogramm]]s in [[Programmiersprache]]n, der nicht bei seiner Übergabe, sondern erst bei seiner Benutzung, entsprechend der Signatur des Aktualparameters berechnet wird. Dies wurde vor allem in der Programmiersprache [[COBOL]], daneben auch in [[Algol 60|ALGOL 60]] genutzt, ist jedoch in modernen Sprachen unüblich.&lt;br /&gt;
&lt;br /&gt;
Zur Einordnung: In [[Fortran]] gibt es ausschließlich [[Referenzparameter]], in [[C (Programmiersprache)|C]] und [[Java (Programmiersprache)|Java]] nur  [[Wertparameter]], in [[C++]] gibt es beides. Namensparameter existieren –&amp;amp;nbsp;mit Ausnahme von [[Präprozessor]]-Makros in C und C++, deren Argumente Namensparameter sind&amp;amp;nbsp;– in keiner dieser Sprachen.&lt;br /&gt;
&lt;br /&gt;
Namensparameter ermöglichen sowohl die Übergabe als auch Rückgabe von Werten.&lt;br /&gt;
&lt;br /&gt;
== Ein einfaches Beispiel ==&lt;br /&gt;
&lt;br /&gt;
 A[1] := 10&lt;br /&gt;
 A[2] := 20&lt;br /&gt;
 i := 1&lt;br /&gt;
 x := Funkt (A[i], i)&lt;br /&gt;
 &lt;br /&gt;
 FUNCTION Funkt (a, i) : Real&lt;br /&gt;
   i := i+1&lt;br /&gt;
   RETURN a&lt;br /&gt;
 END&lt;br /&gt;
&lt;br /&gt;
x wird der Wert 20 zugewiesen. Im Werteparameter-Fall wäre x dagegen 10, ebenso bei Referenzparametern.&lt;br /&gt;
&lt;br /&gt;
== Ein angewandtes Beispiel in ALGOL 60 ==&lt;br /&gt;
&lt;br /&gt;
Als Beispiel soll die [[Simpsonsche Formel|Simpsonsche Näherungsformel]] zur Integralberechnung dienen. Ein Flächenintegral &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;y=f(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;F=\int_a^b{y dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kann in &amp;#039;&amp;#039;n&amp;#039;&amp;#039; Streifen der Breite &amp;#039;&amp;#039;h&amp;#039;&amp;#039; zerlegt werden. Dann lautet die hier verwendete Näherung:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;h=(b-a)/n&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;y_i=f(x_i)\quad\quad mit \quad x_i=a+h \cdot i, \quad i=0 \dots n&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;F \approx \frac{h}{3}(y_0+y_n+4(y_1+y_3+\cdots y_{n-1})+2(y_2+y_4+\cdots+y_{n-2}))&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Algol 60 wird dies folgendermaßen umgesetzt (das Beispiel ist nicht optimal, sondern eine möglichst genaue Umsetzung der Definition):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  1 &amp;#039;REAL&amp;#039; &amp;#039;PROCEDURE&amp;#039; SIMPSON(A,B,F,X,N);&lt;br /&gt;
  2    &amp;#039;REAL&amp;#039; A, B, X;&lt;br /&gt;
  3    &amp;#039;INTEGER&amp;#039; N;&lt;br /&gt;
  4    &amp;#039;REAL&amp;#039; &amp;#039;PROCEDURE&amp;#039; F;&lt;br /&gt;
  5 &amp;#039;BEGIN&amp;#039;&lt;br /&gt;
  6    &amp;#039;INTEGER&amp;#039; I;&lt;br /&gt;
  7    &amp;#039;REAL&amp;#039; H, S1, S2;&lt;br /&gt;
  8 &amp;#039;&amp;#039;&amp;#039;   &amp;#039;ARRAY&amp;#039; Y[0:N];&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
  9    H := (B-A)/N;&lt;br /&gt;
 10    &amp;#039;FOR&amp;#039; I:=0 &amp;#039;STEP&amp;#039; 1 &amp;#039;UNTIL&amp;#039; N &amp;#039;DO&amp;#039; &lt;br /&gt;
 11       &amp;#039;BEGIN&amp;#039;  &lt;br /&gt;
 12 &amp;#039;&amp;#039;&amp;#039;         X:=A+H*I;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 13 &amp;#039;&amp;#039;&amp;#039;         Y[I]:=F;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 14       &amp;#039;END&amp;#039;;&lt;br /&gt;
 15    S1 := S2 := 0;&lt;br /&gt;
 16    &amp;#039;FOR&amp;#039; I:=1 &amp;#039;STEP&amp;#039; 2 &amp;#039;UNTIL&amp;#039; N-1 &amp;#039;DO&amp;#039; S1:=S1+Y[I];&lt;br /&gt;
 17    &amp;#039;FOR&amp;#039; I:=2 &amp;#039;STEP&amp;#039; 2 &amp;#039;UNTIL&amp;#039; N-2 &amp;#039;DO&amp;#039; S2:=S2+Y[I];&lt;br /&gt;
 18    SIMPSON:=H/3*(Y[0]+Y[N]+4*S1+2*S2);&lt;br /&gt;
 19 &amp;#039;END&amp;#039;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Alle Parameter sind hier Namensparameter. Davon wird bei den Parametern &amp;#039;&amp;#039;X&amp;#039;&amp;#039; und &amp;#039;&amp;#039;F&amp;#039;&amp;#039; besonders Gebrauch gemacht (Zeilen 12 und 13). In Zeile 8 wird ein &amp;#039;&amp;#039;dynamisches Feld&amp;#039;&amp;#039; deklariert. Das Integral&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;y=\int_0^1{\sin(k)}dk&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
wird näherungsweise (&amp;#039;&amp;#039;n=20&amp;#039;&amp;#039;) berechnet mittels&lt;br /&gt;
&lt;br /&gt;
  Y:=SIMPSON(0,1,SIN(K),K,20);&lt;br /&gt;
&lt;br /&gt;
Im Unterprogramm &amp;#039;&amp;#039;SIMPSON&amp;#039;&amp;#039; wird hier &amp;#039;&amp;#039;F&amp;#039;&amp;#039; durch &amp;#039;&amp;#039;SIN(K)&amp;#039;&amp;#039; und &amp;#039;&amp;#039;X&amp;#039;&amp;#039; durch &amp;#039;&amp;#039;K&amp;#039;&amp;#039; ersetzt.&lt;br /&gt;
&lt;br /&gt;
Es sind auch Doppelintegrale möglich: &lt;br /&gt;
&lt;br /&gt;
Das bestimmte Integral&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;z=\int_0^1{\int_{-1}^1{e^{\sqrt{x^2+y^2}}dy}\,dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kann näherungsweise mit &lt;br /&gt;
&lt;br /&gt;
  Z:=SIMPSON(0,1,SIMPSON(-1,1,EXP(SQRT(X &amp;#039;POWER&amp;#039; 2+Y &amp;#039;POWER&amp;#039; 2)),Y,20),X,20);&lt;br /&gt;
&lt;br /&gt;
berechnet werden. Dies ist weder mit Referenzparametern, Wertparametern noch mit einfachen C-Makros in dieser Form realisierbar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Programmiersprachelement]]&lt;/div&gt;</summary>
		<author><name>imported&gt;SteEis</name></author>
	</entry>
</feed>