Sâmbătă, 20.04.2024, 03:25 Bine aţi venit Vizitator |
Bine ai venit |
Acasă | Parametri actuali | Înregistrare | Autentificare | RSS |
|
Dar, referirea la un astfel de identificator global nu este o practica buna. O procedura poate sa schimbe valoarea unei variabile globale (relative), fara intentia programatorului, fie datorita unei greseli de codificare, fie datorita faptului ca programatorul nu a înteles în totalitate implicatiile folosirii unei proceduri scrise de o alta persoana. Asemenea schimbari nedorite se numesc efecte laterale (side effects, în engleza). Pentru a preîntâmpina astfel de efecte nedorite referitoare la variabilele globale, se prefera alternativa utilizarii procedurilor cu parametri. Parametrii folositi în paranteze, imediat dupa numele procedurii în timpul definirii acesteia, se numescparametri formali. Expresiile folosite împreuna cu numele procedurii atunci când aceasta este apelata (din programul principal) se numesc parametri actuali (efectivi). Din moment ce parametrii efectivi trebuie sa fie substituiti de parametrii formali corespunzatori, transmiterea parametrilor trebuie facuta respectând regula de mai jos.
În aceasta regula cuvântul "numarul" se refera la numarul parametrilor efectivi si al celor formali, care trebuie sa fie acelasi. "Compatibilitatea atribuirii" înseamna ca tipul unui parametru efectiv trebuie sa fie acelasi cu cel al parametrului formal ori compatibil cu acesta prin respectarea regulilor de atribuire (Atentie la compatibilitatea atribuirii:
dar nu
etc.). Restrictia cu privire la "pozitia" parametrilor se traduce prin aceea ca daca am definit, sa zicem
Este remarcabil faptul ca regula nu precizeaza nimic în legatura cu numele parametrilor formali si efectivi (numele sa fie acelasi sau nu). Când parametrii efectivi sunt expresii complicate este neplacut ca ei sa fie confundati (unul cu altul). Dar scriind, sa zicem andrei (c,d), header-ul lui andrei fiind PROCEDURE andrei (a,b:real), putem avea si încurcaturi. Neplacerea poate fi chiar mai mare daca apelam procedura prin andrei(b,a), dar nu constituie un conflict în fiecare caz.Amintiti-va ca parametrii formali utilizati în definirea procedurii (header-ul procedurii) servesc numai ca înlocuitori pentru diferiti parametri efectivi (actuali) ce vor fi substituiti de primii în timpul apelarii procedurii. Daca parametrii formali asi b ai unei proceduri sunt ambii de tip real, nu are importanta daca parametrul formal a este înlocuit de un parametru apelant, care de asemenea se întâmpla sa fie denumit tot a. Astfel de variabile efective sunt deseori cazuri speciale de expresie si orice expresie reala valida poate fi utilizata ca parametru efectiv. Pentru a arata sugestiv relatia dintre parametrii formali si parametrii efectivi consideram procedura |
|
Copyright MyCorp © 2024 |