Informatică, întrebare adresată de anacioinac, 9 ani în urmă

Ce va afisa programul urmator?

Anexe:

Răspunsuri la întrebare

Răspuns de blindseeker90
1
La inceput, x=1,y=1. Atunci, cand este chemata procedura QR(x,y) avem urmatoarele operatii: 
QR(c,d) deci c=1,d=1 caci atat sunt valorile lui x si y
d=d-5=1-5=-4 deci acum d este -4 in loc de 1
k=d+100=-4+100=96 
c=k=96(c devine 96)
Deci cand faci writeln din functie(c,' ',d) o sa afiseze:
96 -4
Apoi observi ca se face un writeln in interiorul programului writeln(x,' ',y)
In programul principal, x=1 si y=1. Dar cand ai apelat functia, observi ca x apare asa, pe cand la y apare un var in fata:QR(x,y) si definitia procedurii este QR(c:integer,var d:integer)
Asta inseamna ca schimbarile asupra lui x(adica c) nu vor fi permanente, dar cele facute asupra lui y(adica d) vor fi permanente pentru ca este variabil.
Atunci y devine valoarea din procedura, adica -4. Deci writeln din program va da:
1 -4
(x ramane neschimbat, y isi schimba valoarea in -4)
Alte întrebări interesante