D/Podstawowe operacje matematyczne

Z Wikibooks, biblioteki wolnych podręczników.

< D

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! 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 Do zrobienia:
priorytety operatorów, nawiasy, promocja typów. Operatory bitowe.Lwartości, przypisywanie do tej samej zmiennej