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

Îmi poate explica cineva, de ce în secvența cu cele 3 if-uri (de unde pleacă cele 3 săgeți), am egalat x- ul cu a, a- ul cu b- ul și b- ul cu x- ul? Ce legătură are cu faptul că a>b ; b>c și a>b? Și de ce am trecut a> b de 2 ori? Vă rog, rapid. Dau 35 de puncte + coroană.

Anexe:

Răspunsuri la întrebare

Răspuns de andreidiaconescu18
0

Daca te uiti mai jos programul vrea sa verifice daca cele 3 numere a,b,c sunt in progresie aritmetica. x e variabila auxiliara si e folosita doar pentru interschimbarea a doua variabila intre ele.

stim ca a, b, c sunt in progresie aritmetica daca a<b<c si b=(a+c)/2.

Noi citim 3 numere random deci pot fi date in orice ordine si ar trebui sa le ordonam crescator.

Primul if rezolva daca a>b si dupa ce se executa stim siguri a<b.

Al doilea if rezolva daca b>c si dupa ce se executa stim siguri b<c.

Al treilea if rezolva daca a>b din prisma faptului ca la pasul anterior b se poate sa fi fost inlocuit si atunci noul b sa fie mai mic decat a si dupa aceasta executie ni se garanteaza a<b

Intr-un final avem a<b<c si satisfacem prima conditie pentru o progresie aritmetica.

ex numeric: daca citim 6 4 2 o sa avem a=6 b=4 c=2

primul if e adevarat a>b(6>4) si dupa ce il executam o sa avem a=4 si b=6

al doilea if este si el adevarat b>c(6>2) si dupa ce il executam o sa avem b=2 si c=6

al treilea if este si el adevarat a>b(4>2) si dupa ce il executam o sa avem a=2 si b=4

ex numeric 2: daca avem 6 2 4 atunci se vor executa doar primele 2 if-uri:

a>b(6>2) (da) => a=2 b=6

b>c(6>4) (da) => b=4 c=6

a>b(2>4) (nu)

iar la final tot a<b<c


Alte întrebări interesante