Informatică, întrebare adresată de event12, 8 ani în urmă

Se dă secvenţa în limbaj algoritmic:
A:=8; B:=3; S:=3; I:=0
repeat
S := S + A – I x B
if I ≥ 4 then I := I + 2
else I := I + 3
endif
write S
until (S < 0)
write I, S
stop
a) Ce valori se tipăresc în urma execuției secvenței? Argumentați.
b) Transformați secvența de program utilizând instrucțiunea repetitivă WHILE, astfel încât
valorile tipărite pentru I și S să rămână aceleași. Argumentați

Răspunsuri la întrebare

Răspuns de complexalex
2

Răspuns:

a) Valorile tipărite în urma execuției secvenței nu pot fi determinate fără o anumită valoare inițială pentru variabila I.

b) Secvența de program poate fi transformată utilizând instrucțiunea repetitivă WHILE astfel:

css

Copy code

A := 8; B := 3; S := 3; I := 0;

while S >= 0 do

 S := S + A - I * B;

 if I >= 4 then

   I := I + 2;

 else

   I := I + 3;

 end if;

end while;

write I, S;

stop;

Această secvență de program are aceleași valori pentru I și S la final, deoarece a fost convertită din instrucțiunea repetitivă REPEAT în instrucțiunea repetitivă WHILE fără a fi necesare modificări semnificative ale logicei programului.

Explicație:

Alte întrebări interesante