Precedence

ikona
Tento článek není dostatečně ozdrojován, a může tedy obsahovat informace, které je třeba ověřit.
Jste-li s popisovaným předmětem seznámeni, pomozte doložit uvedená tvrzení doplněním referencí na věrohodné zdroje.

V aritmetice a algebře jsou používána různá pravidla, která určují pořadí, v jakém se vyhodnocují operace ve výrazu. Priorita, s jakou se vyhodnocuje daná operace, se nazývá precedence.[1]

Precedence každé operace je otázkou vzájemné domluvy - konvence. Nelze ji nijak matematicky odvodit.

Precedenční pravidla používají při vyhodnocování výrazů různé programovací jazyky a moderní elektronické kalkulátory.

Obvyklé pořadí operací

Obvyklé pořadí, ve kterém se vykonávají operace ve složitějším výrazu, je:

  1. umocňování a odmocňování
  2. násobení a dělení
  3. sčítání a odčítání

Pokud ve výrazu nejsou žádné závorky, provádí se nejprve umocňování a odmocňování. Vícenásobné exponenty se vyhodnocují zprava doleva. Pak se provádí násobení a dělení, zleva doprava, nakonec pak sčítání a odečítání, také zleva doprava.

Pokud jsou ve výrazu závorky, provádí se vyhodnocování výrazu od obsahu nejvnitřejší závorky a směrem ven.[zdroj?] Při potřebě více dvojic závorek, které by se mohly navzájem plést, se pak dále používají hranaté závorky [ ] a složené závorky { }.[zdroj?]

Matematická precedence

Většina programovacích jazyků vyhodnocuje pořadí operací podle následující tabulky:

priorita operátor popis operace
1 () [] -> . :: ++ -- grupování a unární operace
2 ! ~ ++ – - + * & logická negace a unární operace
3 * / % MOD násobení, dělení, modulo
4 + - sčítání a odčítání
5 << >> bitové posuny
6 < <= > >= porovnání: větší než, menší než …
7 ==  != porovnání: rovnost a nerovnost
8 & bitové AND
9 ^ bitové XOR
10 | bitové OR
11 && logické A
12 || logické NEBO
13 = += -= *= /= %= &= ^= <<= >>= přiřazovací operátory

Příklady:

  • !A + !B → (!A) + (!B)
  • ++A + !B → (++A) + (!B)
  • A * B + C → (A * B) + C
  • A AND B OR C → (A AND B) OR C

Příklady

  • ( 4 + 10 / 2 ) / 9 = ( 4 + [ 10 / 2 ] ) / 9 = [ 4 + 5 ] / 9 = 1 {\displaystyle (4+10/2)/9=(4+[10/2])/9=[4+5]/9=1\,}
  • 2 3 2 = 2 [ 3 2 ] = [ 2 9 ] = 512 {\displaystyle 2^{3^{2}}=2^{[3^{2}]}=[2^{9}]=512\,}
  • 8 / 2 × 3 = [ 8 / 2 ] × 3 = [ 4 × 3 ] = 12 {\displaystyle 8/2\times 3=[8/2]\times 3=[4\times 3]=12\,}
  • 7 2 4 + 1 = [ 7 2 ] 4 + 1 = [ 5 4 ] + 1 = [ 1 + 1 ] = 2 {\displaystyle 7-2-4+1=[7-2]-4+1=[5-4]+1=[1+1]=2\,}

Další příklad

3 ( 5 ( 7 + 1 ) ) 2 × ( 5 ) + 2 {\displaystyle 3-(5-(7+1))^{2}\times (-5)+2\,}
3 ( 5 8 ) 2 × ( 5 ) + 2 {\displaystyle 3-(5-8)^{2}\times (-5)+2\,}
3 ( 3 ) 2 × ( 5 ) + 2 {\displaystyle 3-(-3)^{2}\times (-5)+2\,}
3 9 × ( 5 ) + 2 {\displaystyle 3-9\times (-5)+2\,}
3 ( 45 ) + 2 {\displaystyle 3-(-45)+2\,}
48 + 2 {\displaystyle 48+2\,}
48 + 2 = 50 {\displaystyle 48+2=50\,}

Odkazy

Reference

V tomto článku byl použit překlad textu z článku Order of operations na anglické Wikipedii.

  1. KRYNICKÝ, Martin. Priority operací, závorky/Lekce [online]. realisticky.cz, 2020 [cit. 2020-10-09]. Dostupné online. 

Související články

  • Asociativita
  • Distributivita
  • Komutativita

Externí odkazy

  • Logo Wikimedia Commons Obrázky, zvuky či videa k tématu Precedence na Wikimedia Commons
  • KRYNICKÝ, Martin. Priority operací, závorky/Příklady [online]. realisticky.cz, 2020 [cit. 2020-10-09]. Dostupné online.