Автор Тема: Приоритет на действията  (Прочетена 30998 пъти)

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Приоритет на действията
« -: 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=?
И него не можах да сметна. Не е ли умножението с по-висок приоритет пред събирането?
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

Acho

  • Напреднали
  • *****
  • Публикации: 5293
  • Distribution: Slackware, MikroTik - сървърно
  • Window Manager: console only
    • Профил
    • WWW
Re: Приоритет на действията
« Отговор #1 -: Feb 14, 2012, 15:07 »
И защо да е 200 ? За да е 200, трябва да е така:

1000 - (500 + 300) = ?

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

CPU - Intel Quad-Core Q8400, 2.66 GHz; Fan - Intel Box; MB - Intel G41M-T2; RAM - DDR2-800, Kingston HyperX, 2X2048 MB; VC - onboard, Intel G41 Express Chipset; HDD - Toshiba, 500 GB, SATAII; SB - Realtek HD Audio; DVD-RW - TSSTcorp DVD-RW; LAN - Realtek PCI-E GBE Controller; PSU - Fortron 350 Watt.

v_badev

  • Напреднали
  • *****
  • Публикации: 1355
    • Профил
Re: Приоритет на действията
« Отговор #2 -: Feb 14, 2012, 15:25 »
Умножението е с по-висок приоритет и затова отговора при събирането на многото единици е 14. Може да го провериш в конзолата на python.
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: Приоритет на действията
« Отговор #3 -: 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
Нямаме деление, а наклонената черта е само съкратен указател за дробно число.
Правилото на двата оператора е по-сложно от правилото "отляво надясно", но пък дава логическо обяснение на извършеното действие. Така че, в зависимост от асоциативното мислене на съответния човек, всеки може да си избере кое правило му е по-лесно за помнене ;)
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

romeo_ninov

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

0x2B|~0x2B

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: Приоритет на действията
« Отговор #5 -: Feb 14, 2012, 16:44 »
това е вярно почти във всички случаи! Но при степенуване операциите се извършват от дясно на ляво

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

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

luda_glawa

  • Напреднали
  • *****
  • Публикации: 652
  • Distribution: Kubuntu
  • Window Manager: KDE
    • Профил
    • WWW
Re: Приоритет на действията
« Отговор #6 -: 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
Активен

С Уважение:

Luda Glawa ;-)

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: Приоритет на действията
« Отговор #7 -: Feb 14, 2012, 19:10 »
//offtopic
Ще те върна в първи клас :D

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

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Re: Приоритет на действията
« Отговор #8 -: Feb 14, 2012, 20:32 »
това е вярно почти във всички случаи! Но при степенуване операциите се извършват от дясно на ляво

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

2^2^2^2=2^(2^(2^2))
Активен

0x2B|~0x2B

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: Приоритет на действията
« Отговор #9 -: Feb 14, 2012, 23:34 »
Първо да, учи се не знам в кой клас точно, но предполагам едва ли е след трети. Проблемът е че няма много логично обяснение защо става отляво надясно и поради тази причина стават такива чуденки :) А съвсем спокойно би могло да е отдясно наляво, вероятно ще е по-интиуитивно ако си арабин или евреин :) По-специално ако си евреин, защото при тях, азбуката едновременно с това е и бройна система (макар и това да е по-валидно за староеврейския, защото сега доколкото знам почти не се използва). Примерно първата буква, алеф=1, бет=2, гимел=3 и т.н. Разни малоу^H^H^H^H^Hхора цяла псевдо-наука на базата на това са развили, дори си откриват някакви тайни числа в цитати от библията. Та тези хора сигурно си правят сметките отзад напред, поради това че и пишат отзад напред, знам ли ги :)
Активен

"Knowledge is power" - France is Bacon

romeo_ninov

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

0x2B|~0x2B