Einzelnen Beitrag anzeigen

Amandus

Registriert seit: 24. Nov 2003
4 Beiträge
 
#1

Variablenübergabe - erklärt mir das einer?

  Alt 24. Nov 2003, 21:33
Hallo

Wir programmieren seit Schulbeginn mit Borland Delphi 6. Ich komm eigentlich ganz gut damit klar, habe aber eine Frage bezüglich der Variablenübergabe. Ich schreibe das Beispielprogramm rein und hab dann spezifische Fragen:

Delphi-Quellcode:
program V_ADD2; // Vektoraddition mit Unterprogramme
{$APPTYPE CONSOLE}
uses
  SysUtils;

type vektor=array[1..3] of integer;
      //benutzerdef. Variablentyp

var a, b, c : vektor;
     
procedure eingabe (ch:char;var v:vektor);
var i:integer;
 begin
  writeln('Vektoreingabe ',ch,'.Vektor:');
  writeln;
   for i:=1 to 3 do
      begin
        write(i,'-te Koordinate = ');
        readln(v[i]);
      end;
 end;

procedure vektoraddition (v1,v2:vektor; var v3:vektor);
var i : integer;
 begin
  for i:=1 to 3 do v3[i]:=v1[i]+v2[i];
 end;

procedure ausgabe (v:vektor);
var i:integer;
 begin
  writeln('Der Summenvektor lautet:');
  writeln;
   for i:=1 to 3 do writeln(i,'-te Koordinate = ',v[i]);
 end;

begin
  writeln('VEKTORADDITION');
  writeln('==============');
  writeln;
  eingabe('1',a);
  eingabe('2',b);
  vektoraddition(a,b,c);
  ausgabe(c);
  writeln;
  writeln('RETURN zum Beenden!');
  readln;
end.
1. procedure eingabe: Also die Variable ch bekommt vom Unterprogramm den Wert 1 zugewiesen. Aber: Warum rechnet man in "eingabe" nicht gleich mit der Variable "a", wieso verwendet man "v"? Ich habe gelesen, dass im Unterprogramm die Variablen, die übergeben werden, neu bezeichnet werden sollen, aber warum? Was passiert da? (in einfachen Worten, wenn's geht)
Wieso kann das Unterprogramm überhaupt mit v rechnen? v ist doch nirgends deklariert?

2. procedure vektoraddition: Was passiert da mit den Variablen? Wie werden die hin- und hergeschaufelt? Ich habe schon gegoogelt, aber das wesentliche nie verstanden, wenns um Variablenübergabe ging...

3.procedure ausgabe: "... Koordinate = ',v[ i ]]; ..." - Wie kann hier mit v gerechnet werden, wo v doch gar nicht deklariert wird?

Ich bin für euren Rat schon im Voraus dankbar,
Amandus

[edit=Admin]Delphi-Code bitte in die Tags [ delphi] und [ /delphi] stecken. Danke. Mfg, Daniel[/edit]
[edit=Admin] Mfg, Daniel[/edit]
  Mit Zitat antworten Zitat