Zamknij komunikat

Nowy Office 2013
Do góry Skomentuj

08. Operatory arytmetyczne

08. Operatory arytmetyczne

Daniel Celeda
17 stycznia 2006
108 567
Odsłony
Daniel Celeda
17 stycznia 2006
108 567
Odsłony

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();
    }
}

Zobacz również

Komentarze

Kursik bardzo fajny i przystepny szczegolnie jesli chodzi o projektowanie obiektowe. Super sprawa
tomaswkiat, 23 lipca 2007, 17:08
świetna strona, bardzo przydatne objaśnienia, dla początkujących. Dzięki!
Tomas, 24 września 2007, 12:07
dzieki temu kursowi rusze w koncu z c# :)
adanos112, 25 października 2007, 00:57
Ten kurs nie jest fajowski
Malczyk, 21 lutego 2008, 12:37
Przykro mi Malczyk, ale muszę sie z tobą nie zgodzic..... Ten kurs bardzo mi pomógł w programowaniu
Dybens, 21 lutego 2008, 12:38
Obsługa błędów:
using System.Text.RegularExpressions;
//...
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 />        }


carck3r, 1 maja 2009, 17:47
uuu, <br /> się wstawiły. Zamiast <br /> wstawcie spację.

carck3r, 1 maja 2009, 17:48
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.
adriax, 22 października 2009, 17:33
Świetny kurs - dużo konkretów, mało lania wody. Dzięki wielkie!
kuba, 29 listopada 2009, 22:30
Nie mogę odpalić tego rozwiązania :(
Alizze, 30 grudnia 2011, 11:01
to jest najlepszy kurs programowania ktorego spotkalem, rewelacyjne!!! Dzieki
Miguel, 18 lipca 2012, 19:50
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.
Anonim, 6 lutego 2015, 15:33
są różne metody konwertowania ,a ta metoda tutaj wydaje się zrozumiała dla początkujących i o to chodzi!!
początkujący, 16 kwietnia 2015, 20:42

Dodaj swój komentarz

Zasady publikacji komentarzyZasady publikacji komentarzy

Redakcja CentrumXP.pl nie odpowiada za treść komentarzy publikowanych na stronach Portalu
i zastrzega sobie prawo do usuwania wypowiedzi, które:

  • zawierają słowa wulgarne, obraźliwe, prowokujące i inne naruszające dobre obyczaje;
  • są jedynie próbami reklamowania stron internetowych (spamowanie poprzez umieszczanie linków);
  • przyczyniają się do złamania prawa bądź warunków licencyjnych oprogramowania (cracki, seriale, torrenty itp.);
  • zawierają dane osobowe, teleadresowe, adresy mailowe lub numery GG;
  • merytorycznie nie wnoszą nic do dyskusji lub nie mają związku z tematem komentowanego newsa, artykułu bądź pliku.