C++ Öncelik Örnekleri

C Oncelik Ornekleri



C++'da operatörlerle çalışırken tüm işlemlerin gerçekleştirildiği bir sıra vardır. Kodumuzun ifadesinde birden fazla operatörle çalışırken operatör önceliği kullanılır. Örneğin; toplama, çıkarma, çarpma ve bölme operatörleri ile çalışırken, çarpma ve bölme işlemleri öncelikleri yüksek olduğundan önce soldan sağa doğru, toplama ve çıkarma işlemleri ise sırasıyla soldan sağa doğru yapılır. çarpma ve bölme işleminden daha düşük önceliğe sahiptir. Ancak ifade yalnızca toplama ve çıkarma işleçlerini içeriyorsa işlem basitçe soldan sağa doğru gerçekleştirilir. Burada operatör önceliği tablosunu ve operatör önceliği örneklerini göstereceğiz.

Aritmetik İşlemlerin Operatör Önceliği







Operasyon Operatörler Öncelik
parantez () Bu parantezler çalıştırılır.
çarpma, bölme, modül *, /, % Bu işlemler gerçekleştirilir ve sırası soldan sağa doğru olur.
Ekleme çıkarma +, – Bu işlemler sonda gerçekleştirilir ve sırası soldan sağa doğru olur.

Örnek 1:

Kodumuza “iostrem” isimli başlık dosyasını ekleyerek başlayalım. Kodumuzda kullanacağımız bu “iostream” başlık dosyasında birçok fonksiyon deklare edilmiştir. Altına “namespace std” yazıyoruz ve ilerideki “main()” komutunu çağırıyoruz. Burada “main()” içerisinde “i”, “j” ve “k” isimli değişkenleri “int” ile bildiriyoruz ve buraya ilettiğimiz değerler “10”, “37” ve “29”, sırasıyla. Sonucun kaydedildiği “r” değişkenini de deklare ediyoruz.



Bundan sonra “+, “/” ve “-” operatörlerini kullanarak bir ifade yazıyoruz. Daha önce de açıkladığımız gibi bu işlemler sırayla gerçekleştirilir. Buraya yerleştirdiğimiz ifade “i + j / k – j” olup, burada önce bölme işlemi yapılır, ardından toplama ve çıkarma işlemleri yapılır. “r” değişkenini tamsayı olarak bildirdiğimizde sonucu tamsayı değerlerinde görüntüler. Aşağıda “cout” kullanarak hesaplanan sonucu görüntülüyoruz.



Kod 1:

#include

kullanarak ad alanı std ;

int ana ( )

{

int Ben = 10 , J = 37 , k = 29 , R ;

R = Ben + J / k - J ;

cout << 'Verilen ifadenin sonucu = ' << R ;

geri dönmek 0 ;

}

Çıktı:

Tüm işlemler yapıldıktan sonra çıktı “-26” olur. Bu sonuç, C++ dili tarafından sağlanan operatör önceliğine göre hesaplanır.





Örnek 2:

Bu kodda başlık dosyasını ekleyip “main()”i çağırdıktan sonra “val1” adında bir “int” değişkeni başlatıyoruz ve içine “9 + 18*7” yazdığımız ifadeyi yerleştiriyoruz. Burada önce çarpma işlemini yapar, sonra çarpılan değere “9” ekler. Aşağıda “int val2”yi “9 + (18*7)” ile başlatıyoruz.



Burada öncelikle parantezlerin çözülmesi gerekiyor. Daha sonra ekleme işlemi gerçekleştirilir. Bundan sonra da “(9 + 18) * 7” ifadesi ile “int val3”ü başlatıyoruz. Bu ifadede yine önce parantezlere işlem yapılır, ardından çarpma işlemi yapılır. İfade değerleri aynıdır ancak operatör önceliği nedeniyle benzersiz sonuçlar sağlarlar. Şimdi devam edip “val1”, “val2” ve “val3” değişkenlerinde saklanan tüm sonuçları “cout” yardımıyla yazdırıyoruz.

Kod 2:

#include

kullanarak ad alanı std ;

int ana ( ) {

int seçim1 = 9 + 18 * 7 ;
int val2 = 9 + ( 18 * 7 ) ;
int val3 = ( 9 + 18 ) * 7 ;


cout << 'İlk sonuç şunu gösteriyor = ' << seçim1 << sonunda ;

cout << 'İkinci sonuç şunu gösteriyor = ' << val2 << sonunda ;

cout << 'Üçüncü sonuç şunu gösteriyor = ' << val3 << sonunda ;

geri dönmek 0 ;

}

Çıktı:

Verilen ifadeyi hesapladıktan sonra elde ettiğimiz sonuç aşağıdaki gibidir. Değerler aynı olsa da üçüncü sonucun diğer ikisiyle aynı olmadığını görüyoruz. Bunun nedeni, ifadenin operatörüne uygulanan operatör önceliğidir.

Örnek 3:

Burada farklı değişkenleri farklı değerlerle başlatıyoruz ve tüm bu değişkenlerin veri türü “int” oluyor. Sırasıyla “14”, “9”, “15” ve “29” değerlerine sahip “a”, “b”, “c” ve “d” tamsayı değişkenlerimiz var. Bundan sonra “int R1”i başlatıyoruz ve buraya yerleştirdiğimiz ifade “a + b) * c / d” oluyor. Önce parantezler çözülür. Daha sonra çarpma ve bölme işlemleri gerçekleştirilir. Bunun altında da sonucu gösteriyoruz. Daha sonra elimizde “a – b*(d+a)+c” ifadesiyle “int R2” var. Burada da parantez çözülür ve ardından operatör önceliğine göre çıkarma ve toplama işlemleri yapılır. Ayrıca sonucunu yazdırıyoruz ve “b – d + c * a” ifadesinin yazıldığı yerde “int R3”ü başlatıyoruz. Bu ifadede önce çarpma işlemi yapılır, ardından çıkarma ve toplama işlemi yapılır. Bu ifadenin sonucu aşağıdaki şekilde de gösterilmektedir. Artık sonucu “R4” değişkeninde saklanan son “d + (a * b) / a” ifadesine sahibiz. Bu ifadede önce parantezler çözülür, sonra bölünür. Sonunda ekleme yapılır. Bu ifadenin sonucu şu şekilde gösterilmektedir:

Kod 3:

#include

kullanarak ad alanı std ;

int ana ( ) {

int A = 14 ;
int B = 9 ;
int C = on beş ;
int D = 29 ;
int R1 = ( A + B ) * C / D ;


cout << '(a + b) * c / d ' << 'verir =' << R1 << sonunda ;

int R2 = A - B * ( D + A ) + C ;

cout << 'a - b (d + a) + c ' << 'verir =' << R2 << sonunda ;

int R3 = B - D + C * A ;

cout << 'b - d + c * a ' << 'verir =' << R3 << sonunda ;

int R4 = D + ( A * B ) / A ;

cout << 'd + (a * b) / a ' << 'verir =' << R4 << sonunda ;

geri dönmek 0 ;

}

Çıktı:

Daha önce bahsedilen ifadelerin hesaplanmasının sonucu aşağıdadır. Bu sonucu elde ediyoruz çünkü ifadedeki operatörlere operatör önceliği uygulanıyor:

Örnek 4:

Burada “a1”, “b1”, “c1”, “d1”, “e1” ve “f1” değişkenlerini “64”, “90”, “11”, “27” tamsayı değerleriyle başlatıyoruz, Sırasıyla “34” ve “98”. Burada “int result1”i “a1 + b1 – c1) *d1/f1” ifadesi ile başlatıyoruz ve sonuç “result1” değişkeninde saklanıyor. Burada öncelikle parantezlerin çözülmesi gerekiyor. Daha sonra kalan işlemler sırasıyla hesaplanır. Daha sonra “result1” çıktısını alıyoruz. Aynı şekilde ifadeleri de hesaplayıp farklı değişkenlerde saklıyoruz. Daha sonra, operatör önceliğinin nasıl çalıştığını göstererek tüm sonuçları ayrı ayrı yazdırırız.

Kod 4:

#include

kullanarak ad alanı std ;

int ana ( ) {

int a1 = 64 ;
int b1 = 90 ;
int c1 = on bir ;
int d1 = 27 ;
int e1 = 3. 4 ;
int f1 = 98 ;
int sonuç1 = ( a1 + b1 - c1 ) * d1 / f1 ;


cout << 'Sonuç 1:' << sonuç1 << sonunda ;

int sonuç2 = a1 + ( f1 * b1 ) / e1 ;

cout << 'Sonuç 2:' << sonuç2 << sonunda ;

int sonuç3 = e1 + d1 + a1 - c1 * b1 / a1 ;

cout << 'Sonuç 3:' << sonuç3 << sonunda ;

int sonuç4 = a1 - f1 + ( b1 - d1 ) * c1 ;

cout << 'Sonuç 4:' << sonuç4 << sonunda ;

int sonuç5 = ( f1 + ( a1 * ( b1 + a1 ) - f1 ) * a1 + e1 ) ;

cout << 'Sonuç 5:' << sonuç5 << sonunda ;

geri dönmek 0 ;

}

Çıktı:

Daha önce girdiğimiz tüm ifadelerin sonucunu gösteren, verilen kodun çıktısı burada oluşturulur. Tüm ifadeler sıra öncelik kuralına göre hesaplanır.

Çözüm

Burada, C++ programlamasında hesaplanan operatörlerin sırasını derinlemesine incelediğimiz “C++ önceliğine” baktık. Ayrıca operatörlerin sırasını tablo halinde gösterdik ve ardından C++ programlamada ifadelerin sıra önceliğine göre nasıl çözüldüğünü öğrendiğimiz çok sayıda örnek gerçekleştirdik.