To Jeyekomon : S tím, že skryté sahání do globálních proměnných může dělat zmatky, máš naprostou pravdu a vlastně sis tím rovnou i odpověděl :-).
Parametry použiješ tam, kde potřebuješ volat jednu proceduru s různými vstupními daty, která se často mění, a především z různých míst (třeba když je procedura v jednotce, kterou používají různé programy, a se všemi musí fungovat). Výhodou je taky to, že v okamžiku, kdy píšeš volací příkaz, máš všechny vstupy hezky před očima na jednom řádku. Kdybys to dělal přes globální proměnné, musel by sis pamatovat, jak jsi je před voláním procedury nastavil (což může být někdy docela problém dohledat a nesplést se).
Globální proměnné jsou výhodnější pro vstupy, které se mění jenom občas, kde by bylo vypisování parametrů výrazně nepohodlné nebo tam, kde to prostě jinak nejde. Třeba když píšeš program na obsluhu nějaké databáze, která se nikde mimo ten program nevyskytuje a existuje jenom v jedné instanci, je zbytečné psát pro to obecné procedury, kterým by se ta databáze předávala jako parametr. Ale třeba nějaké pomocné procedurky pro manipulaci s jejími jednotlivými prvky je výhodnější dělat parametrově, aby se daly jednodušeji směrovat na cíle (globální proměnné ve stylu aktualne_vybrany_prvek věci hrozně komplikují).
Příklad, kdy je pohodlnější použít parametry než globální proměnné:
setcolor(barva);
line(100,100,200,200);
setcolor(jinabarva);
line(10,300,40,300);
vs.line2(100,100,200,200,barva);
line2(10,300,40,300,jinabarva);
A jeden příklad, kdy je naopak výhodnější použít globální proměnné:
napis(100,100,barva,font,zarovnani_vlevo,velikost_pisma,'Bla bla bla');
napis(100,110,barva,font,zarovnani_vlevo,velikost_pisma,'a tak dale');
napis(100,120,barva,font,zarovnani_vlevo,velikost_pisma,'jeste neco');
...
vs.NastavParametryTextu(font,zarovnani_vlevo,velikost_pisma);
napis2(100,100,barva,'Bla bla bla');
napis2(100,110,barva,'a tak dale');
napis2(100,120,barva,'jeste neco');
...
Obecně se dá říct, že s parametry je to prakticky ve všech případech přehlednější. Ale nedá se obecně říct, co je lepší. Musí se zvolit nějaký vhodný kompromis mezi opakovaným vypisováním parametrů a staráním se o globální hodnoty.