JavaScript Matematik Komutları (Fonksiyonları)

Programlar matematiğin bir dalı olan algoritmalar üzerine kuruludur. Matematiği kötü olup da iyi yazılımcı olabilen kişi yoktur. Eğer matematik üzerine daha önce fazla düşmemişseniz, belki program yaparken matematiği sevebilir ve içinizde kalmış gizli bir yeteneğinizi keşfedebilirsiniz.

Ondalık Sayıları Tam Sayılara Çevirme Şekilleri
JavaScript`te bir sürü matematik komutu var ve bu kodların başına math. ön komutu konur. Hemen başlasak iyi olur. İlk kodumuz ondalık sayıları en yakın tam sayıya yuvarlamaya yarayan round() komutu. Uygulamada kullanım şeklini görüyoruz:

Javascript:

<html> 
<head> 
<title>Yuvarlama</title> 
</head> 
<body> 
<script language="JavaScript"> 
var i = 6.232, j= 43.534, k=17.4999999 
document.write(i + " sayısını yuvarlarsak: " + Math.round(i) + "<br>") 
document.write(j + " sayısını yuvarlarsak: " + Math.round(j) + "<br>") 
document.write(k + " sayısını yuvarlarsak: " + Math.round(k) + "<br>") 
</script> 
</body> 
</html>

Benzer bir kod olan ceil()`e (Türkçesi: tavan) bakalım. Bu komutla ondalık sayılar en yakında ve daha büyük olan tamsayıya eşitlenir; tamsayılar için değişen birşey olmaz. round kodunda ise ondalık sayı kendisinden düşük tamsayılara da eşitlenebiliyordu, aradaki fark bu.

Javascript:

<html> 
<head> 
<title>Tamamlama</title> 
</head> 
<body> 
<script language="JavaScript"> 
var i = 6.232, j= 43.534, k=17.4999999 
document.write(i + " sayısını tamamlarsak: " + Math.ceil(i) + "<br>") 
document.write(j + " sayısını tamamlarsak: " + Math.ceil(j) + "<br>") 
document.write(k + " sayısını tamamlarsak: " + Math.ceil(k) + "<br>") 
</script> 
</body> 
</html>

Yukarıdaki iki uygulamayı karşılaştırırsanız round() ile ceil() komutları arasındaki farkı görürsünüz. Şimdi bu iki koda benzeyen diğer koda geçiyorum: floor() (Türkçesi: taban). Ondalık sayıyı en yakındaki ve daha küçük olan tamsayıya çevirir. Yani bu kodu kullanarak ondalık sayının ondalıklı kısmını atıyoruz.

Javascript:

<html> 
<head> 
<title>Ondalık kısmı atma</title> 
</head> 
<body> 
<script language="JavaScript"> 
var i = 6.232, j= 43.534, k=17.4999999 
document.write(i + " sayısının ondalık kısmını atarsak: " + Math.floor(i) + "<br>") 
document.write(j + " sayısının ondalık kısmını atarsak: " + Math.floor(j) + "<br>") 
document.write(k + " sayısının ondalık kısmını atarsak: " + Math.floor(k) + "<br>") 
</script> 
</body> 
</html>

Maksimum ve Minimum Değerleri Bulma
Şimdi istatistiksel kodlara geçelim. İki sayıdan büyük olanını belirlemek için max() matematik kodundan yararlanırız. Hadi yararlanalım:

Javascript:

<html> 
<head> 
<title>Büyüğü seç</title> 
</head> 
<body> 
<script language="JavaScript"> 
document.write(Math.max(46, 95)) 
</script> 
</body> 
</html>

max() kodunun karşıtı min() kodudur, iki sayı arasından büyük olanı belirler.

Javascript:

<html> 
<head> 
<title>Küçüğü seç</title> 
</head> 
<body> 
<script language="JavaScript"> 
document.write(Math.min(46, 95)) 
</script> 
</body> 
</html>

Karekök Alma
Bir sayının karekökünü almak istersek sqrt() matematik kökünden yararlanabiliriz.

Javascript:

<html> 
<head> 
<title>Karekök</title> 
</head> 
<body> 
<script language="JavaScript"> 
var i = 6.232, j= 43.534, k=17.4999999 
document.write(i + " sayısının karekökü: " + Math.sqrt(i) + "<br>") 
document.write(j + " sayısının karekökü: " + Math.sqrt(j) + "<br>") 
document.write(k + " sayısının karekökü: " + Math.sqrt(k) + "<br>") 
</script> 
</body> 
</html>

Biraz bu uygulama üzerinde duralım. Uygulama sonucunda sayıların karekökleri noktadan sonra 15 rakamlı halde veriliyor. Mesela biz noktadan sonra sadece iki sayı olmasını istiyoruz. Nasıl yaparız? Bunun için ayrı bir koda ihtiyacımız yok, basit bir mantıkla hallederiz. Önce sayıları 100`le çarparız (üçlü ondalık isteseydik 1000`le çarpardık) sonra bu sayıları yuvarlar ve yine 100`e bölerdik. İşte sonuç:

Javascript:

<html> 
<head> 
<title>İki Ondalıklı Karekök</title> 
</head> 
<body> 
<script language="JavaScript"> 
var i = 6.232, j= 43.534, k=17.4999999 
var a, b, c 
document.write(i + " sayısının karekökü: " + Math.sqrt(i) + "<br>") 
document.write(j + " sayısının karekökü: " + Math.sqrt(j) + "<br>") 
document.write(k + " sayısının karekökü: " + Math.sqrt(k) + "<br><br>") 
a = Math.round(Math.sqrt(i) * 100) / 100 
b = Math.round(Math.sqrt(j) * 100) / 100 
c = Math.round(Math.sqrt(k) * 100) / 100 
document.write(i + " sayısının iki ondalıklı karekökü: " + a + "<br>") 
document.write(j + " sayısının iki ondalıklı karekökü: " + b + "<br>") 
document.write(k + " sayısının iki ondalıklı karekökü: " + c + "<br>") 
</script> 
</body> 
</html>

Uygulamamızın sonucunda ikiondalıklı 2.50 ve 6.60 sayıları, tek ondalıklı 2.5 ve 6.6 halinde görünürler. (İstersek koşul deyimleriyle bunu da engelleriz ama uğraşmayalım şimdi.)

Mutlak Değer Alma
Sayıların mutlak değerini elde etmek için abs() kodunu kullanırız. Kullanalım:

Javascript:

<html> 
<head> 
<title>Mutlak Değer</title> 
</head> 
<body> 
<script language="JavaScript"> 
var i = -6.232, j= 43.534, k=-17.4999999 
document.write(i + " sayısının mutlak değeri: " + Math.abs(i) + "<br>") 
document.write(j + " sayısının mutlak değeri: " + Math.abs(j) + "<br>") 
document.write(k + " sayısının mutlak değeri: " + Math.abs(k) + "<br>") 
</script> 
</body> 
</html>

Trigonometrik İşlemler
Aşağıda trigonometrik işlemler yapan matematik kodlarını listeledim. Sayfa uzamasın diye örnek çözmüyorum, aynı şekilde Math. uzantılı kullanılırlar.
cos() Sayının kosinüsünü gösterir. (radyal değerler kullanın)
Math.cos(3.141592653589793)
sin() Sayının sinüsünü gösterir
Math.sin(3.141592653589793/2)
tan() Sayının tanjantını gösterir.
Math.tan(3.141592653589793/4)
acos() Sayının arkkosinüsünü gösterir. (radyal değerler verir.)
Math.acos(0.5)
asin() Sayının arksinüsünü gösterir.
Math.asin(0.25)
atan() Sayının arktanjantını gösterir.
Math.atan(1)

Değişkenlere Rasgele Sayı Değeri Atama
Şimdi çok geniş alanlarda kullanılabilen bir kod öğreneceğiz: random(). Bu kod rasgele bir sayı verir. Aşağıdaki uygulamaya bakalım.

Javascript:

<html> 
<head> 
<title>Rasgele Sayı</title> 
<script language="JavaScript"> 
function rasgele() 
{ 
var i = Math.random() 
sayfa = window.open("","yeni_sayfa", "toolbar=0,location=0,directories=0, status=0, menubar=0,scrollbars=0,resizable=1, copyhistory=0,width=280, height=300, left=200, screenX=200, top=100, screenY=100") 
sayfa.document.write(i + "<br>") 
} 
</script> 
</head> 
<body> 
<form> 
<input type="button" value="Rasgele Sayı" onclick="rasgele()"> 
</form> 
</body> 
</html>

Uygulamamızdaki düğmeye 40 defa falan basın ve sonuç penceresindeki rasgele sayıları inceleyin. Şöyleyebileceklerimiz: Bu sayıların hepsi ondalık tabanda bulunuyor. İki basamaklı rasgele tamsayılar elde etmek istersek ne yaparız? Cevap: Sayıyı 100 ile çarpar ve yuvarlarız:

Javascript:

<html> 
<head> 
<title>Rasgele İki Basamaklı Sayılar</title> 
<script language="JavaScript"> 
function rasgele() 
{ 
var i = Math.random() 
sayfa = window.open("","yeni_sayfa", "toolbar=0,location=0,directories=0, status=0, menubar=0,scrollbars=0,resizable=1, copyhistory=0,width=280, height=300, left=200, screenX=200, top=100, screenY=100") 
sayfa.document.write(Math.round(i * 100) + "<br>") 
} 
</script> 
</head> 
<body> 
<form> 
<input type="button" value="Rasgele Sayı" onclick="rasgele()"> 
</form> 
</body> 
</html>

Pin It on Pinterest