Rückgabe eines Wertes bei einer Funktion!!!!

Neue Frage »

Auf diesen Beitrag antworten »
Canadierprincess Rückgabe eines Wertes bei einer Funktion!!!!

Meine Frage:
Hallo!

Ich habe in der Schule (12. Klasse) Informatik. Morgen schreibe ich Klausur, ich verstehe aber noch nicht, was damit gemeint ist ,

: Funktionen geben den Wert zurück?

Das macht doch eine Prozedur auch, z.B. bei einer Werteübergabe oder auch Variablenübergabe?
Das ist doch der Hauptunterschied zwischen Prozeduren und Funktionen!

Wäre nett, wenn mir jemand helfen könnte!

Canadierprincess

Meine Ideen:
Ich denke, dass damit gemeint ist, dass die aktuellen Paramter bei dem Aufruf der Funktion im Hauptprogramm an die formalen Parameter in der Prozedur zugewiesen werden?

Stimmt das?, sicherlich nicht! smile smile
 
Auf diesen Beitrag antworten »
David_pb

Hi,

sorry ist zwar schon zu spät aber trotzdem! Augenzwinkern

In einigen Sprachen (z.B. Pascal) gibts eine strikte trennung zwischen den Begriffen Funktion und Prozedur. Karakteristisch für Funktionen ist eben das sie einen Wert zurückgeben, was Prozeduren eben nicht tun.

Eine Prozedur ist quasi ein in sich abgeschlossenes Stück Code das ausgeführt wird ohne das ein direktes Resultat erwartet wird:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
procedure mywrite(xyz : string)
{
  writeln('xyz = ', xyz);
}

function add(a : integer, b : integer) : integer
{
  add := a + b;
}

program test;

var
  x : integer;

begin
  mywrite('test'); 
  x := add(32, 10);
  writeln( 'ergebnis = ', x );
end.


(Falls Fehler im Code sein sollten, ich hab schon ewig kein Pascal mehr gecoded, also bitte etwas Nachsicht! Augenzwinkern )

Wie du siehst liefert add dir einen Wert zurück mit dem du weiter arbeiten kannst.

Das gleiche Konzept lässt sich auf C/C++ anwenden. Da haben "Prozeduren" einfach den Rückgabetyp void:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
void mywrite(const char* xyz)
{
  printf( "xyz = %s\n", xyz);
}

int add(int a, int b)
{
  return a+b;
}

int main()
{
  mywrite("test");
  int x = add(32, 10);
  printf( "ergebnis = %d\n", x);
}
Auf diesen Beitrag antworten »
ed209

Zitat:
Original von David_pb
Falls Fehler im Code sein sollten, ich hab schon ewig kein Pascal mehr gecoded, also bitte etwas Nachsicht! Augenzwinkern

Ja die guten alten 90er smile

Ich wuerde behaupten die geschweiften Klammern müssen durch begin und end; ersetzt werden und program test; darf weiter nach vorne.
Aber ich bin mir auch nicht mehr sicher mit der Syntax.

Gruß,
ED
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »