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