V tomto matematickém díle si povíme nejen o sčítání a odčítání
Někdy se hodí provádět více než jen aritmetické výpočty a o tom bude tento díl.
Aritmetika
Základní aritmetické operátory jsou součet (+), součin (*), rozdíl (-) a podíl (-). Dalo by se mezi ně zařadit také modulo dělení (%), které určuje zbytek po celočíselném dělení.Příklad modulo dělení:
10%5=0 // 10/5=2 zbytek je 0
10%3=1 // 10/3=3 zbytek je 1
8%3=2 // 8/3=2 zbytek je 2
Modulo dělení se nejčastěji používá pro zjištění sudého nebo lichého řádku, většinou zvýraznění. Máme-li například cyklus:
for (var i=0; i<10; i++) {
var temp="Řádek číslo "+i;
if (i%2!=0) document.write("<b>"+temp+"</b><br>");
else document.write(temp+"<br>");
}
Zvýrazní nám takto každý druhý řádek:
Řádek číslo 0
Řádek číslo 1
Řádek číslo 2
Řádek číslo 3
Řádek číslo 4
Řádek číslo5
Řádek číslo 6
Řádek číslo 7
Řádek číslo 8
Řádek číslo 9
Pracujete s číslem nebo řetězcem?
Také při aritmetických výpočtech je potřeba si dát pozor, hlavně u sčítání, které značí také spojování řetězců. Pokud získáváme data z nějakých formulářů nebo jinak je vždy lepší pro jistotu převést text na číslo (funkce eval("řetězec");) nebo pokud chcete pracovat s řetězcem převést číslo na text (funkce String(číslo);). Nejnázornější bude příklad: var a="5";
var b="3";
a+b // vytiskne 53, protože spojujeme řetězce
eval(a)+b // opět 53, převedeno bylo jen jedno číslo
eval(a+b) // opět 53, na rozdíl od předchozích, ale bude výsledek typu int, tedy číslo
eval(a)+eval(b) //toto je konečně správný tvar, výsledek je 8
var a=5;
var b=3;
a+b // výsledek bude 8
eval(a)+eval(b) //výsledek bude 8
String(a)+b // výsledek bude 53
Vyšší počty
Pro složitější výpočty existuje v JavaScriptu objekt Math, který obsahuje některé funkce a konstanty.Konstanty
V matematice existuje řada konstant, mezi nejznámější patří zřejmě Ludolfovo číslo.Vlastnost | Popis | Hodnota | Příklad |
E | Eulerovo číslo | 2.718 | Math.E |
LN2 | Přirozený logaritmus se základem 2 | 0.693 | Math.LN2 |
LN10 | Přirozený logaritmus se základem 10 | 2.302 | Math.LN10 |
LOG2E | Logaritmus se základem 2 | 1.442 | Math.LOG2E |
LOG10E | Logaritmus se základem 10 | 0.434 | Math.LOG10E |
PI | Ludolfovo číslo | 3.14159 | Math.PI |
SQRT1_2 | Odmocnina z 0.5 | 0.707 | Math.SQRT1_2 |
SQRT2 | Odmocnina ze 2 | 1.414 | Math.SQRT2 |
Funkce
abs()Vrací absolutní hodnotu argumentu
Math.abs(-5); // 5
Math.abs(5); // 5
acos()
Vrací arcus kosinus (v radiánech)
Math.acos(1); //0
Math.acos(0); //1.570 (PI/2)
asin()
Vrací arcus sinus (v radiánech)
Math.asin(0); //0
Math.asin(1); //1.570 (PI/2)
atan()
Vrací arcus tangens (v radiánech)
Math.atan(0); //0
ceil()
Vrací číslo zaokrouhlené nahoru na celé číslo, bez ohledu na pravidla o zaokrouhlování.
Math.ceil(1.000001); // 2
Math.ceil(-1.99999); // -1
cos()
Vrací kosinus čísla
Math.cos(Math.PI); // -1
exp()
Vrací hodnotu e^x (ex) z čísla x
Math.exp(5); //148.4131
floor()
Vrací číslo zaokrouhlené dolů na celé číslo, bez ohledu na pravidla o zaokrouhlování.
Math.floor(1.999999); // 1
Math.floor(-1.000001); // -2
log()
Vrací přirozený logaritmus čísla
Math.log(Math.E); // 1
max(a,b)
Vrací vyšší hodnotu ze zadaných
Math.max(5,3); // 5
min(a,b)
Vrací nižší hodnotu ze zadaných
Math.min(5,3); // 3
pow(a,b)
Vrací mocninu a^b (ab)
Math.pow(2,5); // 32
random()
Vrací pseudonáhodné číslo mezi 0 a 1
Math.random(); //0.5376814596820623
round()
Vrací zaokrouhlednou hodnotu podle pravidel
Math.round(1.5); // 2
Math.round(-1.5); // -1
sin()
Vrací sinus čísla
Math.sin(0); // 0
sqrt()
Vrací odmocninu z čísla
Math.sqrt(16); // 4
Math.sqrt(15); // 3.87298
tan()
Vrací tangens čísla
Math.tan(-Math.PI); // 1.2246063538223773e-16
Příští díl bude o práci s textovými řetězci.
Autor: Martin