Java Script Matematik Komutları
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>
Düğmeye defalarca basarsanız, uygulamanızın doğru olup, olmadığı
hakkında fikir edinebilirsiniz. Nihayet bu dersi de devirdik. DHTML`e
geçmeye az kaldı, biraz gayret.
|