Fortran派生数据类型
2018-12-12 14:24 更新
Fortran语言允许您定义导出的数据类型。导出的数据类型也被称为结构,它可以由不同类型的数据对象。
导出的数据类型被用来表示一个记录。例如,你想跟踪您的图书馆中的书籍,你可能要跟踪有关每本书以下属性:
- 标题
- 作者
- 学科
- 图书ID
定义导出的数据类型
定义一个导出的数据类型 ,使用的种类和末端型语句。 。该类型语句定义了一个新的数据类型,为你的程序多个成员。类型语句的格式是这样的:
type type_name declarations end type
这里是你将声明书的结构方式:
type Books character(len=50) :: title character(len=50) :: author character(len=150) :: subject integer :: book_id end type Books
访问结构成员
一个派生数据类型的对象被称为结构
类型书籍的结构可以在类型声明语句像创建:
type(Books) :: book1
该结构的组成部分可以使用组件选择字符(%)来访问:
book1%title = "C Programming" book1%author = "Nuha Ali" book1%subject = "C Programming Tutorial" book1%book_id = 6495407
请注意,有没有空格前后%符号之后。
例
下面的程序说明上述概念:
program deriveDataType !type declaration type Books character(len=50) :: title character(len=50) :: author character(len=150) :: subject integer :: book_id end type Books !declaring type variables type(Books) :: book1 type(Books) :: book2 !accessing the components of the structure book1%title = "C Programming" book1%author = "Nuha Ali" book1%subject = "C Programming Tutorial" book1%book_id = 6495407 book2%title = "Telecom Billing" book2%author = "Zara Ali" book2%subject = "Telecom Billing Tutorial" book2%book_id = 6495700 !display book info Print *, book1%title Print *, book1%author Print *, book1%subject Print *, book1%book_id Print *, book2%title Print *, book2%author Print *, book2%subject Print *, book2%book_id end program deriveDataType
当上述代码被编译和执行时,它产生了以下结果:
C Programming Nuha Ali C Programming Tutorial 6495407 Telecom Billing Zara Ali Telecom Billing Tutorial 6495700
结构数组
你也可以创建一个派生类型的数组:
type(Books), dimension(2) :: list
数组中的单个元素可以访问如下:
list(1)%title = "C Programming" list(1)%author = "Nuha Ali" list(1)%subject = "C Programming Tutorial" list(1)%book_id = 6495407
下面的程序说明了这一概念:
program deriveDataType !type declaration type Books character(len=50) :: title character(len=50) :: author character(len=150) :: subject integer :: book_id end type Books !declaring array of books type(Books), dimension(2) :: list !accessing the components of the structure list(1)%title = "C Programming" list(1)%author = "Nuha Ali" list(1)%subject = "C Programming Tutorial" list(1)%book_id = 6495407 list(2)%title = "Telecom Billing" list(2)%author = "Zara Ali" list(2)%subject = "Telecom Billing Tutorial" list(2)%book_id = 6495700 !display book info Print *, list(1)%title Print *, list(1)%author Print *, list(1)%subject Print *, list(1)%book_id Print *, list(1)%title Print *, list(2)%author Print *, list(2)%subject Print *, list(2)%book_id end program deriveDataType
当上述代码被编译和执行时,它产生了以下结果:
C Programming Nuha Ali C Programming Tutorial 6495407 C Programming Zara Ali Telecom Billing Tutorial 6495700
以上内容是否对您有帮助:
更多建议: