MFF UK / Ústav teoretické fyziky / Tomáą Ledvinka
Přednáąky
. . . . . . . . . . . . . . . . . . . . . . . . . .
Programování pro fyziky (1.r)
  Úvod
  Programy a algoritmy
  Píąeme program
  Píąeme program II
    Aritmetické operátory a typy
    Logické operátory
    Celá čísla v počítači
    Logické operace(celá čísla)
    Hrubá síla
    Pár příkladů
  Procedury a funkce
  Malujeme funkce
  Chyby. Typy I.
  Typy II. Pole a Záznamy
  Pole II.Řetězce.Soubory.
  Gnuplot.Interpolace...
  Matice. Velké O...
  Fronta,Zásobník. Postscript
  Bin. soubory, ...
  Ukazatele,Objekty, ...
Maple pro fyziky (3.r)
Klasická elektrodynamika (2.r)
Vybrané partie OTR

Cvičení
. . . . . . . . . . . . . . . . . . . . . . . . . .
Programování pro fyziky (1.r)
Teoretická mechanika (2.r)
Klasická elektrodynamika (2.r)


Věda
. . . . . . . . . . . . . . . . . . . . . . . . . .
Diskové zdroje v OTR
Hyperbolické systémy v OTR


Kontakt
. . . . . . . . . . . . . . . . . . . . . . . . . .
Email
Konzultační hodiny


Ostatní
. . . . . . . . . . . . . . . . . . . . . . . . .
Mallorca
Ze společnosti

Aritmetické operátory a typy

Cím se liší následující výrazy?

    1*1
    1/1
    1>1

Především výraz (1>1) nemá hodnotu číselnou ale logickou.
Protože lomítko je symbolem pro reálné dělení, je výsledek podílu 1/1
"reálná jednička", zatímco u součinu je ta jednička celé číslo.
 

Operandy +-*/ mohou být čísla realná nebo celá, div a mod mají jako operandy pouze čísla celá.
Za předpokladu, že proměnné x,y,i a j jsou deklarovány takto:

  var i,j : integer; 
      x,y : real;

můžeme aritmetické oprace shrnout v následující tabulce
 

  význam operand výsledek příklad-->  typ výsledku 
+ sčítání real, integer real,integer x+i      -->  real 
- odčítání real,integer real,integer i-j        -->  integer
* násobení real,integer real,integer x*y      --> real
/ reálné dělení real,integer real i/j         --> real
div celočíselné dělení integer integer i div j   -->  integer
mod zbytek při dělení  integer integer i mod j -->  integer

Pro oparace +-* platí, že výsledek je celé číslo pouze pokud jsou oba operandy celá čísla.

Hodnota celočíselného podílu

   i div j

je rovna hdonotě reálného podílu zaokrouhlené směrem k nule, tedy

   i div j  = trunc(i/j)

Pro záporná i a/nebo j je tato definice kompatibilní se vztahy
  (-i)/j  = - (i/j),  i/(-j) = - (i/j)

Operace mod splňuje vztah
     i mod j = i – (i div j) * j

Obvukle ji budme používat pouze pro j>0 a i>=0, kdy platí že
   i mod j = 0..j-1
tedy jde o běžnou operaci zbytku po dělení a např.
  17 mod 5 = 2 .

Pokud je j=0, způsobí operace
  x / j
  i div j
  i mod j
krach programu.

Unární oprátory + - nemění typ.


.