08. Operatory arytmetyczne

08. Operatory arytmetyczne

 Daniel Celeda
Daniel Celeda
00:00
17.01.2006
110954 wyświetlenia

Bardzo ważnym elementem w językach programowania są operatory. Czym są i do czego służą?
Na pewno każdy z nas zna podstawowe działania matematyczne, takie jak dodawanie, odejmowanie itd. W C# mamy operatory arytmetyczne, które obsługują obliczanie wyrażeń matematycznych.

„+” dodawanie,
„-” odejmowanie,
„*” mnożenie,
„/” dzielenie

Znając te podstawowe operatory możemy już napisać prosty kalkulator w C#, który np. dodaje dwie liczby.

class KlasaGlowna
{
    static void Main()
    {
        string x;
        string y;
        double wynik;

        System.Console.WriteLine("Podaj pierwszą liczbę.");
        x = System.Console.ReadLine();
        System.Console.WriteLine("Podaj drugą liczbę.");
        y = System.Console.ReadLine();

        wynik = double.Parse(x) + double.Parse(y);
        System.Console.WriteLine("Wynik: " + wynik);
        System.Console.ReadLine();
    }
}

Na początku deklarujemy zmienne. „x” oraz „y”, będące „pojemnikami” na dodawane liczby. Są one typu „string”, ponieważ metoda „ReadLine” zwraca nam wynik tego typu. „wynik” natomiast jest typu „double”. Operator „+” dodaje wartości zmiennych, ale tylko wtedy, gdy są one typu reprezentującego liczby. Tak więc musimy zmienne „x” oraz „y” przekonwertować na typ „double”. W tym celu wywołujemy metodę „Parse”, która jako parametr otrzymuje tekst i zamienia go na liczbę. Jeśli zamiast liczby podamy np. jakąś literkę, metoda „Parse” nie będzie w stanie zamienić jej na liczbę i wygenerowany zostanie błąd.

Jeśli uruchamialiśmy naszą aplikację w trybie debuggera („Start debugging” – klawisz F5 lub przycisk z zielonym trójkątem), pojawi nam się okno powiadamiające nas o błędzie wykonania wraz z opisem.

Jeśli uruchamialiśmy w trybie bez debuggera („Start Without Debugging” – Ctrl + F5 lub przez menu „Debug”), pojawi nam się poniższe okno.

W naszym kursie, niestety, nie będziemy się zajmować zagadnieniem obsługi błędów.

Poniżej wynik działania programu jeśli podamy poprawne dane (liczby).

W liczbach, które podaliśmy (podczas wykonania programu, a nie w kodzie źródłowym) część dziesiętną oddzielamy za pomocą przecinka, a nie kropki (kropki używa się zawsze w kodzie źródłowym programu), ponieważ program rozpoznaje ustawienia regionalne na naszym komputerze.

Często wykorzystywanym operatorem jest modulo „%”. Działanie, które wykonujemy za pomocą tego operatora bazuje na zwykłym dzieleniu. Wynikiem dzielenia dwóch liczb za pomocą modulo jest reszta np. 7 % 3 = 1.

Operatory przypisania

Do tej pory często używaliśmy operatora „=”. Jak wiemy służy on do przypisywania wartości do zmiennych. Istnieją operatory pochodne od „=”, takie jak „+=” , „-=” , „*=” , „/=” , „%=” (wymieniłem tylko najważniejsze).

Zauważmy, że każdy rozpoczyna się od operatora arytmetycznego. W zależności od pierwszego znaku, przypisanie przyjmuje inna formę. Standardowo „=” powoduje, że wartości z prawej strony wyrażenia zostają przypisane do zmiennej po lewej. Niestandardowe operatory przypisania powodują, że wartość aktualnie znajdująca się w zmiennej po lewej stronie zostaje zmodyfikowana o wartość z prawej wg operatora znajdującego się w operatorze przypisania.

Prześledźmy to na przykładach.

Najpierw program z wykorzystaniem operatora „=”.

class KlasaGlowna
{
    static void Main()
    {
        int wynik;
        wynik = 7 + 3;
        System.Console.WriteLine("Wynik: " + wynik);|
        System.Console.ReadLine();
    }
}

Teraz program z wykorzystaniem „+=”

class KlasaGlowna
{
    static void Main()
    {
        int wynik = 7;
        wynik += 3;
        System.Console.WriteLine("Wynik: " + wynik);
        System.Console.ReadLine();
    }
}

Wynik działania obydwu programów jest taki sam.

Inkrementacja i dekrementacja 

Na pewno słyszeliście o języku C++. Jego nazwa powstała ze złączenia nazwy języka C (poprzednik C++) oraz operatora „++”. Operator ten to operator inkrementacji. Ma on swojego odpowiednika służącego do dekrementacji „- - ”. Obydwa operatory są jednoargumentowe, czyli nie potrzebują dwóch argumentów tak jak np. „+” czy „-”. Operator „++” zwiększa zmienną o 1, a „- - ” zmniejsza. Jest to udogodnienie, aby nie pisać całego wyrażenia

x = x + 1;

lub

x += 1;

albo tylko

x++;

Ćwiczenie

Napisz program pobierający dwie liczby i wykonujący na nich pięć działań arytmetycznych z wykorzystaniem operatorów: „+=” , „-=” , „*=” , „/=” , „%=”.

class Operatory
{
    static void Main()
    {
        string x;
        string y;
        double wynikDodawania;
        double wynikOdejmowania;
        double wynikMnozenia;
        double wynikDzielenia;
        double wynikModulo;

        System.Console.WriteLine("Podaj pierwszą liczbę.");
        x = System.Console.ReadLine();
        System.Console.WriteLine("Podaj drugą liczbę.");
        y = System.Console.ReadLine();

        wynikDodawania = double.Parse(x);
        wynikDodawania += double.Parse(y);

        wynikOdejmowania = double.Parse(x);
        wynikOdejmowania -= double.Parse(y);

        wynikMnozenia = double.Parse(x);
        wynikMnozenia *= double.Parse(y);

        wynikDzielenia = double.Parse(x);
        wynikDzielenia /= double.Parse(y);

        wynikModulo = double.Parse(x);
        wynikModulo %= double.Parse(y);

        System.Console.WriteLine("Wynik dowania: " + wynikDodawania);
        System.Console.WriteLine("Wynik odejmowania: " + wynikOdejmowania);
        System.Console.WriteLine("Wynik mnożenia: " + wynikMnozenia);
        System.Console.WriteLine("Wynik dzielenia: " + wynikDzielenia);
        System.Console.WriteLine("Wynik modulo: " + wynikModulo);
        System.Console.ReadLine();
    }
}


Spodobał Ci się ten artykuł? Podziel się z innymi!

Źródło:

Polecamy również w kategorii Kurs C#, cz. I