Hallo , als Übung habe ich mal einen noch unvollständigen Taschenrechner programmiert; hier mal der Code :
Code:
program p1;
{$AppType Console}
var additionsb,subtraktionsb,multib,divb:string;
zahl1:integer; zahl2:integer;
function addition (x:integer ; y:integer):integer;
var ergebnis:integer;zahl1:integer; zahl2:integer;
begin
ergebnis:=zahl1+zahl2;
result:=ergebnis;
writeln('Das Ergebnis lautet:');
write(ergebnis);
readln;
end;
begin
writeln('Wollen Sie addieren,subtrahieren,multiplizieren oder dividieren?: ');
readln(additionsb,subtraktionsb,multib,divb);
if (additionsb='addieren') then
begin
writeln('Geben Sie die erste Zahl ein: ');
readln(zahl1);
writeln('Geben Sie die zweite Zahl ein: ');
readln(zahl2);
addition(zahl1,zahl2);
end;
end.
Und jetzt mal eine Frage ; im Funktionskopf habe ich die Parameter drin , die als Integer deklariert worden sind.
Sobald ich aber jetzt noch var hinzufüge ( also call by reference) , und z.B 6 und 8 als Zahl1 und Zahl2 eingebe , kommt ein riesengroßer Wert raus.
Da bei der Reference-Technik der Inhalt übergeben wird und keine lokale Kopie , verstehe ich nicht , warum man nicht die 14 als Ergebnis rauskriegt.
Bitte um einen Tipp.
Danke.