Witam,
Bawię się funkcjami w Pascalu, jednak nie rozumiem dlaczego mój pierwszy kod nie działa. W Lazarusie podkreśla mi linijkę:
result: integer;
Sądziłem, że zanim użyję zmiennej w Pascalu muszę pierwsze określić jej typ, a okazuje się, że nie dosyć, że poniższy kod nie działa i nię mogę doszukać się przyczyny błędu, to po usunięciu deklaracji zmiennej result, ale zostawieniu reszty kodu, łącznie z fragmentami gdzie używam tej zmiennej - wszystko działa. Nie rozumiem dlaczego.
var
a, b, ret : integer;
(*function definition *)
function max(num1, num2: integer): integer;
var
(* local variable declaration *)
result: integer;
begin
if (num1 > num2) then
result := num1
else
result := num2;
max := result;
end;
begin
a := 100;
b := 200;
(* calling a function to get max value *)
ret := max(a, b);
writeln( 'Max value is : ', ret );
end.
Poniżej ten sam tylko z usuniętą częścią deklaracyjną w funkcji. O dziwo działa.
var
a, b, ret : integer;
(*function definition *)
function max(num1, num2: integer): integer;
begin
if (num1 > num2) then
result := num1
else
result := num2;
max := result;
end;
begin
a := 342;
b := 200;
(* calling a function to get max value *)
ret := max(a, b);
writeln( 'Max value is : ', ret );
readln;
end.
dodanie znaczników <code class="delphi">
- @furious programming