Maināmi parametri
Iepriekš tika aplūkotas procedūras un funkcijas, kurām parametru sarakstā neparādījās atslēgas vārds var. Tas nozīmēja, ka par parametriem izmantoto mainīgo vērtības nekādi neizmainās - piemēram, funkcijas ff(a,b) izmantošana nekādi nepārveido mainīgo a un b vērtības.
 
Taču var izveidot tādas procedūras vai funkcijas, kuras izmaina kāda izmantotā parametra vērtību. Šim maināmam parametram priekšā raksta var.
proceduresumma(a,b:integer;varc:integer);beginc:=a+b;end;
Izsaucot šo procedūru, trešajam parametram noteikti jābūt integer tipa mainīgajam (izteiksme neder). Tā nomainīs šī mainīgā vērtību ar divu pirmo parametru summu.
 
Piemērs:
programpiemeers;usescrt;vari:integer;Skaitlji:array[1..100]ofinteger;procedureaizvietot(varn:integer);beginif((nmod2=0)or(nmod3=0))thenn:=0;end;beginclrscr;fori:=1to100dobeginSkaitlji[i]:=i;aizvietot(Skaitlji[i]);write(Skaitlji[i]:4);end;readkey;end.
Šajā piemērā procedūra aizvieto skaitļa vērtību ar nulli, ja tas dalās ar 2 vai 3. Pati programma izvada šādā veidā aizvietotus visus skaitļus no 1 līdz 100.
 
Svarīgi!
Kaut arī tas ir iespējams, maināmu parametru izmantošana funkcijās tiek uzskatīta par sliktu stilu.