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