Matematik İşlemleri
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:
<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>
[Sayfayı göster] [Temizle] [İlk haline getir]
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.
<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>
[Sayfayı göster] [Temizle] [İlk haline getir]
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.
<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>
[Sayfayı göster] [Temizle] [İlk haline getir]
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:
<html> <head> <title>Büyüğü seç</title> </head> <body> <script language="JavaScript"> document.write(Math.max(46, 95)) </script> </body> </html>
[Sayfayı göster] [Temizle] [İlk haline getir]
max() kodunun karşıtı min() kodudur, iki sayı arasından büyük olanı belirler.
<html> <head> <title>Küçüğü seç</title> </head> <body> <script language="JavaScript"> document.write(Math.min(46, 95)) </script> </body> </html>
[Sayfayı göster] [Temizle] [İlk haline getir]
Karekök Alma
Bir sayının karekökünü almak istersek sqrt() matematik kökünden yararlanabiliriz.
<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>
[Sayfayı göster] [Temizle] [İlk haline getir]
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ç:
<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>
[Sayfayı göster] [Temizle] [İlk haline getir]
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:
<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>
[Sayfayı göster] [Temizle] [İlk haline getir]
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.
<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>
[Sayfayı göster] [Temizle] [İlk haline getir]
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:
<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>
[Sayfayı göster] [Temizle] [İlk haline getir]
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.
Kaynak www.volkanderinbay.net/ders/dersjscr.asp
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:
<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>
[Sayfayı göster] [Temizle] [İlk haline getir]
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.
<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>
[Sayfayı göster] [Temizle] [İlk haline getir]
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.
<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>
[Sayfayı göster] [Temizle] [İlk haline getir]
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:
<html> <head> <title>Büyüğü seç</title> </head> <body> <script language="JavaScript"> document.write(Math.max(46, 95)) </script> </body> </html>
[Sayfayı göster] [Temizle] [İlk haline getir]
max() kodunun karşıtı min() kodudur, iki sayı arasından büyük olanı belirler.
<html> <head> <title>Küçüğü seç</title> </head> <body> <script language="JavaScript"> document.write(Math.min(46, 95)) </script> </body> </html>
[Sayfayı göster] [Temizle] [İlk haline getir]
Karekök Alma
Bir sayının karekökünü almak istersek sqrt() matematik kökünden yararlanabiliriz.
<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>
[Sayfayı göster] [Temizle] [İlk haline getir]
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ç:
<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>
[Sayfayı göster] [Temizle] [İlk haline getir]
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:
<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>
[Sayfayı göster] [Temizle] [İlk haline getir]
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.
<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>
[Sayfayı göster] [Temizle] [İlk haline getir]
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:
<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>
[Sayfayı göster] [Temizle] [İlk haline getir]
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.
Kaynak www.volkanderinbay.net/ders/dersjscr.asp
Yorumunuzu Ekleyin