Co to parametr formalny i aktualny

Witam,mam problem ze zrozumieniem celu parametru formalnego i aktualnego w pascalu,tylko prosiłbym o wytłumaczenie tego swoimi słowami,bo na wikipedi juz czytałem…z góry dzieki;)

ewentualnie bym prosił o jakis prosty przykła:)

Zacznijmy od tego że niema nić o tym w wikipedii …

function Razy2(x:Integer):Integer;begin:= x shl 1;end;[/code]Formalny parametr - to nazwa zmiennej jaka jest zdefiniowana w funkcji czyli [b]x[/b].


[code=php]z:=54;z2:=Razy2(z); Aktualny parametr - to wartość z którą funkcja została wywołana czyli z lub tez 54.

czyli formalny slyzy do wkladania danych do funcki/procedury a aktualny do wykladania?

Wszystko zależy od tego co rozumiesz pod pojęciami wkładania/wykładania?

a mam takie pytanie,czemu parametr formalny nie mozna zastapic zmienna globalna?

Co znaczy zastąpić?

Można coś wpisać do zmiennej globalnej, potem wywołać funkcję/procedurę w której to znowu posługiwać się zmienną globalną. To jest pewnym zastąpieniem, tylko że posługiwanie się taką funkcją/procedurą było by niezbyt wygodne.

Można, ale istnieje z tysiąc powodów, by tak nie robić. Znaczne zmniejszenie czytelności to tylko jeden z nich. Wyobraź sobie, że masz funkcje “sqrt”, która pierwiastkuje. W sygnaturze funkcji czytasz: “function sqrt(x: Real): Real” i od razu widzisz, co musisz do tej funkcji przekazać i co otrzymasz. Natomiast jakbyś miał to robić przez zmienną globalną, to byś miał np. “procedure sqrt()”. No i zgaduj sobie, do której zmiennej globalnej musisz wstawić liczbę, żeby Ci spierwiastkowało. Musiałbyś popatrzeć w TREŚĆ tej procedury - sama sygnatura (nagłówek) nie wystarczy. A co, jeśli treść zajmowałaby 3 ekrany? Straciłbyś godzinę na znalezienie tej paskudnej zmiennej globalnej.

Na tym etapie najlepiej, jakbyś o zmiennych globalnych w ogóle nie wiedział, że istnieją.

Każdy program da się napisać bez zmiennych globalnych.

Co do tematu, odsyłam do literatury, w najnowszej Symfonii jest to bardzo dobrze opisane, rozdział o funkcjach.