08. Operatory arytmetyczne

08. Operatory arytmetyczne

 Daniel Celeda
Daniel Celeda
00:00
17.01.2006
13 komentarze
109292 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

Komentarze

  • tomaswkiat 17:08 23.07.2007

    Kursik bardzo fajny i przystepny szczegolnie jesli chodzi o projektowanie obiektowe. Super sprawa

  • Tomas 12:07 24.09.2007

    świetna strona, bardzo przydatne objaśnienia, dla początkujących. Dzięki!

  • adanos112 00:57 25.10.2007

    dzieki temu kursowi rusze w koncu z c# :)

  • Malczyk 12:37 21.02.2008

    Ten kurs nie jest fajowski

  • Dybens 12:38 21.02.2008

    Przykro mi Malczyk, ale muszę sie z tobą nie zgodzic..... Ten kurs bardzo mi pomógł w programowaniu

  • carck3r 17:47 01.05.2009

    <p>Obsługa błędów:</p> <p>using System.Text.RegularExpressions;</p> <p>//...</p> <p>public bool isNumeric(string text)<br />        {<br />            bool zgadzaSie = false;<br />            string pattern = @"^\d+$";<br />            Regex rgx = new Regex(pattern);<br />            zgadzaSie = rgx.IsMatch(text);<br />            if(zgadzaSie == true) return true;<br />            else return false;<br />        }</p> <p>[img]../tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cool.gif[/img]</p>

  • carck3r 17:48 01.05.2009

    <p>uuu, <br /> się wstawiły. Zamiast <br /> wstawcie spację.</p>

  • adriax 17:33 22.10.2009

    A slyszal o takim czymś jak TryParse? wyrazenie regularne w tym przypadku! mamy baaaaaaaardzo optymalny kod :D BTW: jak ktoś chce zacząć przygode z programowaniem, pierw niech nauczy sie programować strukturalnie! Najlepeij zacząć od C nowe jezyki programowania maja zbliżoną skladnie. A i od razu odpowiem na pytanie czytam kurs bo mi sie tak podoba.

  • kuba 22:30 29.11.2009

    Świetny kurs - dużo konkretów, mało lania wody. Dzięki wielkie!

  • Alizze 11:01 30.12.2011

    Nie mogę odpalić tego rozwiązania :(

  • Miguel 19:50 18.07.2012

    to jest najlepszy kurs programowania ktorego spotkalem, rewelacyjne!!! Dzieki

  • Anonim 15:33 06.02.2015

    Po co w ćwiczeniu za każdym razem wykorzystywać funkcję Parse()? Można na początku zrobić zmienną double xDouble zawierającą przekonwertowaną na typ double wartość x. To samo z y. A potem można już swobodnie i krótko używać tych zmiennych.

  • początkujący 20:42 16.04.2015

    są różne metody konwertowania ,a ta metoda tutaj wydaje się zrozumiała dla początkujących i o to chodzi!!

Skomentuj

Autor