İçeriğe geç

math (Matematik)

math modülü capability gerektirmeyen saf matematik hesapları sağlar. Fonksiyonlarda overload yoktur; tam sayı ve kayan nokta sürümleri farklı isimler kullanır. İmzalardaki parametre adları, kod içinde bu değerin neyi temsil ettiğini gösterir.

Verilen 32-bit tam sayının mutlak değerini döndürür. Negatif bir değeri pozitif karşılığına çevirir; pozitif değerleri ve sıfırı değiştirmez.

Verilen 64-bit reel sayının mutlak değerini döndürür. abs fonksiyonundan farkı, sonucun double olmasıdır.

int min(int left, int right) / int max(int left, int right)

Bölüm başlığı “int min(int left, int right) / int max(int left, int right)”

İki int değeri karşılaştırır. min küçük olanı, max büyük olanı döndürür.

double minf(double left, double right) / double maxf(double left, double right)

Bölüm başlığı “double minf(double left, double right) / double maxf(double left, double right)”

İki double değeri karşılaştırır. minf küçük olanı, maxf büyük olanı döndürür. İsimdeki f tarihsel bir addır; parametre ve dönüş türü doubledır.

Verilen negatif olmayan reel sayının karekökünü hesaplayıp double olarak döndürür. Örneğin sqrt(25.0) sonucu 5.0dır. Negatif değerlerde hata fırlatmak yerine kayan nokta kurallarına uygun NaN sonucu oluşabilir.

base değerinin exponent kuvvetini hesaplar. Örneğin pow(3.0, 4.0) sonucu 81.0dır. Her iki parametre de double, sonuç da doubledır.

Reel sayıyı kendisinden büyük olmayan en yakın tam sayı değerine yuvarlar. floor(3.9) sonucu 3.0dır.

Reel sayıyı kendisinden küçük olmayan en yakın tam sayı değerine yuvarlar. ceil(3.1) sonucu 4.0dır.

Reel sayıyı en yakın tam sayı değerine yuvarlar ve sonucu double olarak döndürür. round(3.5) sonucu 4.0dır.

Sırasıyla pi ve Euler sabitlerini double olarak döndürür. Bunlar sabit değişken değil, parametresiz fonksiyonlardır; PI değil PI() yazılır.

import { sqrt, abs, absf, max, PI } from math;
int main() {
int bigger = max(10, 20);
double radius = 5.0;
double area = PI() * radius * radius;
print(sqrt(25.0));
print(abs(-42));
print(absf(-3.14));
print(bigger);
print(area);
return 0;
}