Dzielenie całkowite#

Fortran rozróżnia arytmetykę zmiennoprzecinkową oraz całkowitą. Ważne jest, aby zauważyć, że dzielenie liczb całkowitych zawsze odbywa się za pomocą arytmetyki całkowitej. Co więcej, Fortran używa standardowej kolejności wykonywania działań (np. mnożenie i dzielenie przed dodawaniem i odejmowaniem w przypadku braku nawiasów), działania tego samego priorytetu wykonywane są od lewej do prawej. Rozważ poniższy przykład przedstawiający dzielenie liczby nieparzystej przez liczbę całkowitą:

integer :: n
n = 3
print *, n / 2  ! prints 1
print *, n*(n + 1)/2  ! prints 6
print *, n/2*(n + 1)  ! prints 4 (left-to-right evaluation order)
n = -3
print *, n / 2  ! prints -1

Zwróć uwagę czy na pewno chcesz użyć arytmetyki całkowitej w poniższym przykładzie. Jeśli zamiast tego chcesz użyć arytmetyki zmiennoprzecinkowej upewnij się, że przed użyciem operatora dzielenia dokonałeś rzutowania liczb rzeczywistych lub oddzielileś liczby całkowite poprzez pomnożenie ich przez 1.0_dp:

integer :: n
n = 3
print *, real(n, dp) / 2  ! prints 1.5
print *, n * 1.0_dp / 2  ! prints 1.5
n = -3
print *, real(n, dp) / 2  ! prints -1.5
print *, n * 1.0_dp / 2  ! prints -1.5