1.9 Matematik (Math) Fonksiyonları
C++ dilinde matematiksel işlemleri gerçekleştirmek için çeşitli operatörler ve fonksiyonlar bulunmaktadır. Bu bölümde, C++'da matematiksel işlemleri nasıl yapabileceğinizi, cmath
kütüphanesini kullanarak temel matematik fonksiyonlarını nasıl uygulayabileceğinizi ve bu konularla ilgili alıştırmaları öğreneceksiniz.
C++ Matematik Operatörleri
C++ dilinde matematiksel işlemler yapmak için kullanılan temel operatörler şunlardır:
+
Toplama
a + b
-
Çıkarma
a - b
*
Çarpma
a * b
/
Bölme
a / b
%
Modülüs (kalan)
a % b
++
Artırma
a++
veya ++a
--
Azaltma
a--
veya --a
Örnek Kod
#include <iostream>
using namespace std;
int main() {
int a = 10;
int b = 3;
cout << "Toplama: " << (a + b) << endl; // 13
cout << "Çıkarma: " << (a - b) << endl; // 7
cout << "Çarpma: " << (a * b) << endl; // 30
cout << "Bölme: " << (a / b) << endl; // 3
cout << "Modülüs: " << (a % b) << endl; // 1
// Artırma ve Azaltma
cout << "a++: " << a++ << endl; // 10, sonra a = 11
cout << "++a: " << ++a << endl; // 12
cout << "a--: " << a-- << endl; // 12, sonra a = 11
cout << "--a: " << --a << endl; // 10
return 0;
}
Çıktı:
Toplama: 13
Çıkarma: 7
Çarpma: 30
Bölme: 3
Modülüs: 1
a++: 10
++a: 12
a--: 12
--a: 10
cmath
Kütüphanesi
C++'da gelişmiş matematiksel işlemler gerçekleştirmek için <cmath>
kütüphanesi kullanılır. Bu kütüphane, trigonometrik fonksiyonlar, üs alma, karekök gibi birçok fonksiyonu içerir.
cmath
Kütüphanesini Dahil Etme:
cmath
Kütüphanesini Dahil Etme:#include <cmath>
Temel Matematik Fonksiyonları
<cmath>
kütüphanesi içinde bulunan bazı temel matematik fonksiyonları şunlardır:
1. Mutlak Değer (abs
)
abs
)Bir sayının mutlak değerini (pozitif değerini) döndürür.
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int a = -10;
double b = -5.5;
cout << "abs(a): " << abs(a) << endl; // 10
cout << "abs(b): " << abs(b) << endl; // 5.5
return 0;
}
2. Karekök (sqrt
)
sqrt
)Bir sayının karekökünü döndürür.
cppCopy code#include <iostream>
#include <cmath>
using namespace std;
int main() {
double num = 25.0;
cout << "sqrt(num): " << sqrt(num) << endl; // 5
return 0;
}
3. Üs Alma (pow
)
pow
)Bir sayının belirtilen üssünü döndürür.
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double base = 2.0;
double exponent = 3.0;
cout << "pow(base, exponent): " << pow(base, exponent) << endl; // 8
return 0;
}
4. Sinüs (sin
), Kosinüs (cos
), Tanjant (tan
)
sin
), Kosinüs (cos
), Tanjant (tan
)Açıları radyan cinsinden alır ve trigonometrik değerleri döndürür.
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double angle = 45.0;
double radians = angle * (M_PI / 180.0); // Dereceyi radyana çevirme
cout << "sin(" << angle << "°): " << sin(radians) << endl; // ~0.7071
cout << "cos(" << angle << "°): " << cos(radians) << endl; // ~0.7071
cout << "tan(" << angle << "°): " << tan(radians) << endl; // ~1
return 0;
}
5. Logaritma (log
, log10
)
log
, log10
)Doğal logaritmayı (log
) ve 10 tabanında logaritmayı (log10
) döndürür.
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double num = 100.0;
cout << "log(num): " << log(num) << endl; // ~4.6052 (ln(100))
cout << "log10(num): " << log10(num) << endl; // 2 (log10(100))
return 0;
}
6. Üstünü Al (exp
)
exp
)e
sayısının belirtilen üsse yükseltilmiş halini döndürür.
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double exponent = 1.0;
cout << "exp(exponent): " << exp(exponent) << endl; // ~2.7183 (e^1)
return 0;
}
Rastgele Sayılar Üretme
C++'da rastgele sayılar üretmek için çeşitli yöntemler bulunmaktadır. Modern C++'da <random>
kütüphanesi kullanılarak daha güvenilir ve esnek rastgele sayı üretimi yapılabilir.
Örnek: Basit Rastgele Sayı Üretimi
#include <iostream>
#include <cstdlib> // rand() ve srand() için
#include <ctime> // time() için
using namespace std;
int main() {
// Rastgele sayı üreteciyi başlatma
srand(time(0));
// 0 ile 99 arasında rastgele bir sayı üretme
int randomNumber = rand() % 100;
cout << "Rastgele Sayı: " << randomNumber << endl;
return 0;
}
Modern C++ ile Rastgele Sayılar
#include <iostream>
#include <random>
using namespace std;
int main() {
// Rastgele sayı üreteci oluşturma
random_device rd; // Cihazdan rastgele bitler alır
mt19937 gen(rd()); // Mersenne Twister motoru
uniform_int_distribution<> distrib(1, 100); // 1 ile 100 arasında
// 10 rastgele sayı üretme
for(int i = 0; i < 10; ++i) {
cout << distrib(gen) << " ";
}
cout << endl;
return 0;
}
Matematiksel Sabitler
C++'da matematiksel sabitler cmath
kütüphanesi içinde tanımlanmıştır. Bazı yaygın sabitler şunlardır:
M_PI
Pi sayısı (3.14159...)
M_E
Euler sayısı (2.71828...)
M_SQRT2
√2 (1.41421...)
M_LN2
ln(2) (0.693147...)
Örnek Kullanım
#include <iostream>
#include <cmath>
using namespace std;
int main() {
cout << "Pi: " << M_PI << endl; // 3.14159...
cout << "Euler Sayısı: " << M_E << endl; // 2.71828...
cout << "Karekök 2: " << M_SQRT2 << endl; // 1.41421...
cout << "ln(2): " << M_LN2 << endl; // 0.693147...
return 0;
}
Not: Bazı derleyicilerde M_PI
gibi sabitler tanımlı olmayabilir. Bu durumda, kendi sabitlerinizi tanımlayabilirsiniz:
const double PI = 3.14159265358979323846;
Alıştırmalar
S1) Aşağıdaki C++ Kodunun Çıktısı Nedir?
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double num = -16.0;
cout << "abs(num): " << abs(num) << endl;
cout << "sqrt(abs(num)): " << sqrt(abs(num)) << endl;
cout << "pow(2, 3): " << pow(2, 3) << endl;
return 0;
}
a) abs(num): -16
b) abs(num): 16
c) sqrt(abs(num)): 4
d) pow(2, 3): 8
e) Tüm çıktılar doğru
S2) Aşağıdaki C++ Kodunun Çıktısı Nedir?
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double angle = 60.0;
double radians = angle * (M_PI / 180.0);
cout << "sin(60°): " << sin(radians) << endl;
cout << "cos(60°): " << cos(radians) << endl;
cout << "tan(60°): " << tan(radians) << endl;
return 0;
}
a) sin(60°): 0.866025
b) cos(60°): 0.5
c) tan(60°): 1.73205
d) Hepsi doğru
e) Hepsi yanlış
S3) Aşağıdaki C++ Kodunda Hangi Satır Hata Verir?
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double x = 9.0;
double y = sqrt(x);
double z = pow(x, 2);
cout << "y: " << y << endl;
cout << "z: " << z << endl;
// double w = sqrt(-4.0); // Bu satır hata verir
// cout << "w: " << w << endl;
return 0;
}
a) double y = sqrt(x);
b) double z = pow(x, 2);
c) double w = sqrt(-4.0);
d) Hiçbir satır hata vermez
S4) Aşağıdaki C++ Kodunun Çıktısı Nedir?
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double num = 8.0;
cout << "log(num): " << log(num) << endl; // Doğal logaritma (ln)
cout << "log10(num): " << log10(num) << endl; // 10 tabanında logaritma
return 0;
}
a) log(num): 2.07944
b) log10(num): 0.90309
c) Her ikisi de doğru
d) Her ikisi de yanlış
S5) Aşağıdaki C++ Kodunda Hangi Fonksiyon Kullanılarak C++
stringi C
-Style stringe dönüştürülmüştür?
C++
stringi C
-Style stringe dönüştürülmüştür?#include <iostream>
#include <string>
#include <cstring>
using namespace std;
int main() {
string cppString = "C++ ile string";
const char* cString = cppString.c_str();
cout << "C-Style String: " << cString << endl;
return 0;
}
a) strcpy
b) c_str
c) strcat
d) strlen
Last updated
Was this helpful?