JavaScript Temelleri

Bölüm 2

Temel Bilgiler

2.7 - Aritmetik İşlemciler (Devam)

Bölüm 2 Sayfa 9

2.7.4 - Gruplama () İşlemcisi ve İfadeler

Javascript programlama dilinde, ifadeler içinde çeşitli işlemciler olan bir ardışık işlem grubudur. Sayısal ifadelerin daima sayısal bir sonucu, sözel ifadelerin de sözel bir sonucu olacaktır.

Sayısal ifadelere, programcılığın ilk evrelerinde, cebir biliminin kurucusu, Abbasîler devrinde Bağdatta yaşamış Horasan asıllı türk matematikçi, Bağdat Üniversitesi Matematik Profesörü El Harzemî (Al Khorazmi) nin "Algorismus" adı verilmiş olan cebirsel ifadelerinin anısına Algoritma adı verilmiştir. Bu ad, zamanla matematikte bilgisayar yardımı ile gerçekleştirilen çözüm yöntemlerine de verilmeye başlanmıştır.

JavaScript ifadeleri, böl ve çözümle sistemine göre çözümlenirler. İşlemcilerin öncelik tablosundaki öncelikleri, bir ifadenin öncelik sıralarına göre nasıl hesaplanacağını açıklar.

Gruplama işlemcisi, ifadelerin gruplar halinde organize edilerek, daha kolay ve daha iyi yönetilebilen, dolayısı ile daha kolay anlaşılabilen ifadeler oluşturulabilmesi için yararlı olur. Gruplama operatörü biribirini tamamlayan sağ ve sol parantezler halinde kullanılır. Gruplama için açılan parantezlerin kapatılması şarttır. Gruplar içiçe istenilen derinlikte olabilir. En derin grubun içeriği en yüksek önceliğe sahiptir. Grubun içinde, öncelik kuralları aynı grubun dışarısında olduğu gibi geçerlidir. Örnek olarak, 3 + 9/3 ifadesinin sonucu 6 olacaktır, çünkü JavaScript yorumlayıcısı, ifadeyi, öncelik sıralarına göre, 3 + (9/3) olarak algılayacaktır. Eğer, (3 + 9) / 3 işleminin sonucunun hesaplanması amaçlanıyorsa, görüldüğü gibi, gruplama işlemcisinin kullanılması şarttır. Burada öncelik sırası, gruplama işlemcisinde olduğuna göre, önce 9 +3 = 12 işlemi yapılacak ve sonra ikinci öncelikteki 12 / 3 işlemi yapılarak sonuç 4 olarak belirlenecektir.

İfadelerin değerlendildiği örnekler incelenirken, yanlış düzenlenen gruplamaların, hesapların sonuçlarını değiştirebildiği görülebilecektir. Bu sorunlarla en ileri bilgisayar programlarında dahi karşılaşılabilir. Bu durumda, algoritmaların son derece bilinçli ve dikkatli olarak düzenlenmesi gerektiği anlaşılır. Her algoritmanın, düzenlendikten sonra kontrol edilmesi, denenmesi, sonuçların karşılaştırılması ve sonuçlardan emin oluncaya kadar kontrolün devam ettirilmesi gerekir. Matematik ifadelerin hesaplanmasında Java Script Deneme programı çok yararlı olabilir. Yanlış düzenlenen algoritmalar, programın mantık hataları olarak adlandırılan ve hiç bir şekilde bilgisayara dayalı çözümü olmayan hatalar arasındadır. Mantık hataları olan bir programı, bilgisayar sadece sözdizimi kontrolü yaptığından, hatasız olarak nitelendirecektir. Bir kez mantık hatası yapılırsa, programda farkedilmeden sonsuza kadar kalabilir ve sürekli olarak yanlış sonuçlar üretebilir. Örnekler incelerek işlemlerin yürüyüşü ve öncelik sıraları tam olarak anlaşılmalıdır. Hesaplanacak ifadelerde gerektirdiğinde, hesapların yürüyüşünü açık olarak belirtmek için gruplama işlemcisinin kullanımından kaçınılmamalıdır. İyi bir gruplama yöntemi, ifadelerin herkes tarafından kolay anlaşılmasını ve JavaScript yorumlayıcısının ifadeleri öngörülen yönde ve doğru olarak değerlendirmesini olumlu etkileyecektir. Programlarda doğru sonuç alınmasının ilk koşulu, algoritmaların açıklık ve kesinlik sağlayacak yönde, iyi bir şekilde gruplanmasıdır. İlk bakışta sonucunun kestirilmesi zor bir ifadeyi içeren bir uygulamanın, JavaScript kodları aşağıda görülmektedir.

/* <![CDATA[  */

/* Bu Program bdelib.js Kitaplık Programını Kullanmaktadır */

function ifade() {
var u =2;
var x = 67 + u * u * (3 * (u + 1) + (5 / 2 * u + 1) * (u - 1));

veriYaz(x, 'b2.7.4-uyg-1-sonuç-1', 'b2.7.4-uyg-1-sonuç-2');
}

sayfaYüklendiktenSonraÇalıştır(ifade);

/* ]]> */
		

Sonuç : Veri Tipi :

olarak bulunur. Yukarıdaki programda, en derin iki grup, (u+1) ve (5/2*u+1) ve (u-1) gruplarıdır. Öncelikle bu gruplar çözümlenirler. Bundan sonra (3*3 + 6 * 1) grubu oluşacaktır. Bunun sonucu 15 dir sonra, 67 + 2 * 2 * 15 işlemleri kalacaktır. Çarpım işlemcisinin öncelik sırası en yüksek olduğu için, ilk olarak 2 * 2 * 15 işlemleri yapılarak sonuç olarak 60 bulunur. En sonunda, en düşük öncelikli en dış toplama işlemcisi uygulanarak 67 + 60 işlemi yapılır ve toplam sonuç olan 127 değeri bulunur.

Görüldüğü gibi, algoritmada her türlü yanlış öncelik öngörüsü ve gruplama hatası, hesap sonucunun yanlış çıkmasına neden olur. Bilgisayar programlaması hata kaldırmaz. Her türlü hatanın baştan önlenebilmesi için, programcının son derece bilgili ve dikkatli olması gerekir.

2.7.4 - Gruplama () İşlemcisi ve İfadeler

Javascript programlama dilinde, ifadeler içinde çeşitli işlemciler olan bir ardışık işlem grubudur. Sayısal ifadelerin daima sayısal bir sonucu, sözel ifadelerin de sözel bir sonucu olacaktır.

Sayısal ifadelere, programcılığın ilk evrelerinde, cebir biliminin kurucusu, Abbasîler devrinde Bağdatta yaşamış Horasan asıllı türk matematikçi, Bağdat Üniversitesi Matematik Profesörü El Harzemî (Al Khorazmi) nin "Algorismus" adı verilmiş olan cebirsel ifadelerinin anısına Algoritma adı verilmiştir. Bu ad, zamanla matematikte bilgisayar yardımı ile gerçekleştirilen çözüm yöntemlerine de verilmeye başlanmıştır.

JavaScript ifadeleri, böl ve çözümle sistemine göre çözümlenirler. İşlemcilerin öncelik tablosundaki öncelikleri, bir ifadenin öncelik sıralarına göre nasıl hesaplanacağını açıklar.

Gruplama işlemcisi, ifadelerin gruplar halinde organize edilerek, daha kolay ve daha iyi yönetilebilen, dolayısı ile daha kolay anlaşılabilen ifadeler oluşturulabilmesi için yararlı olur. Gruplama operatörü biribirini tamamlayan sağ ve sol parantezler halinde kullanılır. Gruplama için açılan parantezlerin kapatılması şarttır. Gruplar içiçe istenilen derinlikte olabilir. En derin grubun içeriği en yüksek önceliğe sahiptir. Grubun içinde, öncelik kuralları aynı grubun dışarısında olduğu gibi geçerlidir. Örnek olarak, 3 + 9/3 ifadesinin sonucu 6 olacaktır, çünkü JavaScript yorumlayıcısı, ifadeyi, öncelik sıralarına göre, 3 + (9/3) olarak algılayacaktır. Eğer, (3 + 9) / 3 işleminin sonucunun hesaplanması amaçlanıyorsa, görüldüğü gibi, gruplama işlemcisinin kullanılması şarttır. Burada öncelik sırası, gruplama işlemcisinde olduğuna göre, önce 9 +3 = 12 işlemi yapılacak ve sonra ikinci öncelikteki 12 / 3 işlemi yapılarak sonuç 4 olarak belirlenecektir.

İfadelerin değerlendildiği örnekler incelenirken, yanlış düzenlenen gruplamaların, hesapların sonuçlarını değiştirebildiği görülebilecektir. Bu sorunlarla en ileri bilgisayar programlarında dahi karşılaşılabilir. Bu durumda, algoritmaların son derece bilinçli ve dikkatli olarak düzenlenmesi gerektiği anlaşılır. Her algoritmanın, düzenlendikten sonra kontrol edilmesi, denenmesi, sonuçların karşılaştırılması ve sonuçlardan emin oluncaya kadar kontrolün devam ettirilmesi gerekir. Matematik ifadelerin hesaplanmasında Java Script Deneme programı çok yararlı olabilir. Yanlış düzenlenen algoritmalar, programın mantık hataları olarak adlandırılan ve hiç bir şekilde bilgisayara dayalı çözümü olmayan hatalar arasındadır. Mantık hataları olan bir programı, bilgisayar sadece sözdizimi kontrolü yaptığından, hatasız olarak nitelendirecektir. Bir kez mantık hatası yapılırsa, programda farkedilmeden sonsuza kadar kalabilir ve sürekli olarak yanlış sonuçlar üretebilir. Örnekler incelerek işlemlerin yürüyüşü ve öncelik sıraları tam olarak anlaşılmalıdır. Hesaplanacak ifadelerde gerektirdiğinde, hesapların yürüyüşünü açık olarak belirtmek için gruplama işlemcisinin kullanımından kaçınılmamalıdır. İyi bir gruplama yöntemi, ifadelerin herkes tarafından kolay anlaşılmasını ve JavaScript yorumlayıcısının ifadeleri öngörülen yönde ve doğru olarak değerlendirmesini olumlu etkileyecektir. Programlarda doğru sonuç alınmasının ilk koşulu, algoritmaların açıklık ve kesinlik sağlayacak yönde, iyi bir şekilde gruplanmasıdır. İlk bakışta sonucunun kestirilmesi zor bir ifadeyi içeren bir uygulamanın, JavaScript kodları aşağıda görülmektedir.

/* <![CDATA[  */

/* Bu Program bdelib.js Kitaplık Programını Kullanmaktadır */

function ifade() {
var u =2;
var x = 67 + u * u * (3 * (u + 1) + (5 / 2 * u + 1) * (u - 1));

veriYaz(x, 'b2.7.4-uyg-1-sonuç-1', 'b2.7.4-uyg-1-sonuç-2');
}

sayfaYüklendiktenSonraÇalıştır(ifade);

/* ]]> */
		

Sonuç : Veri Tipi :

olarak bulunur. Yukarıdaki programda, en derin iki grup, (u+1) ve (5/2*u+1) ve (u-1) gruplarıdır. Öncelikle bu gruplar çözümlenirler. Bundan sonra (3*3 + 6 * 1) grubu oluşacaktır. Bunun sonucu 15 dir sonra, 67 + 2 * 2 * 15 işlemleri kalacaktır. Çarpım işlemcisinin öncelik sırası en yüksek olduğu için, ilk olarak 2 * 2 * 15 işlemleri yapılarak sonuç olarak 60 bulunur. En sonunda, en düşük öncelikli en dış toplama işlemcisi uygulanarak 67 + 60 işlemi yapılır ve toplam sonuç olan 127 değeri bulunur.

Görüldüğü gibi, algoritmada her türlü yanlış öncelik öngörüsü ve gruplama hatası, hesap sonucunun yanlış çıkmasına neden olur. Bilgisayar programlaması hata kaldırmaz. Her türlü hatanın baştan önlenebilmesi için, programcının son derece bilgili ve dikkatli olması gerekir.

Valid XHTML 1.1