Răspuns :
Scopul exercitiului este ca tu sa vezi ca variabila constanta c definita la inceputul programului principal nu este aceeasi variabila precum cele locale definite in argumentele functiilor sau in interiorul functiilor
Daca ai scrie linia de cod c:=4; in begin..end. principal, deasupra sirurilor de writeln() atunci ti-ar aparea eroare pentru ca nu poti modifica o valoare constanta.
In schimb, poti sa modifici valoarea LOCALA declarata c in functiile respective.
Astfel, avem:
in prima c nu este definita deloc. Daca nu este definita, functia va spune ca c este constanta definita in antetul programului. Deci c=1
Din moment ce noi in acel writeln dam valoarea F1(1) atunci x=1, deci suma va da
F1=1+1=2
In a doua functie, c este definit ca un argument. Deci c va lua valoarea care i-a fost data prin intermediul argumentului functiei.Observi ca la declaratiile locale se da si tipul variabilei(char,real) fata de declaratia genereala unde spunem doar const c=valoare si din acea valoare isi da singur seama ca e de tip integer/real/char
In interiorul functiei F2 este si o variabila constanta x=2.0, atunci valoarea finala afisata pentru F2(1) adica c=1 este:
F2=2+1=3
In a treia functie, c este din nou suprascris de o variabila locala care este data ca o constanta in functie ce suprascrie constanta globala. c=3 acum
ord(x) determina valoarea in cod ascii a caracterului ';' care este 59.
Atunci suma din paranteza devine (59+3)=62 Apoi transforma aceasta valoare inapoi in caracter chr(62)='>'
Deci programul afiseaza:
2
3
>
Daca ai scrie linia de cod c:=4; in begin..end. principal, deasupra sirurilor de writeln() atunci ti-ar aparea eroare pentru ca nu poti modifica o valoare constanta.
In schimb, poti sa modifici valoarea LOCALA declarata c in functiile respective.
Astfel, avem:
in prima c nu este definita deloc. Daca nu este definita, functia va spune ca c este constanta definita in antetul programului. Deci c=1
Din moment ce noi in acel writeln dam valoarea F1(1) atunci x=1, deci suma va da
F1=1+1=2
In a doua functie, c este definit ca un argument. Deci c va lua valoarea care i-a fost data prin intermediul argumentului functiei.Observi ca la declaratiile locale se da si tipul variabilei(char,real) fata de declaratia genereala unde spunem doar const c=valoare si din acea valoare isi da singur seama ca e de tip integer/real/char
In interiorul functiei F2 este si o variabila constanta x=2.0, atunci valoarea finala afisata pentru F2(1) adica c=1 este:
F2=2+1=3
In a treia functie, c este din nou suprascris de o variabila locala care este data ca o constanta in functie ce suprascrie constanta globala. c=3 acum
ord(x) determina valoarea in cod ascii a caracterului ';' care este 59.
Atunci suma din paranteza devine (59+3)=62 Apoi transforma aceasta valoare inapoi in caracter chr(62)='>'
Deci programul afiseaza:
2
3
>
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile disponibile v-au fost utile și inspiraționale. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, suntem aici pentru a vă ajuta. Ne face plăcere să vă revedem și vă invităm să adăugați site-ul nostru la favorite pentru acces rapid!