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

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

 

C++ - 2. lekce - dodatek

Google       Google       13. 4. 2005       47 230×

  • 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

Obrázek ke článku Seznamte se s open source platformou NopCommerce – 1. díl

Seznamte se s open source platformou NopCommerce – 1. díl

Hledáte e-commerce řešení, které si dokážete přizpůsobit podle vašich požadavků? Chcete čistý a srozumitelný kód, se kterým bude radost pracovat? Prozkoumejte s námi možnosti open source projektu NopCommerce. Seriál programování pod NopCommerce Vám pomůže překonat první kroky nejistoty a úspěšně zvládnout vývoj pod platformou NopCommerce.

Reklama
Reklama
Obrázek ke článku Facebook spouští službu Marketplace V ČR

Facebook spouští službu Marketplace V ČR

Společná platforma Marketplace usnadní lidem na Facebooku vyhledávání, nákup a prodej použitého zboží na lokální úrovni. Bude tak přímou konkurencí pro weby a aplikace se stejným zaměřením jako je například Letgo, Bazoš, Aukro, Sbazar a další.

Reklama autora

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032017 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý