C++ - 2. lekce - dodatek
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

C++ - 2. lekce - dodatekC++ - 2. lekce - dodatek

 

C++ - 2. lekce - dodatek

Google       Google       13. 4. 2005       46 273×

  • priority operátorů
  • nejčastější chyby

Reklama
Reklama

Priorita operátorů

Můžete C++ věřit při provádění komplikovaných aritmetických výpočtů? Ano, ale musíte znát pravidla, která C++ používá. Použijete-li více operandů, můžete se začít ptát, který se aplikuje první.

Příklad


int celkem = 3 
+ 4 * 5;  // 35 nebo 23?

Pokud použijete více operandů, C++ uplatní pravidla o prioritě. Aritmetické operátory dodržují obvyklé algebraické pořadí - násobení, dělení a zjištění zbytku po celočíselném dělení se provádějí před sčítáním a odčítáním. Proto 3 + 4 * 5 znamená 3 + (4 * 5). Výsledek: 23.

Samozřejmě na posílení vašich priorit můžete libovolně používat závorky.

Ale...


float oper = 120 / 4 * 5;  // 150 nebo 6?

Operátory * a / mají stejnou prioritu, který bude první?

V takovém případě C++ postupuje dle takovýchto priorit:

Jinak posuzuje, zda má operand asociaci zleva doprava, čí zprava doleva.

Ale vysvětlení je poněkud těžkopádné, proto jsou jednoduší závorky - jste si jistí, že se stane to, co chcete.


Ve sloupci PRIORITA vidíte několik skupin, všechny operátory v dané skupině mají stejnou prioritu a stejnou asociativitu, která je buď zleva doprava (v tabulce označena L-P) nebo zprava doleva (P-L).

To znamená, že například 120 / 6 * 5 má asociativitu dle tabulky L-P - zleva doprava, bude to tedy stejné, jako (120/6) * 5, což je 100.

Nejčastější chyby v úkolech:

  1. Nevím, proč includujete zbytečné či neexistující soubory (#include <vcl.h> a #include <stdlib.h>
  2. Místo int main() píšete jen int main - tam musí být závorky!
  3. Nepoužíváte na konci cin.get(); (viz 1. lekce)
  4. Nepoužívejte syntaxe z C, učíte se přeci C++, ne? Žádné printf apod..
  5. Nemůžete napsat jen tak endl; - musíte to poslat do výstupu, tedy: cout << endl; nebo cout << " ";

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
(fotka) Lukáš ChurýLukáš je šéfredaktorem Programujte, vyvíjí webové aplikace, fascinuje ho umělá inteligence a je lektorem na FI MUNI, kde učí navrhovat studenty GUI. Poslední dobou se snaží posunout Laser Game o stupeň výše a vyvíjí pro něj nové herní aplikace a elektroniku.
Web     Twitter     Facebook     LinkedIn    

Nové články

Reklama
Reklama
Obrázek ke článku Mobilní datový provoz vzroste sedmkrát.

Mobilní datový provoz vzroste sedmkrát.

Už v roce 2021 bude mít více obyvatel zeměkoule mobilní telefon (5,5 miliardy) než bankovní účet (5,4 miliardy), tekoucí vodu (5,3 miliardy) nebo pevnou telefonní linku (2,9 miliardy). Vyplývá to z analytické studie Cisco Visual Networking Index (VNI) Global Mobile Data Traffic Forecast (2016 to 2021). Analytici také předpovídají, že se tento výrazný růst, spolu s rozmachem chytrých telefonů a připojení do internetu věcí promítne i do celkového objemu přenesených mobilních dat. Studie říká, že do roku 2021 vzroste sedminásobně, k čemuž přispěje i zvyšování přenosové rychlosti sítí a nárůst sledování videa na mobilních zařízeních.

Reklama autora

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032017 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý