Fortran - Các loại dữ liệu
Fortran cung cấp năm kiểu dữ liệu nội tại, tuy nhiên, bạn cũng có thể lấy các kiểu dữ liệu của riêng mình. Năm loại nội tại là -
- Kiểu số nguyên
- Loại thực
- Loại phức tạp
- Loại logic
- Loại ký tự
Loại số nguyên
Các kiểu số nguyên chỉ có thể chứa các giá trị nguyên. Ví dụ sau trích xuất giá trị lớn nhất có thể được giữ trong một số nguyên bốn byte thông thường:
program testingInt
implicit none
integer :: largeval
print *, huge(largeval)
end program testingInt
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:
2147483647
Lưu ý rằng huge()hàm cung cấp số lớn nhất có thể được giữ bởi kiểu dữ liệu số nguyên cụ thể. Bạn cũng có thể chỉ định số byte bằng cách sử dụngkindngười chỉ định. Ví dụ sau đây chứng minh điều này -
program testingInt
implicit none
!two byte integer
integer(kind = 2) :: shortval
!four byte integer
integer(kind = 4) :: longval
!eight byte integer
integer(kind = 8) :: verylongval
!sixteen byte integer
integer(kind = 16) :: veryverylongval
!default integer
integer :: defval
print *, huge(shortval)
print *, huge(longval)
print *, huge(verylongval)
print *, huge(veryverylongval)
print *, huge(defval)
end program testingInt
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:
32767
2147483647
9223372036854775807
170141183460469231731687303715884105727
2147483647
Loại thực
Nó lưu trữ các số dấu phẩy động, chẳng hạn như 2.0, 3.1415, -100.876, v.v.
Theo truyền thống, có hai loại thực khác nhau, mặc định real gõ và double precision kiểu.
Tuy nhiên, Fortran 90/95 cung cấp nhiều quyền kiểm soát hơn đối với độ chính xác của các kiểu dữ liệu số nguyên và thực thông qua kind specifier, mà chúng ta sẽ nghiên cứu trong chương về Số.
Ví dụ sau cho thấy việc sử dụng kiểu dữ liệu thực:
program division
implicit none
! Define real variables
real :: p, q, realRes
! Define integer variables
integer :: i, j, intRes
! Assigning values
p = 2.0
q = 3.0
i = 2
j = 3
! floating point division
realRes = p/q
intRes = i/j
print *, realRes
print *, intRes
end program division
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:
0.666666687
0
Loại phức tạp
Điều này được sử dụng để lưu trữ các số phức. Một số phức có hai phần, phần thực và phần ảo. Hai đơn vị lưu trữ số liên tiếp lưu trữ hai phần này.
Ví dụ: số phức (3.0, -5.0) bằng 3.0 - 5.0i
Chúng ta sẽ thảo luận chi tiết hơn về các loại Phức tạp, trong chương Số.
Loại logic
Chỉ có hai giá trị logic: .true. và .false.
Loại ký tự
Kiểu ký tự lưu trữ các ký tự và chuỗi. Độ dài của chuỗi có thể được chỉ định bởi len specifier. Nếu không có độ dài nào được chỉ định, nó là 1.
For example,
character (len = 40) :: name
name = “Zara Ali”
Cách diễn đạt, name(1:4) sẽ cung cấp cho chuỗi con "Zara".
Nhập ngầm
Các phiên bản cũ hơn của Fortran cho phép một tính năng được gọi là nhập ngầm, tức là bạn không phải khai báo các biến trước khi sử dụng. Nếu một biến không được khai báo, thì ký tự đầu tiên trong tên của nó sẽ xác định kiểu của nó.
Các tên biến bắt đầu bằng i, j, k, l, m hoặc n, được coi là dành cho biến số nguyên và các tên khác là biến thực. Tuy nhiên, bạn phải khai báo tất cả các biến vì đây là cách lập trình tốt. Vì vậy, bạn bắt đầu chương trình của mình với câu lệnh -
implicit none
Câu lệnh này tắt tính năng nhập ẩn.