Yavuzlar
Ana sayfaTelegram
  • Yavuzlar
  • VulnLab
  • CodinLab
  • 📚EĞİTİM
    • PHP
      • XAMPP kurulumu
      • VS Code Kurulum
      • 1.0 PHP Nedir
      • 1.1 Dosya Oluşturma
      • 1.2 Syntax (Yazım Kuralları)
      • 1.3 PHP'de Echo ve Print
      • 1.4 PHP'deki yorumlar
      • 1.5 PHP Değişkenleri
      • 1.6 Operatörler (Operators)
      • 1.7 Veri Türünü Alma
      • 1.8 PHP'de String
      • 1.9 PHP'de Sabitler
      • 2.0 PHP'de If Else Elseif
      • 2.1 Switch Case
      • 2.2 PHP'de Döngüler
      • 2.3 PHP'de Diziler (Arrays)
      • 2.4 PHP'de Süper Global Değişkenleri
      • 2.5 PHP'de Cookie (Çerez) Ve Session (Oturum) Yöntemleri
      • 2.6 Form işlemleri
    • C++
      • 1.0 Temeller
        • 1.1 Dosya Oluşturma
        • 1.2 Syntax (Yazım Kuralları)
        • 1.3 Yorum Satırları
        • 1.4 C++ Değişkenleri
          • 1.4.1 Değişken Türleri
        • 1.5 Operatörler (Operators)
        • 1.6 Namespace
        • 1.7 Kullanıcı Girdisi (User Input)
        • 1.8 C++ Stringleri (C++ Strings)
        • 1.9 Matematik (Math) Fonksiyonları
        • 1.10 Booleans
        • 1.11 If Else
        • 1.12 Switch
        • 1.13 While Döngüsü
          • 1.13.1 Do While Döngüsü
        • 1.14 For Döngüsü
        • 1.15 Break/Continue
        • 1.16 Diziler
        • 1.17 Structures
        • 1.18 Enums
        • 1.19 References
        • 1.20 Pointers
      • 2.0 Fonksiyonlar
      • 3.0 Sınıflar
        • 3.1 OOP
        • 3.2 Sınıflar ve Objeler
        • 3.3 Sınıf Methodları
        • 3.4 Yapıcılar (Constructors)
        • 3.5 Erişim Belirleyicileri (Access Specifiers)
        • 3.6 Kapsülleme (Encapsulation)
        • 3.7 Inheritance
        • 3.8 Polimorfizm (Polymorphism)
        • 3.9 Dosyalar (Files)
        • 3.10 İstisnalar (Exceptions)
        • 3.11 Tarih ve Zaman (Date and Time)
      • 4.0 Veri Yapıları (Data Structures)
        • 4.1 Veri Yapıları ve STL
        • 4.2 Vektörler (Vectors)
        • 4.3 Listeler (Lists)
        • 4.4 Yığınlar (Stacks)
        • 4.5 Kuyruklar (Queues)
        • 4.6 Deque (Çift Uçlu Kuyruk)
        • 4.7 Küme (Set)
        • 4.8 Maps
        • 4.9 Iterator
        • 4.10 Algoritmalar
  • 🛠️ARAÇLAR
    • Aircrack-ng
    • Airgeddon
    • Arjun
    • BeEF
    • Bettercap
    • Docker
    • Gelişmiş Wireshark Kullanımı (Advanced Wireshark Usage)
    • Google Dorks
    • Hping3
    • John the Ripper
    • Metasploit Framework
    • Netcat
    • Nmap
    • OSINT Framework
    • PEASS-ng
    • Sublist3r
    • XSS Scanner
    • Wireshark
    • ZAP
    • HYDRA
  • 🖥️İŞLETİM SİSTEMLERİ
    • Linux101
    • MBR
  • 🔑KRİPTOLOJİ
    • Dijital Sertifika ve İmzalar
    • Sezar Şifrelemesi
    • Steganografi
    • Veri Şifreleme (Data Encryption)
  • 🔏Network
    • Domain Name Server (DNS)
    • Firewall Nedir? Nasıl Çalışır ?
    • Ortadaki Adam Saldırısı (Man In The Middle Attack)
    • OSI Modeli
    • Sanal Özel Ağlar (VPN)
    • World Wide Web (WWW)
  • 🔐PRIVILEGED
    • Docker Escape
  • 📨Protokoller
    • ARP
    • DHCP
    • FTP
    • HTTP/HTTPS
    • SSH
    • TCP/IP
    • UDP
    • Wİ-Fİ Güvenlik Protokolleri (WEP/WPA/WPA2/WPA3)
  • 💻SİBER TEHDİT İSTİHBARATI
    • Gelişmiş Siber Tehdit İstihbaratı Nedir?
  • 🔒WEB GÜVENLİĞİ
    • 403 ByPass
    • API Güvenliği (API Security)
    • Broken Access Control
    • Bulut Güvenliği (Cloud Security)
    • Command Injection
    • Cross Origin Resource Sharing
    • Cross Site Request Forgery (CSRF)
    • Cyber Kill Chain
    • DDoS Saldırıları
    • File Upload Zafiyeti Nedir?
    • HTTP Request Smuggling
    • Insecure Direct Object Reference (IDOR)
    • Incident Response
    • Local File Inclusion (LFI)
    • NoSQL Injection
    • Pentest 101
    • Race Condition
    • Server Side Request Forgery (SSRF)
    • Server Side Template Injection (SSTI)
    • Spring4Shell
    • Two Factor Authentication Bypass
    • XML External Entity Attack (XEE)
  • 🤖YAPAY ZEKA
    • ChatGPT for Hacking
    • Siber Güvenlik ve Yapay Zeka
    • Yapay Zeka ile Sahte Fotoğraf Tespiti
  • 🌐YAZILIM
    • Düzenli İfadeler (Regular Expressions)
    • Elasticsearch Nedir?
    • Front-end Teknolojileri
    • Golang'da Arayüzler (Interfaces)
    • Go'da Concurrency ve Uygulamaları
    • Güvenli Kodlama (Secure Coding)
    • Java Overloading vs Overriding
    • JSON Web Token (JWT)
    • Material-UI
    • NextJS Nedir?
    • ReactJS Kancalar (Hooks)
    • ReactJS Nedir?
    • Redux Toolkit
    • SOLID Yazılım Geliştirme Prensipleri
    • SQL 101
    • UI / UX Nedir?
    • Veri Taşıma Nedir? (Database Migration)
    • Versiyon Kontrol Sistemleri ve GIT
  • 🔷DİĞER
    • Bug Bounty (Hata Ödülü) Nedir?
    • Popüler Yazılımların Kurulumları
      • Ubuntu Server 24.04 LTS Kurulumu
      • Ubuntu için Güncel Docker Engine Kurlumu
    • Güvenlik Operasyonları Merkezi Nedir?
    • Honeypot (Bal Küpü)
    • IoT Güvenliği Nedir?
    • ShellShock Exploit
    • Yük Dengeleyici (Load Balancer) Nedir?
Powered by GitBook
On this page
  • C++ Matematik Operatörleri
  • Temel Matematik Fonksiyonları
  • Rastgele Sayılar Üretme
  • Matematiksel Sabitler
  • Alıştırmalar

Was this helpful?

  1. EĞİTİM
  2. C++
  3. 1.0 Temeller

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:

Operatör
Açıklama
Örnek

+

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:

#include <cmath>

Temel Matematik Fonksiyonları

<cmath> kütüphanesi içinde bulunan bazı temel matematik fonksiyonları şunlardır:

1. Mutlak Değer (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)

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)

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)

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)

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)

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:

Sabit
Açıklama

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?

#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

Previous1.8 C++ Stringleri (C++ Strings)Next1.10 Booleans

Last updated 5 months ago

Was this helpful?

📚