Srodne teme
Kliknite za generisanje liste srodnih tema...
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

x-= y vs x=x-y ?

[es] :: C/C++ programiranje :: C/C++ za početnike :: x-= y vs x=x-y ?

[ Pregleda: 1631 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Karo
G.M.

Član broj: 50566
Poruke: 186
178.237.210.*



+3 Profil

icon x-= y vs x=x-y ?29.01.2020. u 11:50 - pre 51 meseci
int main()
{
int a=30, b=10, c=30 ;


a -= b <50;//29
c = c - b <50;//1
//c = a < 50;
//a -= (b < 50) ? 1 : 0;

cout << a << endl;
cout << c << endl;

}

zar nebi trebalo da je isiti rezultat po definiciji?
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3453

Jabber: djoka_l


+1462 Profil

icon Re: x-= y vs x=x-y ?29.01.2020. u 13:34 - pre 51 meseci
Po kojoj definiciji?

a -= b < 50

računa se prvo vrednost izraza (b < 50), a vrednost je 1
onda se računa a -= 1 i dobija se 29

Dakle prvo se radi izraz sa desne strane, onda se vrednost izraza oduzme od a

U drugom slučaju, računa se vrednost izraza
c - b <50

kako je "-" većeg prioriteta od "<" računa se prvo (c-b) i dobije se 20
onda se računa 20<50, što je tačno i dobije se 1

Ovo što ti pitaš spada u kategoriju UŽASNOG programiranja.
Ako imaš nedoumicu kojim redosledom će se obaviti operacije KORISTI ZAGRADE...

Takođe je odvratno da koristiš rezultat LOGIČKE operacije kao int.
 
Odgovor na temu

Branimir Maksimovic

Član broj: 64947
Poruke: 5534
109.72.51.23



+1064 Profil

icon Re: x-= y vs x=x-y ?29.01.2020. u 15:09 - pre 51 meseci
Ma dobro kad mogu tako da se miksuju logicki i aritmericki izrazi ;)
Stvar je znati precedence koji nikad nije bolje ostaviti da posmatrac pogadja,
kao sto si rekao u ovakvim slucajevima su zagrade must ;)
 
Odgovor na temu

Karo
G.M.

Član broj: 50566
Poruke: 186
178.237.210.*



+3 Profil

icon Re: x-= y vs x=x-y ?29.01.2020. u 20:02 - pre 51 meseci
Po definiciji cppreference je:

code
a -= b

matematički
a - b

Ocekivano je bilo da se evaluira isto?

Citat:

U drugom slučaju, računa se vrednost izraza
c - b <50

kako je "-" većeg prioriteta od "<" računa se prvo (c-b) i dobije se 20
onda se računa 20<50, što je tačno i dobije se 1


jasno je da je "-" većeg prioriteta od "<"

Citat:

računa se prvo vrednost izraza (b < 50), a vrednost je 1
onda se računa a -= 1 i dobija se 29

Dakle prvo se radi izraz sa desne strane, onda se vrednost izraza oduzme od a


to je bilo PITANJE, zasto ima veci prioritet "b < 50" u odnosu na "a -=" ako se uzme da je "a-=" samo precica za istu radnju, isto kao sto se zna za "-" ima veci proritet od "<"

Citat:

Ovo što ti pitaš spada u kategoriju UŽASNOG programiranja.
Ako imaš nedoumicu kojim redosledom će se obaviti operacije KORISTI ZAGRADE...

Takođe je odvratno da koristiš rezultat LOGIČKE operacije kao int.


takodje je LOGIČNO ODVRATNO da prozivas ljude za UŽASAN kod koji je uzet iz konteksta i uproščen zarad jednostavnosti pitanja (koji je mogao biti i generički)





 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3453

Jabber: djoka_l


+1462 Profil

icon Re: x-= y vs x=x-y ?29.01.2020. u 20:42 - pre 51 meseci
Ne pričaj gluposti, kada kažeš "po definiciji", DAJ DEFINICIJU.

https://en.cppreference.com/w/c/language/operator_precedence

Kao što se vidi, operator "-=" je u grupi koja ima najmanji prioritet (samo zarez ima niži).

Dakle, -= se računa POSLEDNJE.
 
Odgovor na temu

Karo
G.M.

Član broj: 50566
Poruke: 186
178.237.210.*



+3 Profil

icon Re: x-= y vs x=x-y ?30.01.2020. u 19:38 - pre 51 meseci
Citat:
Ne pričaj gluposti, kada kažeš "po definiciji", DAJ DEFINICIJU.


Ako x=x-y u matematici nije definicija, reci STAJE?

Citat:
https://en.cppreference.com/w/c/language/operator_precedence

Kao što se vidi, operator "-=" je u grupi koja ima najmanji prioritet (samo zarez ima niži).

Dakle, -= se računa POSLEDNJE.


TNX



 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: x-= y vs x=x-y ?

[ Pregleda: 1631 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Srodne teme
Kliknite za generisanje liste srodnih tema...
Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.