D/Podstawowe operacje matematyczne
Z Wikibooks, biblioteki wolnych podręczników.
Spis treści |
[edytuj] Podstawowe operacje matematyczne
[edytuj] Arytmetyka
x = y;
przypisuje zmiennej x wartość y
x + y
zwraca sumę x i y
x++ //oraz ++x
zwiększają x o 1 z tą różnicą, że pierwsza zwraca wartość pierwotną, a druga po wykonaniu dodawania.
x - y
zwraca różnicę x i y
x-- //oraz --x
zmniejszają x o 1 z tą różnicą, że pierwsza zwraca wartość pierwotną, a druga po wykonaniu odejmowania.
x * y
zwraca iloczyn x i y
x / y
zwraca iloraz x i y, lub wynik dzielenia całkowitego gdy x i y są typu całkowitego. Na przykład wyrażenie:
float a=3/2;
zainicjuje zmienna a wartością 1 a nie 1.5 . Można to zmienić zamieniając jeden z elementów wyrażenia na literał typu zmiennoprzecinkowego dopisując kropkę:
float a=3./2;
W przypadku gdy chcemy podzielić zmienne typu całkowitego możemy zastosować rzutowanie typów
int a=3; int b=2; float c=a/b; // c ma wartosc 1 float d=(cast(float)a)/b; // d ma wartosc 1.5
Zobacz więcej w rozdziale o zmiennych i rzutowaniu.
x % y
zwraca resztę z dzielenia x przez y
Istnieją również operatory składające się z operatora przypisania i operatora działania matematycznego(+=,*=, etc.) działającego analogicznie do
x += y
równoznacznego z
x = x + y;
abs(x)
zwraca wartość bezwzględną z x
pow(x,y)
zwraca x podniesiony do potęgi y
Obecnie użycie funcji pow często kończy się błędem kompilatora. Powodem jest konflikt jej przeciążonych wersji - kompilator informuje nas, że wywołanie pow(int, int) pasuje do kilku wersji funkcji. W celu ominięcia tego błędu można przed użyciem funkcji pow zapisać argumenty do zmiennych typu real:
real a = 2, b = 4; real c = pow(a, b);
Jeżeli chcemy, aby wynik był typu int, używamy rzutowania:
int c = cast(int) pow(a, b);
| Uwaga! funkcje abs i pow jest częścią modułu std.math - musisz go zaimportować |
[edytuj] Logika
[edytuj] dla wartości typu bool
x && y
zwraca wartość logiczną wyrażenia x i y( innymi słowy zwraca true wtedy i tylko wtedy gdy obie zmienne mają wartość true)
x || y
zwraca wartość logiczną wyrażenia x lub y ( innymi słowy zwraca wartość true wtedy, gdy jedna lub obie wartości mają wartość true)
x ^^ y
zwraca wartość logiczną wyrażenia x albo y ( innymi słowy zwraca wartość true wtedy i tylko wtedy gdy jedna z nich ma wartość true)
!x
zwraca wartość logiczną wyrażenia nie x" ( innymi słowy zwraca false dla x = true i true dla x = false)
[edytuj] dla wartości wszystkich typów
x == y
zwraca true wtedy i tylko wtedy gdy x jest równe y
x != y
zwraca false wtedy i tylko wtedy gdy x jest równe y
[edytuj] dla wartości liczbowych
x > y
zwraca wartość true wtedy i tylko wtedy gdy x jest większe od y
x >= y
zwraca wartość true wtedy i tylko wtedy gdy x nie jest mniejszy od y
x < y
zwraca wartość true wtedy i tylko wtedy gdy x jest mniejszy od y
x <= y
zwraca wartość true wtedy i tylko wtedy gdy x nie jest większe od y
x & y
zwraca wartość składającą się z wartości logicznych koniunkcji kolejnych bitów składających się na x i y
x | y
zwraca wartość składającą się z wartości logicznych alternatyw kolejnych bitów składających się na x i y
x ^ y
zwraca wartość składającą się z wartości logicznych alternatyw wykluczających kolejnych bitów składających się na x i y
| Do zrobienia: priorytety operatorów, nawiasy, promocja typów. Operatory bitowe.Lwartości, przypisywanie do tej samej zmiennej |