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..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.