Vaa rog mult am nevoie de raspunsul la intrebarea data:
-Care este cauza efectelor colaterale ? C e consecinte pot avea aceste efecte?
Răspunsuri la întrebare
Răspuns:
Explicație:
Prin efect colateral se înţelege o atribuire (în corpul funcţiei) a unei valori la o variabilă globală sau la un parametru formal variabilă. Efectele colaterale pot influenţa în mod neaşteptat execuţia unui program şi complică procesele de depanare.
Prezentăm în continuare exemple defectuoase de programare, care folosesc funcţii
cu efecte colaterale.
Program P110;
{Efect colateral - atribuire la o variabilă globală}
var a : integer; { variabilă globală }
function F(x : integer) : integer;
begin
F:=a*x;
a:=a+1; {atribuire defectuoasă }
end; { F }
Program P111;
{Efect colateral - atribuire la un parametru formal}
var a : integer;
function F(var x : integer) : integer;
begin
F:=2*x;
x:=x+1; { atribuire defectuoasă }
end; { F }
Prin urmare, la elaborarea programelor complexe se
vor aplica următoarele recomandări:
1. Comunicarea funcţiilor cu mediul de chemare se va face prin transmiterea de date spre funcţie prin parametri formali valoare şi întoarcerea unui singur rezultat prin numele ei.
2. Comunicarea procedurilor cu mediul de chemare se va face prin transmiterea de date prin parametri formali valoare sau variabilă şi întoarcerea rezultatelor prin parametri formali variabilă.
3. Variabilele globale pot fi folosite pentru transmiterea datelor în subprograme, însă valorile lor nu trebuie să fi e schimbate de acestea.