👤

Dau coroană. Care atribuie x=n^2 ? Explicatie de ce nu cealalta.
a) x=1 ;
for (i=1; i<=2 ; i++) x*=n;
d) x=1 ; i=0;
while (i<2) x*=n; i++;


Răspuns :

a) este cea corecta deoarece dupa for se executa o singura instructiune, ceea ce e corect (adica nu mai e nevoie de { } ).
d) e gresita deoarece while-ul nu contine {} astfel intra intr-o bucla infinita deoarece niciodata contorul i nu se va mari in interiorul buclei while, in momentul intrarii i =0 iar while (i<2) este mereu adevarata, si se executa la nesfarsit x*=n;
Ar afisa raspunsul corect daca era scris in felul urmator :  x=1 ; i=0; 
while (i<2){ x*=n; i++;} astfel introducem si i-ul in bucla while ducand la un rezultat final.
a) x=1
Acum vine for-ul:
1) i=1
   x*=n (asta inseamna x=x*n;orice numar inmultit cu 1 e acelasi numar,exceptand 0)
   x=x*n=>x=1*n=>x=n
2) i=2
    x*=n
    x=x*n=>x=n*n=>x=n^2 (x si-a pastrat valoare de la 1,aceea fiind modificata in n)
a) este corect

d) Acesta poate fi gresit sau corect,deoarece nu stiu daca i++ intra in while
Daca nu intra i++ in while:

 x=1;i=0;
1)0<2 (True)
x*=n =>x=n (deoarece x este 1 initial si ai inteles ideea de la a) )
2)0<2(True)
x*=n =>x=n*n=>x=n^2
3)0<2(True)
x*=n =>x=n^2*n=>x=n^3
Si tot asa la infinit,deoarece i-ul nu creste niciodata si nu va atinge vreodata valoarea 2,pentru a iesi din while

Daca i++ e in while:
x=1;i=0;
1)0<2(True)
x*=n
x=n;
i=i+1(i++ inseamna i=i+1 si i-- inseamna i=i-1) =>i=0+1 =>i=1
2)1<2(True)
x*=n
x=n*n
x=n^2
i=i+1 =>i=1+1=>i=2
3)2<2 (False,deoarece 2 nu este mai mic ca 2,daca era 2<=2,insemnand 2 mai mic SAU EGAL ca 2 ar fi fost adevarat)
while s-a terminat si a ramas x=n^2
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!


Ez Studiers: Alte intrebari