Fortran - Các chức năng nội tại
Các chức năng nội tại là một số chức năng phổ biến và quan trọng được cung cấp như một phần của ngôn ngữ Fortran. Chúng ta đã thảo luận về một số hàm này trong các chương Mảng, Ký tự và Chuỗi.
Các chức năng nội tại có thể được phân loại là -
- Hàm số
- Các hàm toán học
- Các chức năng truy vấn số
- Chức năng thao tác dấu chấm động
- Chức năng thao tác bit
- Chức năng nhân vật
- Chức năng loại
- Các chức năng logic
- Hàm mảng.
Chúng ta đã thảo luận về các hàm mảng trong chương Mảng. Trong phần sau, chúng tôi cung cấp mô tả ngắn gọn về tất cả các chức năng này từ các danh mục khác.
Trong cột tên hàm,
- A đại diện cho bất kỳ loại biến số nào
- R đại diện cho một biến số thực hoặc số nguyên
- X và Y đại diện cho các biến thực
- Z đại diện cho biến phức tạp
- W đại diện cho biến thực hoặc biến phức
Hàm số
Sr.No | Mô tả chức năng |
---|---|
1 | ABS (A) Nó trả về giá trị tuyệt đối của A |
2 | AIMAG (Z) Nó trả về phần ảo của một số phức Z |
3 | AINT (A [, KIND]) Nó cắt bớt một phần phân số của A về 0, trả về một số nguyên, thực. |
4 | ANINT (A [, KIND]) Nó trả về một giá trị thực, số nguyên hoặc số nguyên gần nhất. |
5 | CEILING (A [, KIND]) Nó trả về số nguyên nhỏ nhất lớn hơn hoặc bằng số A. |
6 | CMPLX (X [, Y, KIND]) Nó chuyển đổi các biến thực X và Y thành một số phức X + iY; nếu Y vắng mặt, 0 được sử dụng. |
7 | CONJG (Z) Nó trả về liên hợp phức của bất kỳ số phức Z nào. |
số 8 | DBLE (A) Nó chuyển đổi A thành một số thực chính xác gấp đôi. |
9 | DIM (X, Y) Nó trả về chênh lệch dương của X và Y. |
10 | DPROD (X, Y) Nó trả về sản phẩm thực có độ chính xác kép của X và Y. |
11 | FLOOR (A [, KIND]) Nó cung cấp số nguyên lớn nhất nhỏ hơn hoặc bằng số A. |
12 | INT (A [, KIND]) Nó chuyển đổi một số (thực hoặc số nguyên) thành số nguyên, cắt bớt phần thực về 0. |
13 | MAX (A1, A2 [, A3,...]) Nó trả về giá trị lớn nhất từ các đối số, tất cả đều có cùng kiểu. |
14 | MIN (A1, A2 [, A3,...]) Nó trả về giá trị nhỏ nhất từ các đối số, tất cả đều có cùng kiểu. |
15 | MOD (A, P) Nó trả về phần còn lại của A khi chia cho P, cả hai đối số đều cùng loại (A-INT (A / P) * P) |
16 | MODULO (A, P) Nó trả về A modulo P: (A-FLOOR (A / P) * P) |
17 | NINT (A [, KIND]) Nó trả về số nguyên gần nhất của số A |
18 | REAL (A [, KIND]) Nó chuyển đổi thành loại thực |
19 | SIGN (A, B) Nó trả về giá trị tuyệt đối của A nhân với dấu của P. Về cơ bản, nó chuyển dấu của B sang A. |
Thí dụ
program numericFunctions
implicit none
! define constants
! define variables
real :: a, b
complex :: z
! values for a, b
a = 15.2345
b = -20.7689
write(*,*) 'abs(a): ',abs(a),' abs(b): ',abs(b)
write(*,*) 'aint(a): ',aint(a),' aint(b): ',aint(b)
write(*,*) 'ceiling(a): ',ceiling(a),' ceiling(b): ',ceiling(b)
write(*,*) 'floor(a): ',floor(a),' floor(b): ',floor(b)
z = cmplx(a, b)
write(*,*) 'z: ',z
end program numericFunctions
Khi bạn biên dịch và thực thi chương trình trên, nó tạo ra kết quả sau:
abs(a): 15.2344999 abs(b): 20.7688999
aint(a): 15.0000000 aint(b): -20.0000000
ceiling(a): 16 ceiling(b): -20
floor(a): 15 floor(b): -21
z: (15.2344999, -20.7688999)
Các hàm toán học
Sr.No | Mô tả chức năng |
---|---|
1 | ACOS (X) Nó trả về cosin nghịch đảo trong khoảng (0, π), tính bằng radian. |
2 | ASIN (X) Nó trả về sin nghịch đảo trong khoảng (-π / 2, π / 2), tính bằng radian. |
3 | ATAN (X) Nó trả về tiếp tuyến nghịch đảo trong khoảng (-π / 2, π / 2), tính bằng radian. |
4 | ATAN2 (Y, X) Nó trả về tiếp tuyến nghịch đảo trong khoảng (-π, π), tính bằng radian. |
5 | COS (X) Nó trả về cosine của đối số tính bằng radian. |
6 | COSH (X) Nó trả về cosin hyperbol của đối số tính bằng radian. |
7 | EXP (X) Nó trả về giá trị theo cấp số nhân của X. |
số 8 | LOG (X) Nó trả về giá trị logarit tự nhiên của X. |
9 | LOG10 (X) Nó trả về giá trị logarit chung (cơ số 10) của X. |
10 | SIN (X) Nó trả về sin của đối số tính bằng radian. |
11 | SINH (X) Nó trả về sin hyperbol của đối số tính bằng radian. |
12 | SQRT (X) Nó trả về căn bậc hai của X. |
13 | TAN (X) Nó trả về tiếp tuyến của đối số tính bằng radian. |
14 | TANH (X) Nó trả về tiếp tuyến hyperbol của đối số tính bằng radian. |
Thí dụ
Chương trình sau đây tính toán vị trí ngang và dọc x và y tương ứng của một viên đạn sau một thời gian, t -
Trong đó, x = ut cos a và y = ut sin a - g t2 / 2
program projectileMotion
implicit none
! define constants
real, parameter :: g = 9.8
real, parameter :: pi = 3.1415927
!define variables
real :: a, t, u, x, y
!values for a, t, and u
a = 45.0
t = 20.0
u = 10.0
! convert angle to radians
a = a * pi / 180.0
x = u * cos(a) * t
y = u * sin(a) * t - 0.5 * g * t * t
write(*,*) 'x: ',x,' y: ',y
end program projectileMotion
Khi bạn biên dịch và thực thi chương trình trên, nó tạo ra kết quả sau:
x: 141.421356 y: -1818.57861
Các chức năng truy vấn số
Các hàm này hoạt động với một mô hình số học số nguyên và dấu phẩy động nhất định. Các hàm trả về các thuộc tính của các số cùng loại với biến X, có thể là số thực và trong một số trường hợp là số nguyên.
Sr.No | Mô tả chức năng |
---|---|
1 | DIGITS (X) Nó trả về số chữ số có nghĩa của mô hình. |
2 | EPSILON (X) Nó trả về con số gần như không đáng kể so với một. Nói cách khác, nó trả về giá trị nhỏ nhất sao cho REAL (1,0, KIND (X)) + EPSILON (X) không bằng REAL (1,0, KIND (X)). |
3 | HUGE (X) Nó trả về số lượng lớn nhất của mô hình |
4 | MAXEXPONENT (X) Nó trả về số mũ lớn nhất của mô hình |
5 | MINEXPONENT (X) Nó trả về số mũ tối thiểu của mô hình |
6 | PRECISION (X) Nó trả về độ chính xác thập phân |
7 | RADIX (X) Nó trả về cơ sở của mô hình |
số 8 | RANGE (X) Nó trả về phạm vi số mũ thập phân |
9 | TINY (X) Nó trả về số dương nhỏ nhất của mô hình |
Chức năng thao tác dấu chấm động
Sr.No | Mô tả chức năng |
---|---|
1 | EXPONENT (X) Nó trả về phần lũy thừa của một số kiểu máy |
2 | FRACTION (X) Nó trả về phần phân số của một số |
3 | NEAREST (X, S) Nó trả về số bộ xử lý khác nhau gần nhất theo hướng nhất định |
4 | RRSPACING (X) Nó trả về nghịch đảo của khoảng cách tương đối của các số kiểu máy gần số nhất định |
5 | SCALE (X, I) Nó nhân một thực với cơ số của nó thành một lũy thừa |
6 | SET_EXPONENT (X, I) nó trả về phần lũy thừa của một số |
7 | SPACING (X) Nó trả về khoảng cách tuyệt đối của các số kiểu máy gần số nhất định |
Chức năng thao tác bit
Sr.No | Mô tả chức năng |
---|---|
1 | BIT_SIZE (I) Nó trả về số bit của mô hình |
2 | BTEST (I, POS) Kiểm tra bit |
3 | IAND (I, J) Logic AND |
4 | IBCLR (I, POS) Xóa bit |
5 | IBITS (I, POS, LEN) Trích xuất bit |
6 | IBSET (I, POS) Đặt bit |
7 | IEOR (I, J) Độc quyền HOẶC |
số 8 | IOR (I, J) Bao gồm HOẶC |
9 | ISHFT (I, SHIFT) Sự thay đổi lôgic |
10 | ISHFTC (I, SHIFT [, SIZE]) Chuyển dịch tròn |
11 | NOT (I) Bổ sung logic |
Chức năng nhân vật
Sr.No | Mô tả chức năng |
---|---|
1 | ACHAR (I) Nó trả về ký tự thứ I trong chuỗi đối chiếu ASCII. |
2 | ADJUSTL (STRING) Nó điều chỉnh chuỗi còn lại bằng cách loại bỏ bất kỳ khoảng trống nào ở đầu và chèn các khoảng trống ở cuối |
3 | ADJUSTR (STRING) Nó điều chỉnh chuỗi ngay bằng cách loại bỏ các khoảng trống ở cuối và chèn các khoảng trống ở đầu. |
4 | CHAR (I [, KIND]) Nó trả về ký tự thứ I trong trình tự đối chiếu thông số kỹ thuật của máy |
5 | IACHAR (C) Nó trả về vị trí của ký tự trong chuỗi đối chiếu ASCII. |
6 | ICHAR (C) Nó trả về vị trí của ký tự trong trình tự đối chiếu cụ thể của máy (bộ xử lý). |
7 | INDEX (STRING, SUBSTRING [, BACK]) Nó trả về vị trí bắt đầu ngoài cùng bên trái (ngoài cùng bên phải nếu BACK là .TRUE.) Của SUBSTRING trong STRING. |
số 8 | LEN (STRING) Nó trả về độ dài của một chuỗi. |
9 | LEN_TRIM (STRING) Nó trả về độ dài của một chuỗi mà không có ký tự trống theo sau. |
10 | LGE (STRING_A, STRING_B) Về mặt ngữ nghĩa lớn hơn hoặc bằng |
11 | LGT (STRING_A, STRING_B) Về mặt ngữ nghĩa lớn hơn |
12 | LLE (STRING_A, STRING_B) Về mặt ngữ nghĩa nhỏ hơn hoặc bằng |
13 | LLT (STRING_A, STRING_B) Về mặt ngữ nghĩa ít hơn |
14 | REPEAT (STRING, NCOPIES) Nối lặp lại |
15 | SCAN (STRING, SET [, BACK]) Nó trả về chỉ mục của ký tự ngoài cùng bên trái (ngoài cùng bên phải nếu BACK là .TRUE.) Của STRING thuộc về SET hoặc 0 nếu không thuộc về. |
16 | TRIM (STRING) Xóa các ký tự trống ở cuối |
17 | VERIFY (STRING, SET [, BACK]) Xác minh tập hợp các ký tự trong một chuỗi |
Chức năng loại
Sr.No | Mô tả chức năng |
---|---|
1 | KIND (X) Nó trả về giá trị tham số kiểu loại. |
2 | SELECTED_INT_KIND (R) Nó trả về loại tham số kiểu cho phạm vi số mũ cụ thể. |
3 | SELECTED_REAL_KIND ([P, R]) Giá trị thông số loại thực, độ chính xác và phạm vi đã cho |
Chức năng logic
Sr.No | Mô tả chức năng |
---|---|
1 | LOGICAL (L [, KIND]) Chuyển đổi giữa các đối tượng kiểu lôgic với các tham số kiểu kiểu khác nhau |