Menu
Coddy logo textTech

Operator modulo

Część sekcji Podstawy ścieżki C++ w Coddy. Lekcja 17 z 74.

Operator modulo % zwraca resztę z dzielenia. W C++ używa się go w prostej składni:

result = dividend % divisor;
  • dividend: Liczba, która jest dzielona.
  • divisor: Liczba, przez którą dzielona jest dzielna.
  • result: Reszta z dzielenia.

Na przykład:

result = 10 % 3;

W tym przykładzie 10 jest dzielone przez 3. 3 mieści się w 10 trzy razy, a reszta wynosi 1. Zatem result będzie równe 1.

Zwykle modulo służy do sprawdzania, czy liczba jest parzysta, czy nieparzysta:

  • Jeśli liczba jest parzysta, dzielenie jej przez 2 da resztę 0.
  • Jeśli liczba jest nieparzysta, dzielenie jej przez 2 da resztę 1.

Podczas pracy z liczbami zmiennoprzecinkowymi (typu double) w C++ nie możesz używać bezpośrednio operatora modulo %. Zamiast tego musisz użyć funkcji fmod() z biblioteki <cmath>. Działa ona podobnie do operatora modulo, ale zachowuje precyzję dziesiętną. Na przykład:

#include <cmath>

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

Oto jak to działa: 2.0 mieści się w 5.2 dwa razy (4.0), a reszta wynosi 1.2 (5.2 - 4.0 = 1.2).

Kolejny przykład:

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

Gdy dzielnik jest większy od dzielnej, wynik jest równy dzielnej. Dotyczy to zarówno %, jak i fmod().

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

Dlaczego? Dzielnik mieści się zero razy, więc cała dzielna jest resztą.

challenge icon

Wyzwanie

Początkujący

Napisz kod, który zainicjuje trzy zmienne: a (int), b (double) i c (int) wartościami 9, 2.6 i 11 (odpowiednio).

Następnie zainicjuj następujące zmienne:

  • d (int), która będzie przechowywać wynik operacji modulo na a i 2 
  • e (int), która będzie przechowywać wynik operacji modulo na a i 3
  • f (double), która będzie przechowywać wynik operacji modulo na b i 1.5
  • g (double), która będzie przechowywać wynik operacji modulo na b i 3.9
  • h (int), która będzie przechowywać wynik operacji modulo na c i 10

Sprawdź wynik i zobacz, jak różne dzielne i dzielniki wpływają na rezultat.

Spróbuj swoich sił

#include <iostream>
#include <cmath>

int main() {
    // Wpisz swój kod poniżej
    
    
    // Nie zmieniaj poniższej linii
    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 iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator C++ online