Statistika testů
K této kapitole
Zodpovězených: 0
Správně: 0
Špatně: 0
Úspěšnost: 0%
Nezodpovězených: 0

Pro testování a jeho statistické vyhodnocení je nutné se přihlásit.


Celkem
Zodpovězených: 0
Správně: 0
Špatně: 0
Úspěšnost: 0%
Nezodpovězených: 0

Aritmetické operátory
Předvedeme si operátory pro vytváření číselných výrazů.
RNDr. Dušan Kovář, Ph.D.
27. listopadu 2005
Počet návštěv: 16482

Aritmetické operátory slouží pro provádění operací s aritmetickými datovými typy. Uveďme si jejich výčet:

  • + (plus) - provede součet číselných hodnot operandů vlevo a vpravo a vrátí na dané místo vypočtenou hodnotu
  • - (mínus) - provede rozdíl číselných hodnot operandů vlevo a vpravo a vrátí na dané místo vypočtenou hodnotu
  • * (krát) - provede součin číselných hodnot operandů vlevo a vpravo a vrátí na dané místo vypočtenou hodnotu
  • / (děleno) - provede podíl číselných hodnot operandů vlevo a vpravo a vrátí na dané místo vypočtenou hodnotu
  • % (modulo) - provede zbytek po dělení číselných hodnot operandů vlevo a vpravo a vrátí na dané místo vypočtenou hodnotu

Všechny uvedené operátory jsou binární (pracují se dvěma operandy) a zapisují se ve známém infixovém tvaru (mezi operandy).

Napišme program, ve kterém vyzveme uživatele k zadání dvou celočíselných hodnot. Následně vypíšeme na příkazový řádek výsledky uvedených operací s těmito zadanými čísly:

using System;

namespace AritmetickeOperatory.Priklad1
{
   class VstupniBodProgramu
   {
      static void Main()
      {
         // Vyzveme uživatele k zadání čísel
         // a tato zadaná čísla uložíme do proměnných:
         Console.Write("Zadejte první číslo: ");
         int prvniCislo = int.Parse(Console.ReadLine());
         Console.Write("Zadejte druhé číslo: ");
         int druheCislo = int.Parse(Console.ReadLine());

         // Vypíšeme výsledky operací:
         Console.WriteLine("prvniCislo + druheCislo = {0}",
            prvniCislo + druheCislo);
         Console.WriteLine("prvniCislo - druheCislo = {0}",
            prvniCislo - druheCislo);
         Console.WriteLine("prvniCislo * druheCislo = {0}",
            prvniCislo * druheCislo);
         Console.WriteLine("prvniCislo / druheCislo = {0}",
            prvniCislo / druheCislo);
         Console.WriteLine("prvniCislo % druheCislo = {0}",
            prvniCislo % druheCislo);

         Console.ReadLine();

      }
   }
}

Vyzkoušejte aplikovat tyto operátory na různé aritmetické typy, celočíselné i s plovoucí řádovou čárkou. Obzvláště věnujte pozornost celočíselnému dělení, ve kterém je výsledkem vždy celé číslo, např. 10 / 4 je 2.

Další skupinou operátorů, která v tomto kontextu stojí za zmínku, jsou operátory inkrementace a dekrementace. Inkrementace znamená zvýšení hodnoty o jedna, dekrementace snížení o jedna. Tyto operace se v programu provádějí relativně často, například v příkazech pro cyklus, proto mají zkrácený zápis:

  • ++ (inkrementace) - zvětší hodnotu proměnné o 1
  • -- (dekrementace) - zmenší hodnotu proměnné o 1

Z této definice je zřejmé, že se jedná o unární operátory - aplikují se na jeden operand, kterým je v tomto případě proměnná aritmetického typu. Vyskytují se však ve dvou verzích:

  • prefixové - nejdříve se změní hodnota proměnné a pak se teprve vyhodnotí (s již změněnou hodnotou)
  • postfixové - nejdříve se proměnná vyhodnotí (s původní hodnotou) a pak se teprve změní její hodnota
using System;

namespace AritmetickeOperatory.Priklad2
{
   class VstupniBodProgramu
   {
      static void Main()
      {
         // Deklarujeme dvě proměnné:
         int i = 5;
         int j = 10;
         // Vypíšeme jejich hodnoty:
         Console.WriteLine("i = {0}, j = {1}", i, j);
         // Vypíšeme výsledek této operace:
         Console.WriteLine("i++ + --j = {0}", i++ + --j);
         // A opět vypíšeme jejich hodnoty:
         Console.WriteLine("i = {0}, j = {1}", i, j);

         Console.ReadLine();
      }
   }
}

Velmi často je potřeba změnit hodnotu proměnné, například zvětšit ji o deset anebo dvakrát. Příkaz, kterým zvětšíme hodnotu proměné i o deset, může vypadat následovně:

i = i + 10;

V tomto příkazu se nejdříve vyhodnotí pravá strana a tento výsledek se potom přiřadí proměnné i. Pro takovou operaci existuje zvláštní přiřazovací operátor +=. Uvedený příkaz lze tedy zapsat také takto:

i += 10;

Pro přiřazení proměnným aritmetického typu můžeme kromě prostého přiřazení také použít následující operátory:

  • +=  k proměnné vlevo přičte hodnotu operandu vpravo
  • -=  od proměnné vlevo odečte hodnotu operandu vpravo
  • *=  proměnnou vlevo vynásobí hodnotou operandu vpravo
  • /=  proměnnou vlevo vydělí hodnotou operandu vpravo
  • %=  do proměnné vlevo uloží zbytek po dělení původní hodnoty této proměnné hodnotou operandu vpravo


Úkoly ke kapitole "Aritmetické operátory"

Nechť uživatel zadá číslo. Dále zadá činitel, kterým se má dané číslo vynásobit. Pak zadá menšitel, o který se má mezivýpočet zmenšit. Nakonec vypište na příkazový řádek výsledek.

Na určitém řádku programu požadujete zvětšit hodnotu proměnné cislo o 1. Vypište čtyři způsoby, jak to učinit.

Napište program, ve kterém uživatel zadá čas v sekundách a na příkazový řádek se vypíše hlášení ve formátu:

... s = ... h ... min ... s 
Hodnocení kapitoly "Aritmetické operátory"
Oslovila vás tato kapitola?
Ohodnoťte její obsah počtem bodů od 1 (nejhorší) do 10 (nejlepší):
Průměrné hodnocení: 10
Celkem hodnotilo 8 osob.
Jednotlivá hodnocení: 
Diskuze ke kapitole "Aritmetické operátory"

Napadá vás zajímavá otázka související s touto kapitolou?

Přidejte do diskuze
Zatím diskutovaná témata:

vy kurvyyyyy [tvoje máma, 10.11.2016 13:13:02 ]  
Cermaaaaaat 666
Nefunkční kód [Martin Benda, 1.11.2008 22:29:18 ]  
Tento kód:
using System;

namespace AritmetickeOperatory.Priklad2
{
   class VstupniBodProgramu
   {
     static void Main()
     {
         // Deklarujeme dvě proměnné:
         int i = 5;
         int j = 10;
         // Vypíšeme jejich hodnoty:
         Console.WriteLine("i = {0}, j = {1}", i, j);
         // Vypíšeme výsledek této operace:
         Console.WriteLine("i++ + --j = {0}", i++ + --j);
         // A opět vypíšeme jejich hodnoty:
         Console.WriteLine("i = {0}, j = {1}", i, j);

         Console.ReadLine();
     }
   }
}
nefunguje správně. Po spuštění nesprávně sečítá. Pokud k číslu 5 přičtu jedničku mám 6, od čísla 10 odečtu jedničku, mám 9. 6+9=15 a nikoliv 14, jak vypíše program. Chybu jsem odstarnil tak, že jsem znaménka ++ dal před i a nikoliv za.
jine reseni [Tony, 19.9.2006 17:18:12 ]  
Neni to asi tak jak autor zamyslel, ale da se toto reseni povazovat za spravne? using System; namespace TypySPlovouciRadovouCarkou.Priklad2 { class VstupniBodProgramu { static void Main() { Console.Write("zadejte cislo: "); double cislo = double.Parse(Console.ReadLine()); Console.Write("zadejte cinitel pro nasobeni: "); double nasobek = double.Parse(Console.ReadLine()); Console.Write("Zadejte mensitel pro odcitani: "); double odecet = double.Parse(Console.ReadLine()); Console.WriteLine("vysledek ={0}", (cislo * nasobek) - odecet); Console.ReadLine(); } } }

Vyhledávání
Související kapitoly
Celočíselné typy
Uvádíme přehled a užití datových typů pro práci s celými čísly.
Desítkový typ
Zde si předvedeme užití číselného datového typu s velkou přesností.
Operátory
Co je to operátor a klasifikace operátorů.
Typy s plovoucí řádovou čárkou
Ukážeme si datové typy pro práci z desetinnými čísly a s velkými a malými hodnotami, které zapisujeme pomocí mocniny deseti.
Přečtěte si knihu
C# Programujeme profesionálně
Robinson S., Allen K. S., Cornes O., Glynn J., Greenvoss Z., Harvey B., Nagel Ch. a další
Computer Press 2003

Programování v Microsoft .NET - Webové aplikace
Prosise, Jeff
Computer Press 2002

Programování Microsoft Windows v jazyce C#
Charles Petzold
Computer Press 2003
Programovací jazyk C# | Programování Windows Forms | Architektura .NET | ASP.NET | Dodatky | Diskuze
RNDr. Dušan Kovář, Ph.D.
Gymnázium Olomouc-Hejčín