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

1. Care dintre următoarele expresii C/C++, are ca valoare cel mai mic dintre numerele
naturale nenule, cu cel mult 4 cifre fiecare, memorate în variabilele întregi x şi y?
a. (x+y-abs(x-y))/2
b. x+y-abs(x-y)/2
c. (x+y+abs(x-y))/2
d. (x+y+abs(x+y))/2

2. Care dintre următoarele expresii C/C++, are ca valoare cel mai mare dintre numerele
naturale nenule memorate în variabilele întregi a şi b?
a. (a+b+abs(a-b))/2
b. a+b+abs(a-b)/2
c. (a+b-abs(a-b))/2
d. (a+b-abs(a+b))/2
Imi puteti explica cum se rezolva expresiile astea, asa ca la prosti:))

Răspunsuri la întrebare

Răspuns de CinevaFaraNume
27

Răspuns:

1.a

2.a

Explicație:

abs(x) = valoarea absoluta a lui x = modulul lui x.

Sa consideram ca x are valoarea are valoarea mai mica:

Pentru prima expresie:

(x+y-abs(x-y))/2 = (x+y-(y-x))/2 (y > x deci modulul schimba semnele) = (x+y-y+x)/2 = 2x/2 = x

Pentru a 2-a expresie:

x+y-abs(x-y)/2 = x+y-(y-x)/2 = x+y-y/2+x/2 care nu este x.

Pentru a 3-a expresie:

(x+y+abs(x-y))/2 = (x+y+(y-x))/2 = (x+y+y-x)/2 = 2y/2 = y (am obtinut valoarea mai mare, ceea ce nu e bine)

Petru a 4-a expresie:

(x+y+abs(x+y))/2 = (x+y+x+y)/2 = (2x+2y)/2 = x+y(am obtinut suma, tot nu e bine).

Singura care a dat corect pentru x = minim este a). Sa vedem ce se intampla daca y este mai mic decat x:

(x+y-abs(x-y))/2 = (x+y-(x-y))/2 = (x+y-x+y)/2 = 2y/2 = y. Corect

Doar prima expresie da valoarea corecta, deci este raspunsul corect.

Raspuns: a)

2.

Sa inlocuim in expresia a 3-a de la primul exercitiu x cu a si y cu b, pentru ca stim ca daca x < y expresia are valoarea lui y.

(x+y+abs(x-y))/2 = (a+b+abs(a-b))/2.

Sa vedem ce se intampla daca a < b:

(a+b+abs(a-b))/2 = (a+b+(b-a))/2 = (a+b+b-a)/2 = 2b/2 = b(valoarea mai mare)

Acum pentru a > b.

(a+b+abs(a-b))/2 = (a+b+a-b)/2 = 2a/2 = a

Am gasit expresia corecta( a) )

Daca este necesar, le incercam si pe celelalte:

A 2-a:

a+b+abs(a-b)/2, a>b = a+b+(a-b)/2 = a+a/2 + b - b/2 = 3a/2 +b/2, nu e nici a nici b(chiar daca exista cateva cazuri in care este corecta; in general, nu este).

A 3-a:

(a+b-abs(a-b))/2 Stim ca este expresia pentru minim, dar:

(a+b-abs(a-b))/2, a < b = (a+b-(b-a))/2 = (a+b-b+a)/2 = (2a)/2 = a(nu este buna, ne da minimul).

A 4-a:

(a+b-abs(a+b))/2, a<b = (a+b-(a+b))/2 = 0/2 = 0.... Clar nu e corecta

Raspuns: a)


Alexandru987: Multumesc muult!!!
Alte întrebări interesante
Matematică, 8 ani în urmă