Ce va afișa la execuția acestui program. +Argumentare
Urgent!

program p5;
var k:integer; d:real;
procedure suma(n:integer; var s:real);
begin
s:=0;
for i:=1 to n do
s:=s+2*i ;
end;
begin
k:=4; suma(k,d); writeln(′d=′ , d:5:0);
end.

Răspuns :

Nu este declarat i, deci nu se va afișa nimic, se va afișa eroare.

Însă să presupunem că ai uitat să declari i, în așa caz se va afișa la ecran:

d=___20

Se va afișa cu 3 spații în fațăm, deoarece în writeln(′d=′ , d:5:0); avem :5:0 ceea ce înseamnă că valoarea lui d se va afișa pe 5 poziții cu 0 cifre după virgulă.

Acum de ce se va afișa 20. Se va afișa 20, deoarece valoarea lui k se transmite procedurii suma ca fiind ulterior n, iar valoarea lui d este transmisă la aceeași adresă care o deține variabila s, asta înseamnă că atunci când se va afișa variabila d, se va afișa valorea schimbată în procedură a lui s.

Operația s:=s+2*i va fi executată de 4 ori, deoarece n este valorea lui k, care este 4 și astfel:

s=0+2*1=2;

s=2+2*2=6;

s=6+2*3=12;

s=12+2*4=20;