BÖLÜM 3 3.1.Atama Deyimi (Assignment) Bir değişkene bir değer(sabit, değişken, ifade) vermek. DeğişkenAdı = değer; x = 8 ; y = x + 15 ; y = (8 - x) / (2 - x) ;
3.2.Matematiksel ifadeler Matematiksel ifadeleri günlük hayattaki biçimde bilgisayarda yazamadığımız için belli bir kurallar uymamız gerekir. Kullandığımız matematiksel işlemler ve anlamları şöyledir: + , - , * , / toplama, çıkarma, çarpma, bölme % tamsayı bölme sonucundaki kalanı verir (modulus) 7. / 2 ---> 3.5 (nokta sayının gerçel yorumlanmasını sağlar) 7 / 2 ---> 3 (sayılar int kabul edilip sonuçta int tipine dönüştürülür) 7 % 2 ---> 1 2 % 7 ---> 2 2 / 7 ---> 0
3.3.Mantık Operatörleri Matematiğin de en temel konularından birisi olan mantık operatörleri aynı anda birden fazla koşul veya ters koşul içeren durumlarda tek bir cümleyle koşulları ifade edebilmemizi sağlarlar.
3.3.1 Ve (AND) ‘VE’ her iki koşul da gerçekleştiği zaman yani her ikisi de 1 ise gerçekleşiyordu. Bu konu matemetikte genellikle şu şekilde anlatılır. 0 ve 1 değerlerini alabilen iki adet sayı yani 2’li sistemde tek basamaklı sayılar (diğer isimleriyle bit) tanımlanır. Bu iki sayı arasına ‘VE’ konulursa sayılar (0,0), (0,1) veya (1,0) oldukları taktirde sonuç 0 olur, diğer ihtimalde sonuç 1 olur.
3.3.2. Veya (OR) ‘VEYA’ da ‘VE’ gibi iki koşulu karşılaştırırken kullanılır. Ancak bu defa koşullardan bir tanesinin doğru olması sonucun doğru olması için yeterlidir. İki koşulun doğru olması ihtimali de elbetteki doğru sonuç verecektir. Ancak ve ancak iki sonucun da yanlış olması durumunda sonuç yanlış olur.
3.3.3. Değilse (NOT) Bir koşulun, tersini tanımlamak her zaman çok pratik biçimde yapılamaz. Örneğin ‘x == 10’un ters koşulu ‘x < 10 && x > 10’dur. Biz bunu ‘x != 10’ şeklinde yazmayı operatörler konusunda öğrenmiştik. İşte buradaki ‘!’ işareti genel olarak koşullar için de kullanılabilir. Örnek bir koşul tanımlayalım.
3.4.#define Önişlemcisi define önişlemcisi ile işlev benzeri makrolar yazmalar mümkündür. #define kub(x) ((x)*(x)*(x)) main() { int i; i = 5; printf("%d \n", kub(i)); } Makro tanım satırında parametrelerin parantez içerisine alınması unutulmamalı. Makro kub(i+1) biçiminde çağırıldığında, i=2 için ((x)*(x)*(x)) --> (i+1)*(i+1)*(i+1) --> 27 (x * x * x) --> (i+1* i+ 1* i+1) --> 6 #define ustal(a, b) (pow((a), (b)))