Математика за 1ви клас
Здравейте,
имам главоблъсканица с простите изчисления, малко помощ моля. -1-1-1=1 ? -1+1+1= -3.. шаш!
int aa = - 1 - 1 - 1; Console.WriteLine(aa); Out: -3
int bb = c - c - c; Console.WriteLine(bb); Out: 1
int a = -5;
int b = 5;
int c = -1;
int sumA = a - b; Console.WriteLine(sumA); Out: -10
int sumB = b - a; Console.WriteLine(sumB); Out: 10
int sumC = a - a - a - a - a; Console.WriteLine(sumC); Out: 15
int sumD = a + a; Console.WriteLine(sumD); Out: -10
int sumE = c + c + c + c + c; Console.WriteLine(sumE); Out: -5
Защо се получава така че 'a' и 'b' само с разменени позиции си променят резултата(при sumA и sumB), след като се извършва една и съща операция? Да кажем че при другите (C,D,E) може да се хване някаква идея макар че ми е абсурдна, но не разбирам за (A и B) какво се случва.
Който е наясно нека обясни моля да не гадая, че си чупих главата пак с задача заради тези.. Благодаря.
Като цяло, след като присвоим отрицателна стойност в даден израз, той си запазва отрицателната стойност, но визуално при решението на задачата по напред, той губи знакът си(визуално) за отрицателна стойност.
int minusNomber = -1; и вече пресвоил отрицателна стойност, но визуално няма знак "-" за него! И в последствие при мен заблудата беше "plusNomber - minusNomber"
И понеже на това ниво аз поне повече внимавам с синтаксиса на езика, приемам елементарната математика за даденост и започва и заблудата че ако израз няма знак за "-" той не може да е отрицателен макар и да го знаеш че е така. Отговорът ти е пред очите, но не достигаш до него, защото всичко останало ти е като китайски език, и допускаш че грешката ти е в синтаксиса на C#.
Както казах по горе, разбрах къде греша след като пуснах темата, но предполагам че и други може да имат подобен проблем затова и оставих темата, а не я изтрих.
Благодаря за обобщителния отговор!
Да, точно така, трябва да се прави разлика между име на променлива и нейната стойност, както в математическите изрази така и в програмният код. Абсурдно е да кръстим някоя променлива -х, т.е int -x; e неприемливо, дори забранено, за това както казваш ти, променливата крие своята стойност, т.е нейното име е само пълномощник или референция, но не и същност (стойност) .