Một số hàm và thủ thục của Fortran

Một phần của tài liệu Giáo trình Ngôn ngữ lập trình Fortran 90: Phần 2 (Trang 119 - 122)

D I= ET(AA,N) X(I) = I/

3. Một số hàm và thủ thục của Fortran

Tên hàm, thủ tục Chức năng

ABS(A) Giá trị tuyệt đối của số nguyên, số thực hoặc số phức A

ACOS(X) Arccosine (hàm ng−ợc của cosine) của X

AIMAG(Z) Phần ảo của số phức Z

AINT(A [,KIND]) Phần nguyên (là số thực) lớn nhất không v−ợt quá A

ANINT(A [,KIND]) Phần nguyên (là số thực) gần nhất của A

ASIN(X) Arcsine (hàm ng−ợc của sine) của X

ATAN(X) Arctang (hàm ng−ợc của tang) của X, trong phạm vi −π/2 đến π/2

CEILING(A) Số nguyên nhỏ nhất không nhỏ hơn A

CMPLX(X[,Y][,KIND]) Đổi số X hoặc (X, Y) ra số phức

CONJG(Z) Liên hợp phức của Z

COS(X) Cosine của X

COSH(X) Cosine hyperbol của X

DIM(X, Y) max(X−Y, 0)

EXP(X) ex

FLOOR(A) Số nguyên lớn nhất không v−ợt quá A

INT(A [,KIND]) Đổi số A thành số nguyên và chặt cụt phần thập phân

LOG(X) Lôgarit cơ số tự nhiên của X

LOG10(X) Lôgarit cơ số 10 của X

MAX(A1,A2[,A3,...]) Giá trị lớn nhất của các số A1, A2, A3,…

MIN(A1,A2[,A3,...]) Giá trị nhỏ nhất của các số A1, A2, A3,…

MOD(A, P) Số d− của phép chia A cho P, bằng A-INT(A/P)*P

NINT(A [,KIND]) Số nguyên gần nhất với A

REAL(A [,KIND]) Đổi số A thành số thực

SIGN(A, B) Trị tuyệt đối của A nhân với dấu của B

SIN(A) Sine của A

SINH(A) Sine hyberbol của A

SQRT(A) Căn bậc hai của A

TAN(A) Tang của A

TANH(A) Tang hyberbol của A

ACHAR(I) Ký tự có mã ASCII là I với I trong khoảng 0−127

ADJUSTL(STR) Trả về xâu STR có cùng độ dài nh−ng đã căn lề trái

ADJUSTR(STR) Trả về xâu STR có cùng độ dài nh−ng đã căn lề phải

CHAR(I [,KIND]) Ký tự có vị trí là I của hệ thống sắp xếp thứ tự đ−ợc cho bởi KIND

IACHAR(C) Mã ASCII của ký tự C

ICHAR(C) Vị trí của ký tự C trong hệ thống sắp xếp thứ tự

INDEX(STR, SUBSTR [BACK]) [BACK])

Vị trí bắt gặp đầu tiên của SUBSTR trong STR, tính từ bên trái (nếu BACK=FALSE−ngầm định) hoặc bên phải (nếu

BACK=TRUE), bằng 0 nếu khơng tìm thấy

LEN_TRIM(STR) Độ dài của xâu STR khi đã cắt bỏ các dấu cách bên phải

LGE(STR_A, STR_B) Bằng TRUE nếu STR_A tiếp sau STR_B theo thứ tự ASCII hoặc bằng nhau (về mặt từ vựng), bằng FALSE nếu ng−ợc lại

LGT(STR_A, STR_B) Bằng TRUE nếu STR_A tiếp sau STR_B theo thứ tự ASCII, bằng FALSE nếu ng−ợc lại

LLE(STR_A, STR_B) Bằng TRUE nếu STR_A đứng tr−ớc STR_B theo thứ tự ASCII hoặc bằng nhau (về mặt từ vựng), bằng FALSE nếu ng−ợc lại

LLT(STR_A, STR_B) Bằng TRUE nếu STR_A đứng tr−ớcc STR_B theo thứ tự ASCII, bằng FALSE nếu ng−ợc lại

LEN(STR) Số ký tự của STR nếu là biến vơ h−ớng, hoặc số phần tử của STR nếu nó là biến mảng

REPEAT(STR,NCOPIES) Gộp NCOPIES lần xâu STR

TRIM(STR) Trả về xâu STR đã cắt bỏ các dấu cách bên phải nhất

EPSILON(X) Số mà hầu nh− có thể bỏ qua so với 1 (số vơ cùng bé 21−p

)

HUGE(X) Giá trị lớn nhất của biến X có kiểu thực hoặc nguyên

PRECISION(X) Độ chính xác thập phân (số chữ số thập phân biểu diễn chính xác) của số thực hoặc số phức

Tên hàm, thủ tục Chức năng

BIT_SIZE(I) Số bit lớn nhất biểu diễn số nguyên

BTEST(I, POS) Bằng TRUE nếu bít thứ POS của số nguyên I bằng 1 (Chú ý: Số thứ tự bít đánh số từ 0 tính từ bên phải sang của dãy bít biểu diễn số I)

IAND(I, J) Trả về số nguyên biểu diễn các bít của I và J t−ơng ứng bằng 1, ví dụ IAND(255, 128)=128, vì bít thứ 7 của hai số đều bằng 1, tức 128 = 1.27 + 0.26 + … 0.20.

ISHFT(I, SHIFT) Giá trị của I khi dịch chuyển tất cả các bít của I sang trái (SHIFT d−ơng) hoặc sang phải (SHIFT âm) SHIFT vị trí

ALLOCATED(ARRAY) Nhận giá trị TRUE nếu ARRAY đã đ−ợc cấp phát bộ nhớ

LBOUND(ARRAY[,DIM]) Trả về chỉ số mảng đầu tiên (nếu bỏ qua DIM) hoặc chỉ số đầu tiên của chiều DIM của ARRAY

SHAPE(SOURCE) Trả về kích th−ớc các chiều của mảng SOURCE, nếu SOURCE là vơ h−ớng thì kích th−ớc bằng khơng

SIZE(ARRAY [,DIM]) Trả về kích th−ớc [chiều DIM] của mảng ARRAY

UBOUND(ARRAY[,DIM]) T−ơng tự nh− LBOUND nh−ng là chỉ số cuối cùng

MAXLOC(ARRAY[,MASK]) Trả về địa chỉ phần tử mảng có giá trị lớn nhất. Nếu có đối số MASK thì MASK là mảng các phần tử lơgic có cùng kích th−ớc với ARRAY; trong tr−ờng hợp này chỉ có các phần tử TRUE mới đ−ợc xét đến.

MERGE(TSOURCE, FSOURCE, MASK) FSOURCE, MASK)

Trả về mảng có cùng kích th−ớc với cả ba tham số. Các phần tử của mảng kết quả sẽ là những giá trị lấy từ mảng TSOURCE hoặc FSOURCE tùy thuộc phần tử t−ơng ứng của MASK là TRUE hay FALSE.

MINLOC(ARRAY[,MASK]) T−ơng tự nh− MAXLOC nh−ng là giá trị nhỏ nhất.

TRANSPOSE(MATRIX) Trả về ma trận chuyển vị của MATRIX

ASSOCIATED(POINTER [,TARGET]) [,TARGET])

Nếu khơng có TARGET, kết quả là TRUE nếu POINTER đ−ợc liên kết với một đích, là FALSE nếu ng−ợc lại. Trạng thái POINTER phải là ch−a xác định. Nếu có TARGET, kết quả là TRUE nếu POINTER đ−ợc liên kết với nó. Nếu TARGET cũng chính là con trỏ thì đích của nó đ−ợc so sánh với đích của POINTER, và sẽ trả về FALSE nếu hoặc POINTER hoặc TARGET ch−a đ−ợc liên kết.

KIND(X) Trả về giá trị tham số loại dữ liệu của X

SELECTED_INT_KIND(R) Giá trị tham số loại đối với dữ liệu kiểu số nguyên có thể biểu diễn tất cả các giá trị nguyên trong khoảng −10R <n<10R với R là một số nguyên.

SELECTED_REAL_KIND([P] [,R]) [,R])

Giá trị tham số loại đối với dữ liệu kiểu số thực có độ chính xác thập phân ít nhất là P, và phạm vi số mũ thập phân ít nhất là R. ít nhất một trong hai tham số P, R phải xuất hiện.

RANDOM_NUMBER (X) Thủ tục tạo bộ số ngẫu nhiên (0 ≤ X < 1)

Tên hàm, thủ tục Chức năng

DATE_AND_TIME([DATE] [,TIME] [,ZONE] [,TIME] [,ZONE] [,VALUES])

Thủ tục trả về các giá trị (là trống rỗng hoặc HUGE(0) nếu khơng có đồng hồ):

− DATE (Character) dạng CCYYMMDD (thế kỷ−ngày) − TIME (Character) dạng HHMMSS.SSS (giờ−mili giây)

− ZONE (Character) dạng Shhmm (hiệu giữa giờ địa ph−ơng và giờ

UTC, S là dấu

− VALUES mảng ít nhất 8 phần tử, mà giá trị của chúng t−ơng ứng

là Năm, Tháng, Ngày, hiệu thời gian theo phút so với UTC, giờ, phút, giây và mili giây.

Một phần của tài liệu Giáo trình Ngôn ngữ lập trình Fortran 90: Phần 2 (Trang 119 - 122)

Tải bản đầy đủ (PDF)

(122 trang)