Linux за българи: Форуми

Хумор, сатира и забава => Живота, вселената и някакви други глупости => Темата е започната от: b2l в Feb 14, 2012, 15:02



Титла: Приоритет на действията
Публикувано от: b2l в Feb 14, 2012, 15:02
1000 - 500 + 300 = ?
На колко е равно това? На 800 или на 200?
Всъщност гледах един пример нещо от рода на: 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1*0=?
И него не можах да сметна. Не е ли умножението с по-висок приоритет пред събирането?


Титла: Re: Приоритет на действията
Публикувано от: Acho в Feb 14, 2012, 15:07
И защо да е 200 ? За да е 200, трябва да е така:

1000 - (500 + 300) = ?

а то не е, няма ни скоби, ни нищо - затуй караш по ред и това е. И разбира се умножение/деление е преди събиране/изваждане.


Титла: Re: Приоритет на действията
Публикувано от: v_badev в Feb 14, 2012, 15:25
Умножението е с по-висок приоритет и затова отговора при събирането на многото единици е 14. Може да го провериш в конзолата на python.


Титла: Re: Приоритет на действията
Публикувано от: neter в Feb 14, 2012, 15:45
Приоритети на операторите:
Цитат
1. Изчисления в скоби
2. Умножение и деление
3. Събиране и изваждане
Когато формулата съдържа два или повече оператора от един и същи приоритет (както в случая), смятането се извършва отляво надясно.
Скобите са ясни, защото са сами в приоритета си, но често се получава чудене, когато трябва да се съпоставят оператори от един и същи приоритет от другите две групи оператори. Правилото за смятане отляво надясно е просто, но не дава логическо обяснение защо се прави така, и без логическо обяснение, лесно се забравя.
Всъщност 4-те оператора (събиране, изваждане, умножение и деление) не са 4, а са 2 - събиране и умножение. Операторите "изваждане" и "деление" реално не са оператори, а съкратено представяне на събиране и умножение на отрицателни и дробни числа. Имайки предвид това, горният пример всъщност е:
Цитат
1000 + -500 + 300 = 800
Нямаме изваждане, а минусът е само указател за отрицателно число. Ето и пример за умножението:
Цитат
9 / 2 * 7 = 9 * 1/2 * 7 = 9 * 0.5 * 7 = 31.5
Нямаме деление, а наклонената черта е само съкратен указател за дробно число.
Правилото на двата оператора е по-сложно от правилото "отляво надясно", но пък дава логическо обяснение на извършеното действие. Така че, в зависимост от асоциативното мислене на съответния човек, всеки може да си избере кое правило му е по-лесно за помнене ;)


Титла: Re: Приоритет на действията
Публикувано от: romeo_ninov в Feb 14, 2012, 16:17
Приоритети на операторите:
Цитат
1. Изчисления в скоби
2. Умножение и деление
3. Събиране и изваждане
Когато формулата съдържа два или повече оператора от един и същи приоритет (както в случая), смятането се извършва отляво надясно.
......
това е вярно почти във всички случаи! Но при степенуване операциите се извършват от дясно на ляво


Титла: Re: Приоритет на действията
Публикувано от: b2l в Feb 14, 2012, 16:44
това е вярно почти във всички случаи! Но при степенуване операциите се извършват от дясно на ляво

Може ли пример, че не вдянах много...


Титла: Re: Приоритет на действията
Публикувано от: luda_glawa в Feb 14, 2012, 17:57
1000 - 500 + 300 = ?
На колко е равно това? На 800 или на 200?
Всъщност гледах един пример нещо от рода на: 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1*0=?
И него не можах да сметна. Не е ли умножението с по-висок приоритет пред събирането?


//offtopic
Ще те върна в първи клас :D


Титла: Re: Приоритет на действията
Публикувано от: b2l в Feb 14, 2012, 19:10
//offtopic
Ще те върна в първи клас :D

Това не се учи в първи клас.


Титла: Re: Приоритет на действията
Публикувано от: romeo_ninov в Feb 14, 2012, 20:32
това е вярно почти във всички случаи! Но при степенуване операциите се извършват от дясно на ляво

Може ли пример, че не вдянах много...

2^2^2^2=2^(2^(2^2))


Титла: Re: Приоритет на действията
Публикувано от: gat3way в Feb 14, 2012, 23:34
Първо да, учи се не знам в кой клас точно, но предполагам едва ли е след трети. Проблемът е че няма много логично обяснение защо става отляво надясно и поради тази причина стават такива чуденки :) А съвсем спокойно би могло да е отдясно наляво, вероятно ще е по-интиуитивно ако си арабин или евреин :) По-специално ако си евреин, защото при тях, азбуката едновременно с това е и бройна система (макар и това да е по-валидно за староеврейския, защото сега доколкото знам почти не се използва). Примерно първата буква, алеф=1, бет=2, гимел=3 и т.н. Разни малоу^H^H^H^H^Hхора цяла псевдо-наука на базата на това са развили, дори си откриват някакви тайни числа в цитати от библията. Та тези хора сигурно си правят сметките отзад напред, поради това че и пишат отзад напред, знам ли ги :)


Титла: Re: Приоритет на действията
Публикувано от: romeo_ninov в Feb 14, 2012, 23:38
Първо да, учи се не знам в кой клас точно, но предполагам едва ли е след трети. Проблемът е че няма много логично обяснение защо става отляво надясно и поради тази причина стават такива чуденки :) А съвсем спокойно би могло да е отдясно наляво, вероятно ще е по-интиуитивно ако си арабин или евреин :) По-специално ако си евреин, защото при тях, азбуката едновременно с това е и бройна система (макар и това да е по-валидно за староеврейския, защото сега доколкото знам почти не се използва). Примерно първата буква, алеф=1, бет=2, гимел=3 и т.н. Разни малоу^H^H^H^H^Hхора цяла псевдо-наука на базата на това са развили, дори си откриват някакви тайни числа в цитати от библията. Та тези хора сигурно си правят сметките отзад напред, поради това че и пишат отзад напред, знам ли ги :)
Заради подобни изпълнения хората си ползват обратен полски запис, там няма как да сгрешиш :)
Бе чудя се аз защо преди време forth ми харесваше толкова много