Ana içeriğe atla

C++'da Matematiksel Fonksiyonlar ve Hassas Hesaplamalar


#include <iostream> //cout ve cin yazabilmek için bu kütüphane gerekli
#include <cmath>// matematik işlemleri için kullanılan kütüphanedir.#include <iostream> içinde de basit matematik işlemleri yapılabillir.
//#include <cmath> başka işletim sistemlerinde basit işlemler için kullanılması gerekir.Yukarıdaki durum Microsoft için geçerlidir.Garanti yöntem kütüphaneyi kullanmaktır.
#include <iomanip> //Yuvarlama hesaplam işlemleri için kullan
using namespace std;
int main() 
{/*
 //cout ve cin kullanımı cout arkaplanda yazılan değerleri kullanıcıya gösterir
 //cin kullanıcıdan gelen değerleri işler ve kullanıcıya değeri döndürür.
 
string isim;
int en, boy, alan;

cout << "Merhaba Lutfen adinizi giriniz : ";
cin >> isim;
cout << "Merhaba " << isim << " C++ Derslerine hos geldin\n"; // <<endl; yazmak yerine \n yazmak aynı anlama gelir
cout << "Merhaba " << isim << " C++ Derslerine Geometrik Hesaplama\n";
cout << "Diktortgenin enini giriniz : ";
cin >> en;
cout << "Lutfen dikdortgenin boyunu giriniz : ";
cin >> boy;
//Hesaplama işlemi
alan = en * boy;
cout << "Sayin " << isim << " isleminizin sonucu : " << alan << endl;
*/

//Library Kütüphanesini Kullanma
//Matematikde Üs alma işlemi örneği
/*
int sonuc;
sonuc = pow(2, 3); //buradaki pow fonksiyonu üs alma operatörü içim cmath kütüphanesinden kullanıldı
cout << "sonuc : " << sonuc << endl; //Çıktısı : sonuc : 8 'dir. pow yardımıyla üs 2 nin üssü 3 olan sonucu 8 'dir.
*/
//Kullanıcıdan gelen değerlere göre üs hesaplama
/*
int sonuc,x,y;
cout << "Lutfen ussu alinacak sayiyi giriniz : " << endl;
cin >> x;
cout << "Lutfen ussun degerini olan y degerini giriniz : " << endl;
cin >> y;
sonuc = pow(x, y);
cout << "Sonuc : " << sonuc << endl;
*/
/*
* Lutfen ussu alinacak sayiyi giriniz :
9
Lutfen ussun degerini olan y degerini giriniz :
9
Sonuc : 387420489
*/

/* floor (taban demek) noktadan sonraki değeri görmez ve noktan önceki değeri yazdırır */
/*
int sonuc;
sonuc = floor(2.7);
cout << "Sonuc : " << sonuc << endl; //2.7 değerinin çıktısı Sonuc : 2 'dir.
*/

/* ceil (tavan demek) noktadan sonraki değeri noktadan önceki sayıya yuvarlar */
/*
int sonuc;
sonuc = ceil(2.3);
cout << "Sonuc : " << sonuc << endl; // 2.3 değerinin çıktısı Sonuc : 3 'dür.
*/

/* round alttaki en yakın değeri bir üste yuvarlar */
/*
int sonuc;
sonuc = round(2.5);
cout << "Sonuc : " << sonuc << endl; 
// round(2.5) 'in değeri Sonuc : 3 'tür noktadan sonraki değer 5 'den küçük olur ise yuvarlamayı yapamaz ve noktadan önceki değeri yazdırır.
//round(2.499) olsa idi sonuc 2 'dir. Nokatdan sonraki ilk değeri görür ve 5 'den küçükse eğer noktadan önceki değeri yazdırır.
*/

/* C++ TAMAMLAYICI KODLAMA EGZERSİZİ
Kullanıcıdan 3 adet sınavv notu alınız (Sınav Notları tam sayı şeklinde olmalı)
Daha sonra bu notların ortalamasını bulup aşağıdaki şekilde yazdırsın :
I) double olarak küsüratlı (Noktadan sonra 2 dijit hassasiyet olsun)
II) Sonucu tam sayı olarak yazdırsın, yuvarlama yapasın. 
Ör: Not 84.5 ise 85 şeklinde yuvarlasın
Not 84.49 ise 84 şeklinde yuvarlasın
Dikkat!! : #include <cmath> ve #include <iomanip> //Yuvarlama hesaplam işlemleri için kullan kütüphaneleri dahil etmeli.
*/

int sinav1, sinav2, sinav3;
cout << "Lutfen 3 adet sinav notlarini tam sayi olarak giriniz : ";
cin >> sinav1>> sinav2>> sinav3; //Tek satırda 3 notuda almış olduk
//I) double olarak küsüratlı (Noktadan sonra 2 dijit hassasiyet olsun)
double ortalama = (double)(sinav1 + sinav2 + sinav3) / 3.0; //3.0 'ın anlamı sonucun tam sayı olmadığını anlaması içi nokta 0 ile kullandık
cout << "I) Ortalama (ondalikli) : " << fixed << setprecision(2) << ortalama << endl;

//II) Sonucu tam sayı olarak yazdırsın, yuvarlama yapasın.
int sonuc = (int)round(ortalama); // ondalıklı dönen sonucu (int)round(ortalama); yardımı ile tam sayıya yuvarladık.
cout << "II) Ortalama (yuvarlamali = tamsayi) : " << sonuc << endl;

/*
* ÇIKTI :
* Lutfen 3 adet sinav notlarini tam sayi olarak giriniz : 90 75 55
I) Ortalama (ondalikli) : 73.33
II) Ortalama (yuvarlamali = tamsayi) : 73
*/
/* fixed << setprecision neydi hatırlayalım 
double sayi = 12.3456;
cout << setprecision(3) << sayi;          // Çıktı: 12.3  (Toplam 3 rakam)
cout << fixed << setprecision(3) << sayi; // Çıktı: 12.346 (Virgülden sonra 3 rakam)

Bu ikisi yanyana geldiğinde anlam değiştirirler:

fixed << setprecision(n) dersen; 
setprecision artık toplam rakam sayısına değil, sadece virgülden sonra kaç basamak görüneceğine karar verir.

*/


return 0;
}

**** DİKKAT!!! ****

floor(2.7): Her zaman aşağı yuvarlar (Sonuç: 2).
ceil(2.3): Her zaman yukarı yuvarlar (Sonuç: 3).
round(2.5): En yakın tam sayıya gider (2.5 ve üstü yukarı, 2.5 altı aşağı).

"C++'da bölme işlemi yaparken sonucun küsuratlı çıkmasını istiyorsanız, en az bir sayıyı double olarak belirtmelisiniz!"
double ortalama = (double)(sinav1 + sinav2 + sinav3) / 3.0; 




Bu blogdaki popüler yayınlar

C++ float double string Aritmatik işlemler

  #include <iostream> using namespace std; //void fonk()  //{ // cout << "Merhaba\n"; //} // //int main()  //{ // cout << "Merhaba C++\n"; // // fonk(); // return 0; //} /* int main()  { //Değişkenler rakam ile başlayamaz //Değişken isimlerinde türkçe karakter olmaz //değişken isimleride boşluk olmaz //Değişken isimlerinde nokta vb karakter olmaz //******************************************** //int ram'da 4 byte yer kaplıyor -2147483648 to 2147483647 //char 1 byte  (ASCII tablosu) //bool 1 byte //float 4 byte //double 8 byte //CPU ramdan byte byte okur //Void herhangi bir return etmiyecekse kendi aldığı değerleri kullanır.Bir değer döndürmez. string isim; isim = "Kaan"; int yas; yas = 22; cout << "Bir zamanlar " << isim << " isminde bir genc varmis." << endl << isim << " " << yas << " yasindaymis." ...

C++ try catch, Call by Value, Call by Referans Kullanımı

  #include <iostream> using namespace std; //int main()  //{ // int bolunen, bolen; // cout << "Lutfen bolunen sayiyi giriniz : "; // cin >> bolunen; // cout << "Lutfen bolen sayiyi giriniz : "; // cin >> bolen; // // int sonuc; // // try{ // if (bolen == 0) // throw 99;//Burada throw için herhangi bir tam sayı girilir.örn: negatif sayılar gibi durumlar için çoğaltılabilir // sonuc = bolunen / bolen; // // cout << "Sonuc : " << sonuc; // } // catch(int hataKodu){ // cout << "Bolen sayi sifir olmamali !!" << endl; // } // // cout << endl; // return 0; //} /* try catch Kullanımı :  * try catch kullanıcının beklenmedik bir girdi vermesi sonucu  * programın çökmesini engllemek amacı ile kullanılır * Ayrıca veri tabanı bağlantılarında bağlantının olmaması ve  * işlem sonrasında veri tabanı bağlantısını kapatma veya programın başlangıcında bağlantıyı a...

Pointer ve & (ampersant) Konusunu Kavrayalım

  #include <iostream> #include <string> using namespace std; /* int main()  {  int x = 7; cout << "x 'in degeri : " << x << endl; cout << "x 'in RAM deki adresi : " << &x << endl;  // & ile ramdeki ilk adres değeri  000000D3ED4FFCF4 ni bulduk  // int 4 byte oldugundan bu adresde dahil 4 byte 'lik yerin tamamını hesaplar // ama bize  4 byte lik adresin ilk değerini verir. return 0;  } */ /* int main() { // Pointer  ve & (ampersant) Konusunu Kavrayalım int x = 7; int *p = &x; // pointer ile x 'in adres değerini bulma cout << "x 'in degeri : " << x << endl; cout << "x 'in & ile RAM deki adresi : " << &x << endl; //pointer ile gösterimi cout <<"pointer p ile adres degeri : "<< p << endl; cout << "*p ile ( *p = &x) x in pointer degeri : " <...