Laden...

Was ist ein Aktualparameter?

Erstellt von B3nj vor 13 Jahren Letzter Beitrag vor 13 Jahren 10.670 Views
B3nj Themenstarter:in
242 Beiträge seit 2006
vor 13 Jahren
Was ist ein Aktualparameter?

hallo,

wir nehmen in der c# durch. man musste nur in die lektionen kommen, wenn man die grundlagen nicht beherrscht.

diese beinhalten bis jetzt: schleifen, primitive datentypen, funktionen
dadurch dass ich schon seit jahren c# programmiere sah ich es noch nicht als nötig dazuzukommen.

wir haben bald eine prüfung dazu, das ist auch ok. nun haben wir per mail eine probeprüfung erhalten, diese ist soweit auch nicht schwer, ausser eine Frage kann ich mir nicht eindeutig beantworten.

Pro Frage sind mehrere Antworten möglich, ich schreibe aber nur die von mir nicht verstande auf:

Was ist ein Aktual-Parameter?
...
[ ] Eine Variable, die keinen festen Datentyp hat
...

ich habe auch mehrere leute gefragt, jedoch ist sich niemand wirklich sicher, auch nicht die die den Unterricht besucht haben...

hauptsächlich frage ich mich was hier "fester datentyp" in dem zusammenhang bedeutet. ein aktualparameter muss ja nur zum zieltyp (vererbung, inplizite konvertierungen...) kompatibel sein und nicht genau diesem typ entsprechen.

hat jemand eine idee?

gruss
b3nj

5.742 Beiträge seit 2007
vor 13 Jahren

Hallo B3nj,

Pro Frage sind mehrere Antworten möglich, ich schreibe aber nur die von mir nicht verstande auf:

Poste doch besser mal die ganze Frage.

Was habt ihr als "Aktual-Parameter" bezeichnet (--> Code)?
Wirklich geläufig ist dieser Begriff eher nicht.

Eine Variable, die keinen festen Datentyp hat

Gibt's in C# eigentlich nicht - selbst das "neue" dynamic hat an sich einen festen Typ.
Auch wenn die Formulierung IMHO ein wenig ungeschickt ist.

[EDIT]
Ist mit einem "Aktualparameter" evtl. ein Parameter gemeint, der per out bzw. ref übergeben wird?
[/EDIT]

2.223 Beiträge seit 2005
vor 13 Jahren

Hi @all,

Ist mit einem "Aktualparameter" evtl. ein Parameter gemeint, der per out bzw. ref übergeben wird?

da mir der Begriff erst einmal auch nichts gesagt, habe ich mal nach 'actual c#' Mr Google gefragt, und ja genau das sollte es sein

Viele Grüße
Lars

E
92 Beiträge seit 2008
vor 13 Jahren

Oder die Unterscheidung zwischen formalen und aktuellen Parametern?

B3nj Themenstarter:in
242 Beiträge seit 2006
vor 13 Jahren

da ich nicht anwesend war kann ich es nicht genau sagen. ich hatte bis jetzt auch nicht viel mit dem begriff zu tun.

auf jeden fall dachte ich laut den berichten meiner kollegen, dass alle übergabeparameter als aktualparameter definiert sind. die verwendete variable innerhalb der funktion ist dann der formalparameter.

bsp:


static void main()
{
    int i = 0;
    DoIt(i, i); //i ist hier jeweils der aktualparameter
}

static void DoIt(int a, int b)
{
    //a und b sind formalparameter
}

irgendwie ist der begriff praktisch niemandem geläufig. naja, 😃

Hier die Frage inklusive allen Antworten:
Was ist ein Aktual-Parameter?
[ ] Eine Variable im Rahmen einer Schnittstelle
[ ] Eine Variable, die im Unterprogrammaufruf verwendet wird
[ ] Eine Variable mit einem konstanten Wert
[ ] Eine Variable, die keinen festen Datentyp hat
[ ] Eine Variable, die beim Unterprogrammaufruf einen Wert besitzt

Gleich meine Gedanken dazu:

  1. Falsch
  2. Richtig
  3. Falsch
  4. ?
  5. Wenn ich schon dabei bin: ?, wobei ich tendiere zu Ja. Die Frage wäre hier: Wird null auch als Wert angesehen...?

Gruss
benj

T
381 Beiträge seit 2009
vor 13 Jahren

Wird null auch als Wert angesehen...?

Musst du mal deinen Prof. fragen. Ansicht ist null ein Wert wie auch die Leere Menge eine Menge ist. Andererseits muss man nicht über "Wert" oder "nicht Wert" reden, wenn alles ein Wert ist.

[ ] Eine Variable, die im Unterprogrammaufruf verwendet wird

Ist ähnlich schwammig. Nach deinem Beispielcode wird i im Unterprogramm nicht verwendet, außer man würde wie ein Vorposter geschrieben hat ref oder out verwenden.
Wann wird eine Variable verwendet? Ich würde einfach sagen: Wenn keine Compiler Warning "Unused Variable" ausgegeben wird.

Im Wiki steht auch was zu Parametern

B3nj Themenstarter:in
242 Beiträge seit 2006
vor 13 Jahren

Ok, der Wikipediaeintrag ist relativ gut.

Von wegen Prof fragen: Das habe ich auch versucht (per Mail) nachdem ich erfolglos einige Schüler gefragt habe. Der meint, dass hätte man in der Stunde besprochen und ansonsten steht es in jedem halbwegs guten Buch an erster Stelle. Wer nicht in der Stunde war ist selbst schuld. (er hats ein bisschen freundlicher geschrieben^^)

naja, ich hoffe mal, dass die frage nicht an der prüfung kommt. notfalls habe ich ja jetzt aber jede schwammige antwort noch eine begründung.

danke

I
279 Beiträge seit 2008
vor 13 Jahren

Die tatsächlichen Argumente, die eine Funktion bei einem Aufruf übergeben bekommt, heißen Aktualparameter

Beispiel:

void Test(String str, Int32 i) //str und i sind "aktual parameter"

Test("sfs", 9); // "sfs" und 9 sind "formal parameter"

H
116 Beiträge seit 2008
vor 13 Jahren

Moin!

Bezieht sich zwar auf Fortran, könnte aber helfen (ich meine, in der Schule auch mal so etwas gehört zu haben):

Unterprogramme können in Fortran Funktionen oder Sub-routinen sein. Funktionen werden im aufrufenden Programm in Ausdrücken benutzt. Subroutinen werden mit call aufgerufen. Für beide Arten gab es im Rahmen dieses Kurses Beispiele (vordefinierte Funktionen und Subroutinen {mvbits}). Die vom aufrufenden Programm übergebenen Werte nennt man Aktualparameter. Aktualparameter, Funktionen und Subroutinen

Ansonsten: Frage einen Kollegen, der bei der Veranstaltung gewesen ist. 😃

Hinrich

49.485 Beiträge seit 2005
vor 13 Jahren

Hallo zusammen,

ich bin ehrlich überrascht, dass so viele den Begriff nicht kannten. Meine Erfahrung ist, dass man in der Ausbildung an dies Begriff nicht vorbei kommt. Wie dem auch sei. Mittlerweile wurde die Definition ja schon genannt. Mit out und ref hat das gar nichts zu tun. Wichtig ist der Begriff aktueller Parameter bzw. eben Aktual-Parameter vor allem in der Unterscheidung zu formalem Parameter bzw. Formal-Parameter.

Bei

public int f (int x) { ... }
...
int result = f (5);

ist x der formale und 5 der aktuelle Parameter. Der Wert des aktuellen Parameter, also 5, lässt sich dann innerhalb der Methode über den Namen des formalen Parameters, also x ansprechen. Oder anders gesagt, innerhalb eines konkreten Methodenaufrufs nimmt der formale Parameter dann den Wert des aktuellen Parameter bei eben diesem Aufruf an.

Was ist ein Aktual-Parameter?
[ ] Eine Variable im Rahmen einer Schnittstelle
[ ] Eine Variable, die im Unterprogrammaufruf verwendet wird
[ ] Eine Variable mit einem konstanten Wert
[ ] Eine Variable, die keinen festen Datentyp hat
[ ] Eine Variable, die beim Unterprogrammaufruf einen Wert besitzt

Allerdings hilft alles Wissen bei den schwammig formulierten Antworten wenig. Das fängt schon damit an, dass der Aktual-Parameter gar keine Variable sein muss, sondern kann auch ein Konstante, ein Literal oder ein Ausdruck sein kann.

Ich würde hier nur die zweite Aussage ankreuzen.

"Im Rahmen einer Schnittstelle" bedeutet aus meiner Sicht bei der Deklaration der Schnittstelle, also bei public int f (int x) und da haben wir es mit einem formalen Parameter zu tun.

"Im Unterprogrammaufruf verwendet" bedeutet aus meiner Sicht in der Zeile, wo der Aufruf stattfindet, also bei int result = f (5) und da haben wir es tatsächlich mit einem aktuellen Parameter zu tun, auch wenn der in meinem Beispiel ein Literal und keine Variable ist.

"Eine Variable mit einem konstanten Wert" trifft weder auf den aktuellen noch auf den formalen Parameter zu. Zwar wird bei dem Aufruf der Wert des aktuellen Parameters an den formalen Parameter übergeben und der Wert des aktuellen Parameter ist für diesen einen Aufruf fest, aber die Variable, die den Wert enthält, heißt ja x, ist also der formale Parameter und der ist - zumindest in C# - nicht konstant, sondern man kann an ihn - wie an lokale Variablen - innerhalb des Methodenrumpfes beliebige Werte zuweisen.

"Kein fester Datentyp" ist vollkommen unsinnig. Zumindest in C# als streng typisierter Sprache haben sowohl aktuelle als auch formale Parameter immer einen festen Datentyp, selbst wenn diese wegen impliziter Konvertierungen nicht zwangsläufig exakt übereinstimmen müssen. Bei nicht typisierten Sprachen ist es dagegen kein besonderes Kennzeichen von aktuellen Parametern, dass sie keinen Typ haben, sondern dort hat keine Variablen einen Typ.

"Eine Variable, die beim Unterprogrammaufruf einen Wert besitzt" trifft aus meiner Sicht auf den formalen Parameter zu. Dieser ist ja gerade eine Variable, die bei einem konkreten Unterprogrammaufruf den Wert des aktuellen Parameters bekommt/enthält.

Nur wegen der Schammigkeit der Antworten in der Probeprüfung habe ich geantwortet. Denn ansonsten würde ich das Thema schon als absolute Grundlagen einstufen, für welche ansonsten [Hinweis] Wie poste ich richtig? Punkt 1.1.1. zu beachten ist.

herbivore