C Programlama Dili Aritmetik Fonksiyonlar
Bir program yazarken bazı matematiksel işlemlere ihtiyaç duyabiliriz. Bu matematik işlemlerini gerçekleştirmek için bazı hazır fonksiyonlara sahibiz. Bu fonksiyonlara aritmetik fonksiyonlar denmektedir. Birazdan bahsedeceğim bu fonksiyonları “math.h”, “stdlib.h” kütüphaneleri desteklemektedir. Şimdi gelin c programlama dili aritmetik fonksiyonların neler olduğunu ve nasıl kullanıldıklarını görelim.
Fonksiyon | Açıklama |
---|---|
abs() | Bu fonksiyon verilen tam sayının mutlak değerini döndürür. Çıktı her zaman pozitiftir. |
floor() | Bu fonksiyon yuvarlama fonksiyonudur.Değişken tipi double olmalı. Bu fonksiyon sonucu küçük sayıya yuvarlar. |
round() | Verilen sayının ondalık kısmı .1 ve .5 arasında ise bir alta yuvarlar. Eğer .5.9 arasında ise bir üste yuvarlar. |
ceil() | Bu fonksiyon yuvarlama fonksiyonudur.Değişken tipi double olmalı. Bu fonksiyon sonucu büyük sayıya yuvarlar. |
sin() | Bu fonksiyon, sinüs değerini hesaplamak için kullanılır. |
cos() | Bu fonksiyon, cosinüs değerini hesaplamak için kullanılır. |
cosh() | Bu fonksiyon hiperbolik kosinüsü hesaplamak için kullanılır. |
exp() | Bu fonksiyon basitçe düşünecek olursak e değerinin istenilen üssünü almaktadır. |
tan() | Bu fonksiyon tanjant değerini hesaplamak için kullanılır. |
tanh() | Bu fonksiyon hiperbolik tanjant değerini hesaplamak için kullanılır. |
sinh() | Bu fonksiyon hiperbolik sinüs değerini hesaplamak için kullanılır. |
log() | Bu fonksiyon logaritmik hesaplama için kullanılır. |
log10() | Bu fonksiyon logaritma 10 değerindeki fonksiyonlar hesaplamasında kullanılır. |
sqrt() | Bu fonksiyon verilen değerin karekökünü bulur. |
pow() | Bu fonksiyon verilen iki sayının (kök ve üst) kabul ederek üstel değerini bulur. |
Gördüğünüz üzere bu fonksiyonlar matematiksel işlemlerde çok kolaylık ve hız kazandırmaktadır. Ama size tavsiyem bu fonksiyonları kullanmadan önce kendiniz algoritmalarını kurarak fonksiyonsuz çözmeyi denemelisiniz. Şimdi kod bu fonksiyonların bazılarını kod üzerinde görelim.
NOT: math header dosyasını linuxta kullandığınızda derleme işlemi sırasında ‘-lm’ kullanmanız gerekir. Örn:
gcc main.c -lm |
komutu ile derlemeniz gerekir
Kod:
1
2
3
4
5
6
7
8
9
10
11
|
#include <stdio.h>
#include <stdlib.h>
int main() {
int x = abs(200);
int y = abs(-400);
printf("Mutlak degeri x = %d\n", x);
printf("Mutlak degeri y = %d \n", y);
return 0;
}
|
Çıktı:
1
2
|
Mutlak degeri x = 200
Mutlak degeri y = 400
|
Kod 2:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#include <stdio.h>
#include <math.h>
int main() {
float i = 0.314;
float j = 0.25;
float k = 6.25;
float sin_degeri = sin(i);
float cos_degeri = cos(i);
float tan_degeri = tan(i);
float sinh_degeri = sinh(j);
float cosh_degeri = cosh(j);
float tanh_degeri = tanh(j);
float log_degeri = log(k);
float log10_degeri = log10(k);
float exp_degeri = exp(k);
printf("Deger: sin(%f) : %f \n", i, sin_degeri);
printf("Deger: cos(%f) : %f \n", i, cos_degeri);
printf("Deger: tan(%f) : %f \n", i, tan_degeri);
printf("Deger: sinh(%f) : %f \n", j, sinh_degeri);
printf("Deger: cosh(%f) : %f \n", j, cosh_degeri);
printf("Deger: tanh(%f) : %f \n", j, tanh_degeri);
printf("Deger: log(%f) : %f \n", k, log_degeri);
printf("Deger: log10(%f) : %f \n", k, log10_degeri);
printf("Deger: exp(%f) : %f \n", k, exp_degeri);
return 0;
}
|
Çıktı:
1
2
3
4
5
6
7
8
9
|
Deger: sin(0.314000) : 0.308866
Deger: cos(0.314000) : 0.951106
Deger: tan(0.314000) : 0.324744
Deger: sinh(0.250000) : 0.252612
Deger: cosh(0.250000) : 1.031413
Deger: tanh(0.250000) : 0.244919
Deger: log(6.250000) : 1.832582
Deger: log10(6.250000) : 0.795880
Deger: exp(6.250000) : 518.012817
|
Kod3:
1
2
3
4
5
6
7
8
|
#include <stdio.h>
#include <math.h>
int main() {
printf("3 ussu 5 = %f\n", pow(3, 5));
printf("5 ussu 3 = %f\n", pow(5, 3));
return 0;
}
|
Çıktı:
1
2
|
3 ussu 5 = 243.000000
5 ussu 3 = 125.000000
|
Kod4:
1
2
3
4
5
6
7
8
|
#include <stdio.h>
#include <math.h>
int main() {
printf("81'in koku = %f\n", sqrt(81));
printf("256'nin koku = %f\n", sqrt(256));
return 0;
}
|
Çıktı:
1
2
|
81'in koku = 9.000000
256'nin koku = 16.000000
|