Selles mõttes on alamprogrammide formaalsed parameetrid samuti lokaalsed muutujad, mille initsialiseerimine toimub alamprogrammi töö alguses vastavate tegelike parameetrite väärtustega. Üks arusaamatust tekitav situatsioon globaalsete ja lokaalsete muutujate kasutamisel sisaldub järgmises näites: { P r o g r a m m i a l g u s } Program N9_2; 95 / 115 Var A, B, N : Integer; { need siin on globaalsed muutujad } Function AritmSumma(X, Y, Z : Integer) : Integer; Var I, D, N : Integer; { need on lokaalsed muutujad } begin N := X; { N? Aga kumb - globaalne või lokaalne? } D := Y - N; I := 1; While I < Z Do { Muuseas, see on aritmeetilise summa } begin { leidmiseks halb algoritm, } N := N + X + I * D; I := I + 1; end; AritmSumma := N { aga see töötab siiski! :) } end; begin Write('Palun sisesta aritmeetilise jada esimene liige :');
eksisteerib ainult selle alamprogrammi tööaja jooksul, kuhu ta ka ise kuulub. Selles mõttes on alamprogrammide formaalsed parameetrid samuti lokaalsed muutujad, mille initsialiseerimine toimub alamprogrammi töö alguses vastavate tegelike parameetrite väärtustega. Üks arusaamatust tekitav situatsioon globaalsete ja lokaalsete muutujate kasutamisel sisaldub järgmises näites: Program N9_2; Var A, B, N : Integer; { need siin on globaalsed muutujad } Function AritmSumma(X, Y, Z : Integer) : Integer; Var I, D, N : Integer; { need on lokaalsed muutujad ) begin N := X; { N? Aga kumb - globaalne või lokaalne? } D := Y - N; I := 1; While I < Z Do { Muuseas, see on aritmeetilise summa } begin { leidmiseks halb algoritm, } N := N + D; I := I + 1 end; AritmSumma := N { aga see töötab siiski! :) } end; begin Write('Palun sisesta aritmeetilise jada esimene liige :'); ReadLn(A);