INF.04 · C# · lekcja 4

Operatory w C#

Policz wynik i zobacz, skąd się bierze

  • Zrozum
  • Sprawdź
  • Napisz sam

Po tej lekcji: policz wynik i zobacz, skąd się bierze

Dzisiaj zrobisz konkretną rzecz

Bez operatorów program może co najwyżej wypisać stały tekst — operatory to narzędzie, dzięki któremu program faktycznie coś OBLICZA i PORÓWNUJE, co jest fundamentem każdej decyzji podejmowanej w kodzie (Lekcja 6).

Operator modulo (%) używany jest wszędzie tam, gdzie trzeba sprawdzić "co N-ty element" — np. co 5. klient dostaje rabat, albo czy numer wiersza jest parzysty (do naprzemiennego kolorowania tabeli).

Sprawdź w działaniu

Policz wynik i zobacz, skąd się bierze

Najpierw przewidź wynik. Zmień dane w modelu i porównaj efekt. Spróbuj także przypadku granicznego, a nie tylko pierwszego poprawnego przykładu.

Ta interakcja wymaga włączonego JavaScriptu.

Model pokazuje wybraną zasadę. Nie uruchamia ani nie ocenia wklejonego kodu C#.

1. Przygotuj i uruchom własny projekt

2. Najpierw mały przykład

Wykonaj tę próbę przed dłuższym rozwiązaniem. / dla dwóch int daje iloraz całkowity. Rzutowanie (double)a zmienia rodzaj obliczenia. % daje resztę. Potęgowanie w C# to Math.Pow(a,b); ^ jest operatorem XOR.

Program.cscsharp
int a = 7, b = 2;
Console.WriteLine(a / b);
Console.WriteLine((double)a / b);
Console.WriteLine(a % b);
Console.WriteLine(Math.Pow(a, b));
Wynik
3; następnie 3,5 lub 3.5 zależnie od kultury; reszta1; potęga49.
  1. Co sprawdzić? Zmień jedną wartość i przed uruchomieniem zapisz przewidywany rezultat. Porównaj go z opisem wyniku; przy błędzie wróć do konkretnej instrukcji.

Jak to działa — 1

Operator to symbol nakazujący programowi wykonanie konkretnej operacji na wartościach (tzw. operandach) — dodawania, porównania, przypisania. Znasz je już z matematyki, C# dodaje do nich kilka własnych.

Operatory arytmetyczne (do liczenia): + dodawanie, - odejmowanie, * mnożenie, / dzielenie, % reszta z dzielenia (modulo — bardzo przydatne, np. do sprawdzania parzystości liczby).

Operatory przypisania: = przypisuje wartość, a skrócone warianty +=, -=, *=, /= łączą operację arytmetyczną z przypisaniem w jednym kroku (x += 5; to skrót od x = x + 5;).

Operatory inkrementacji/dekrementacji: ++ zwiększa wartość o 1, -- zmniejsza o 1 — najczęściej spotykane w pętlach (Lekcja 7).

Operatory porównania (zwracają true/false): == równe, != różne, >, <, >=, <=. Uwaga: pojedynczy znak = to PRZYPISANIE, a podwójny == to PORÓWNANIE — to jedna z najczęstszych pomyłek początkujących.

Jak to działa — 2

Operatory logiczne (łączą warunki): && (i — oba warunki muszą być prawdziwe), || (lub — wystarczy jeden), ! (zaprzeczenie, odwraca true na false i odwrotnie).

3. Pełny przykład — czytaj od Main

Teraz zastąp Program.cs tym programem. Zanim uruchomisz, znajdź dane wejściowe, operację i miejsce prezentacji wyniku. W tym wariancie zachowujemy jawny Main. Nie wklejaj kilku pełnych programów do jednego pliku.

Program.cs — osobne uruchomieniecsharp
using System;

class Program
{
    static void Main()
    {
        int punkty = 10;
        punkty += 5; // skrót od: punkty = punkty + 5;
        Console.WriteLine("Punkty: " + punkty); // 15

        int liczba = 7;
        bool jestParzysta = (liczba % 2 == 0);
        Console.WriteLine("Czy parzysta? " + jestParzysta); // False

        int wiek = 20;
        bool maPrawoJazdy = true;
        bool mozeWypozyczycAuto = (wiek >= 18) && maPrawoJazdy;
        Console.WriteLine("Może wypożyczyć auto? " + mozeWypozyczycAuto); // True
    }
}
  1. Prześledź kod liczba % 2 == 0 sprawdza resztę z dzielenia przez 2 — jeśli wynosi 0, liczba jest parzysta. Nawiasy wokół (wiek >= 18) && maPrawoJazdy nie są konieczne składniowo, ale znacząco poprawiają czytelność złożonych warunków logicznych.

Sprawdź, zanim przepiszesz cały program

Najczęstszy błąd to pomylenie = (przypisanie) z == (porównanie) — if (x = 5) w C# jest błędem kompilacji przy typie bool (inaczej niż w niektórych innych językach), więc kompilator Cię ostrzeże, ale warto zapamiętać różnicę od razu. Drugi błąd: dzielenie dwóch liczb całkowitych (int) i oczekiwanie wyniku z częścią dziesiętną — 7 / 2 w C# da 3 (dzielenie całkowitoliczbowe), a nie 3.5, chyba że przynajmniej jedna z liczb jest typu double.

Ćwiczenie z pomocą · samodzielna praca

4. Teraz Twoja zmiana

Napisz program obliczający resztę z dzielenia dwóch wpisanych na sztywno liczb i sprawdzający, czy wynik jest równy zero.

Oczekiwany rezultat
Spełnij warunki polecenia. Zapisz wejście, otrzymany wynik i wyjaśnij, która część kodu za niego odpowiada.
Potrzebujesz pomocy? Rozwiązuj krok po kroku.
Krok 1 — pokaż podpowiedź

Wróć do podstawowej formy oraz objaśnienia: / dla dwóch int daje iloraz całkowity. Rzutowanie (double)a zmienia rodzaj obliczenia. % daje resztę. Potęgowanie w C# to Math.Pow(a,b); ^ jest operatorem XOR.

Krok 2 — pokaż podpowiedź

Zmień tylko część potrzebną do polecenia. Zachowaj działającą wersję przed zmianą i uruchamiaj po każdym małym etapie.

Krok 3 — pokaż podpowiedź

Sprawdź przypadek zwykły i graniczny; porównaj z regułą: 3; następnie 3,5 lub 3.5 zależnie od kultury; reszta1; potęga49.

Otwórz tylko tyle podpowiedzi, ile potrzebujesz. Po każdym kroku wróć do zadania i sprawdź wynik.

5. Sprawdź rozumienie, nie tylko uruchomienie

Dalej na swoim koncie

Rozgrzewki, quiz i zadania są w biurku ucznia.

Teoria jest otwarta dla wszystkich. Żeby rozwiązywać zadania, zapisywać szkice i widzieć swój postęp, zaloguj się.

Zaloguj się →
Źródła i dalsza nauka