Logo
Hľadanie
Rozšírené vyhľadávanie
TOP 7 - stránky
Napaľovacie programy - 100 126x
Free Pascal - Úvod - 44 114x
3D grafické programy - 27 899x
Internetové prehliadače - 27 277x
Free Pascal - Začiatky - 25 230x
Multimediálne prehrávače - 22 525x
Download manažéry - 20 965x
Nové v diskusii
Free Pascal - Vymenovaný typ - pondelok 14.4.
Programovanie - utorok 1.4.
Free Pascal - Premenné - piatok 21.2.
Navigácia: Tvorba Webu > PHP - Matematika

PHP - Matematika

PHP umožňuje vykonávať najrôznejšie matematické operácie. Teraz si ich predstavíme.

Celé čísla

Celé čísla (nazývané int) môžeme zapísať nasledujúcimi spôsobmi:

$a = 154; // kladné číslo
$b = -215; // záporné
$c = 015; // číslo v osmičkovej sústave
$d = 0x5B; // hexadecimálne číslo

Desatinné čísla

Desatinné čísla nazývame tiež float. Miesto desatinnej čiarky používame bodku. Čísla sa dajú zapisovať aj v tzv. vedeckej notácii (s použitím exponenta 10).

$e = 57.4;
$f = 2.8e3; // 2 celé 8 krát 10 na tretiu
$g = 8E-5; // 8 krát 10 na mínus piatu

Aritmetické operátory

Skúsime spočítať, koľko je 2 plus 2. Výsledok vypíšeme.

echo (2 + 2);

Teraz trochu zložitejší príklad.

$mensenec = 12;
$mensitel = 5;
$vysledok = -($mensenec - $mensitel);
echo $vysledok;

Najprv sa vypočíta príklad v zátvorke (menšenec mínus menšiteľ) a potom sa zmení znamienko. Výsledok: -7.

Prehľad základných aritmetických operátorov:

Operátor Popis
+ sčítanie
- odčítanie
* násobenie
/ delenie
% zvyšok po delení

Delenie

Výsledkom nasledujúceho delenia:

echo (7 / 3);

je 2.33333333333. To je samozrejmé, ale možno sa pýtate, aký operátor potom slúži na celočíslené delenie (výsledok by bol 2). Odpoveď: Žiadny. PHP nemá celočíselné delenie. Musíme zaokrúhliť nadol výsledok bežného delenia.

Kombinované operátory

Programátori často používajú operácie takéhoto typu:

/* zväčšenie čísla o 6 */
$premenna = $premenna + 6;

Preto si to zjednodušili a vymysleli kombinované operátory. Predchádzajúci kód sa dá zapísať aj takto:

$premenna += 6;

Sčítanie však nie je jediná operácia, s ktorou to funguje. Poznáme aj operátory -=, *=, /= a %=.

Prírastok a úbytok

Aj nasledujúce operátory slúžia na zjednodušenie kódu. Príkazom

$cislo++;

zväčšíme hodnotu premennej cislo o 1. Je to teda to isté ako

$cislo = $cislo + 1;

Analogicky, pomocou $cislo-- hodnotu premennej zmenšíme o 1.

Poznáme i operácie ++$c a --$c. Ak ++ napíšeme pred názov premennej, hodnota sa najprv zväčší a potom sa vráti výsledok.

$c = 1;
echo ++$c;

Príklad vypíše: 2. Teraz skúsme dať ++ za názov premennej.

$c = 1;
echo $c++; // vypíše 1
echo " ";
echo $c; // vypíše 2

V tomto prípade sa najprv vypísala pôvodná hodnota $c (1) a až potom sa zväčšila. Pri ďalšom výpise bola už hodnota správna (2).

Bitové operátory

Pre ich pochopenie je potrebné vedieť pracovať s číselnými sústavami, najmä s binárnou.

Operátor & nastaví výslednému číslu jednotkové bity všade tam, kde sú aj v prvom, aj v druhom čísle.

Číslo 240 = 1111 0000
Číslo 170 = 1010 1010
240 & 170 = 1010 0000

Nasledujúci príklad vypíše 160 (binárne 1010 0000):

echo 240 & 170;

Operátor | (zvislá čiara) nastaví bity „1“ tam, kde sú jednotky aspoň v jednom z dvoch zadaných čísel. No a ^ spôsobí, že výsledné číslo bude mať jednotkové bity tam, kde ich malo práve jedno zo zadaných.

Unárny operátor ~ nastaví všetky bity na opačné, ako boli v pôvodnom čísle:

Číslo 43 = 10 1011
~Číslo   = 01 0100

Nasledujúci príklad:

$cislo = 43;
echo ~$cislo;

by mal teda vypísať 20 (binárne 01 0100). To však nie je pravda. Pred 10 1011 (teda 43) je ešte kopa núl, aby číslo zaberalo 32 bitov. Príklad teda vypíše -44, čo je decimálny zápis čísla 111...(kopa jednotiek)...01 0100. Nemusíte sa nad tým trápiť, ani mne sa to nepáči, ale je to už raz tak.

Asi vás to už nudí, ale ešte musím spomenúť operátor <<, ktorý posunie bity doľava o daný počet miest.

Číslo 7 = 00111
7 << 2  = 11100 = 28
echo 7 << 2; // vypíše 28

Podobne, >> posúva doprava.

Hodnotenie
1 2 3 4 5 (ako v škole)
Priemerná známka: 3,35
Diskusia k tejto stránke Príspevok na túto tému zatiaľ neexistuje. Môžete pridať prvý z nich!
Prejsť do diskusie»
2005-2012, Matúš Sulír, matus.sulir (zav) gmail bodka com. Gen.: 0,0686 s. Valid XHTML, CSS.