Menu
Coddy logo textTech

Modül Operatörü

Coddy'nin C++ Journey'sinin Temeller bölümünün bir parçası — ders 17 / 74.

Modulo operatörü % bir bölme işleminin kalanını verir. C++'da basit bir sözdizimi ile kullanılır:

result = dividend % divisor;
  • dividend: Bölünen sayı.
  • divisor: Bölüneni bölen sayı.
  • result: Bölme işleminden kalan.

Örneğin:

result = 10 % 3;

Burada, 10 sayısı 3'e bölünür. 3, 10'un içinde üç kez vardır ve kalan 1'dir. Böylece, result 1 olacaktır.

Genellikle mod alma işlemi, bir sayının çift mi yoksa tek mi olduğunu kontrol etmek için kullanılır:

  • Eğer bir sayı çiftse, 2'ye bölündüğünde 0 kalanını verecektir.
  • Eğer bir sayı tekse, 2'ye bölündüğünde 1 kalanını verecektir.

C++'da kayan noktalı sayılarla (double) çalışırken, modül operatörünü % doğrudan kullanamazsınız. Bunun yerine, <cmath> kütüphanesindeki fmod() fonksiyonunu kullanmanız gerekir. Modül operatörüne benzer şekilde çalışır ancak ondalık hassasiyeti korur. Örneğin:

#include <cmath>

double result = fmod(5.2, 2.0);
// sonuç 1.2

İşte şu şekilde çalışır: 2.0, 5.2'nin içinde iki kez vardır (4.0) ve kalan 1.2'dir (5.2 - 4.0 = 1.2).

Başka bir örnek:

double result = fmod(7.8, 3.5);
// result 0.8'dir

Bölen, bölünenden daha büyük olduğunda, sonuç bölünene eşittir. Bu, hem % hem de fmod() için geçerlidir.

5 % 10 = 5
3 % 7 = 3
fmod(2.5, 8.0) = 2.5

Neden? Bölen sıfır kez sığar, bu nedenle bölünenin tamamı kalandır.

challenge icon

Görev

Başlangıç

9, 2.6 ve 11 değerleriyle (sırasıyla) a (int), b (double) ve c (int) olmak üzere üç değişkeni başlatan bir kod yazın.

Bundan sonra, aşağıdaki değişkenleri başlatın:

  • a modulo 2 sonucunu tutacak olan d (int) 
  • a modulo 3 sonucunu tutacak olan e (int)
  • b modulo 1.5 sonucunu tutacak olan f (double)
  • b modulo 3.9 sonucunu tutacak olan g (double)
  • c modulo 10 sonucunu tutacak olan h (int)

Sonucu kontrol edin ve farklı bölünenlerin ve bölenlerin sonucu nasıl etkilediğini görün.

Kopya kağıdı

Mod operatörü % bir bölme işleminin kalanını verir:

result = dividend % divisor;

Örnek:

result = 10 % 3;  // result is 1

Yaygın kullanım durumu - bir sayının çift mi yoksa tek mi olduğunu kontrol etmek:

  • Çift sayılar: number % 2 == 0
  • Tek sayılar: number % 2 == 1

Ondalıklı sayılar için <cmath> kütüphanesinden fmod() fonksiyonunu kullanın:

#include <cmath>

double result = fmod(5.2, 2.0);  // result is 1.2
double result2 = fmod(7.8, 3.5); // result2 is 0.8

Bölen, bölünenden daha büyük olduğunda sonuç bölünene eşittir. Bu durum hem % hem de fmod() için geçerlidir.

Kendin dene

#include <iostream>
#include <cmath>

int main() {
    // Kodunuzu aşağıya yazın
    
    
    // Aşağıdaki satırı değiştirmeyin
    std::cout << "a = " << a << std::endl;
    std::cout << "b = " << b << std::endl;
    std::cout << "c = " << c << std::endl;
    std::cout << "d = " << d << std::endl;
    std::cout << "e = " << e << std::endl;
    std::cout << "f = " << f << std::endl;
    std::cout << "g = " << g << std::endl;
    std::cout << "h = " << h << std::endl;
    return 0;
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler