📜  Fortran-数据类型

📅  最后修改于: 2020-11-04 06:12:48             🧑  作者: Mango


Fortran提供了五种内部数据类型,但是,您也可以派生自己的数据类型。五个固有类型是-

  • 整数类型
  • 实型
  • 复合型
  • 逻辑类型
  • 字符类型

整数类型

整数类型只能容纳整数值。以下示例提取了可以保存在通常的四个字节整数中的最大值-

program testingInt
implicit none

   integer :: largeval
   print *, huge(largeval)
   
end program testingInt

当您编译并执行上述程序时,它将产生以下结果-

2147483647

请注意, huge()函数给出了可以由特定整数数据类型保存的最大数字。您还可以使用种类说明符指定字节数。以下示例演示了这一点-

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

当您编译并执行上述程序时,它将产生以下结果-

32767
2147483647
9223372036854775807
170141183460469231731687303715884105727
2147483647

实型

它存储浮点数,例如2.0、3.1415,-100.876等。

传统上有两种不同的实类型,默认类型和双精度类型。

但是,Fortran 90/95通过种类说明符可以更好地控制实数和整数数据类型的精度,我们将在数字一章中进行研究。

以下示例显示了真实数据类型的使用-

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  

当您编译并执行上述程序时,它将产生以下结果-

0.666666687    
0

复合类型

这用于存储复数。复数有两个部分,实部和虚部。两个连续的数字存储单元存储这两个部分。

例如,复数(3.0,-5.0)等于3.0 – 5.0i

我们将在数字一章中更详细地讨论复杂类型。

逻辑类型

只有两个逻辑值: .true。.false。

字符类型

字符类型存储字符和字符串。字符串的长度可以由len说明符指定。如果未指定长度,则为1。

例如,

character (len = 40) :: name  
name = “Zara Ali”

表达式name(1:4)将给出子字符串“ Zara”。

隐式打字

较早版本的Fortran允许使用一种称为隐式键入的功能,即,您不必在使用前声明变量。如果未声明变量,则其名称的第一个字母将确定其类型。

以i,j,k,l,m或n开头的变量名称被认为是整数变量,而其他则是实数变量。但是,您必须声明所有变量,因为这是良好的编程习惯。为此,您可以使用以下语句启动程序:

implicit none

该语句关闭隐式键入。