ARİTMETİK İŞLEMLER


A. Belirsizliği önlemek için parantez boyutu. Aritmetik ifadeler için varsayılan bir değerlendirme sırasına güvenmeyin. Tüm aritmetik ifadelerde, uygun değerlendirme sırasını tanımlamak için parantezler kullanılmalıdır. Örneğin, aşağıdaki belirsiz ifade: A-B / C / D, A- (B / C) / D veya A = B / (C / D) olmalıdır. Daha iyi bir form, bölümlerden birini çarpma ile değiştirir.


B. Birbirini izleyen üsleri içeren ifadeler (A ** B ** C gibi) değerlendirme sırasını göstermek için açıkça parantez içine alınmalıdır. Değerlendirme sırası parantez ile netleştirilir (örn. A ** (B ** C)).


C. Üs olarak kullanılan tam sayılar tamsayı sabitleri veya tamsayı değişkenleri olmalıdır.


D. Karışık mod aritmetik ifadeleri önerilmez. Karışık mod atamalarına veya aritmetik ifadelere yalnızca tür dönüştürme işlevlerinin (ör. INT (X), FLOAT (N), DBLE (X)) açıkça kullanılmasıyla izin verilir. Tamsayı üs alma işlemi karışık mod aritmetiği olarak kabul edilmez.


E. Etki alanı kısıtlı olan bir işlem gerçekleştirildiğinde, işlem yürütülmeden önce işlemin geçerliliği kontrol edilmelidir. Sınırlı alan adlarıyla yapılan bazı işlemler şunlardır:

     1. Bölme - Her paydada sıfır veya sıfıra yakın bir değer olup olmadığını kontrol edin.

     2. Karekök - Argümanın negatif olmadığından emin olun.

     3. Log veya Ln fonksiyonları - Argümanın sıfırdan büyük olduğundan emin olun.

     4. Arcsine veya Arccosine - Argümanın mutlak değerinin birinden küçük veya ona eşit olduğundan emin olun.

     5. Arctan2 - Bağımsız değişkenlerin her ikisinin de sıfır olmadığından emin olun.

 

F. Hesaplanan bir kayan nokta değerinin tam olarak diğerine eşit olup olmadığını test etmek çok risklidir. Hesaplanan değişkenlerin eşitliği için tüm kayan nokta testleri, değeri hedef bilgisayarın birim yuvarlaklığı ile sınırlanan bir test doğruluğu toleransı içermelidir.
G. Neredeyse eşit kayan nokta sayılarının çıkarılmasından kaçınılmalıdır. Hesaplamaları yeniden yapılandırın veya bu durumda çift duyarlıklı kodlama kullanın. Arzu edilen miktar için alternatif bir ifade bulunarak problem genellikle önlenebilir.
Örneğin, kayan nokta miktarı ifadesi

           A = 1.0 - COS (X)

tarafından daha iyi hesaplama biçiminde verilir.

           A = 2.0* (SIN(0.5*X))**2

İki ifade matematiksel olarak aynıdır, ancak X sıfıra yakınsa, ikinci ifade bir bilgisayarda kullanım için daha uygundur. Başka bir örnek;

          A=sqrt(1.0+X)-sqrt(1.0-X)

X sıfıra yaklaştıkça çok kararsızdır, ancak;

          A= 2.0 * X / sqrt(1.0+X)-sqrt(1.0-X)

 

matematiksel olarak eşdeğerdir ve X sıfıra yaklaştıkça sayısal problemden kaçınır. Her iki örnekte de tercih edilen ifadenin görünüşü orijinal ifadeden daha karmaşıktır. Bu nedenle, daha karmaşık ifadeyi kullanmanın nedeni yorumlarda dikkatle açıklanmalıdır.

 

H.   Gerçek bir işlev kullanırken, genel adını kullanın. Genel adlar, iç fonksiyonların referansını basitleştirir, çünkü aynı fonksiyon adı birden fazla argüman türüyle kullanılabilir. Örneğin, DSQRT (X), X bağımsız değişkeninin çift kesinlikli bir sayı olmasını gerektirir. Bununla birlikte, SQRT (X) kullanılırsa (karekök işlevinin genel biçimi), bağımsız değişken tek veya çift kesinlikli olabilir ve sonuç, bağımsız değişkenle aynı tür olacaktır.

 

 

 

 

 

 

Comments powered by CComment