Fortran - Các kiểu dữ liệu có nguồn gốc
Fortran cho phép bạn xác định các kiểu dữ liệu có nguồn gốc. Một kiểu dữ liệu dẫn xuất còn được gọi là cấu trúc và nó có thể bao gồm các đối tượng dữ liệu thuộc các kiểu khác nhau.
Các kiểu dữ liệu có nguồn gốc được sử dụng để biểu diễn một bản ghi. Ví dụ: bạn muốn theo dõi sách của mình trong thư viện, bạn có thể muốn theo dõi các thuộc tính sau của mỗi cuốn sách:
- Title
- Author
- Subject
- ID sách
Xác định kiểu dữ liệu có nguồn gốc
Để xác định một dữ liệu dẫn xuất type, loại và end typecâu lệnh được sử dụng. . Câu lệnh type xác định một kiểu dữ liệu mới, với nhiều hơn một thành viên cho chương trình của bạn. Định dạng của câu lệnh kiểu là:
type type_name
declarations
end type
Đây là cách bạn khai báo cấu trúc Sách -
type Books
character(len = 50) :: title
character(len = 50) :: author
character(len = 150) :: subject
integer :: book_id
end type Books
Truy cập thành viên cấu trúc
Một đối tượng của kiểu dữ liệu dẫn xuất được gọi là cấu trúc.
Cấu trúc kiểu Sách có thể được tạo trong một câu lệnh khai báo kiểu như:
type(Books) :: book1
Các thành phần của cấu trúc có thể được truy cập bằng cách sử dụng ký tự bộ chọn thành phần (%) -
book1%title = "C Programming"
book1%author = "Nuha Ali"
book1%subject = "C Programming Tutorial"
book1%book_id = 6495407
Note that there are no spaces before and after the % symbol.
Thí dụ
Chương trình sau đây minh họa các khái niệm trên:
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
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:
C Programming
Nuha Ali
C Programming Tutorial
6495407
Telecom Billing
Zara Ali
Telecom Billing Tutorial
6495700
Mảng cấu trúc
Bạn cũng có thể tạo mảng có kiểu dẫn xuất -
type(Books), dimension(2) :: list
Các phần tử riêng lẻ của mảng có thể được truy cập dưới dạng:
list(1)%title = "C Programming"
list(1)%author = "Nuha Ali"
list(1)%subject = "C Programming Tutorial"
list(1)%book_id = 6495407
Chương trình sau đây minh họa khái niệm -
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
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:
C Programming
Nuha Ali
C Programming Tutorial
6495407
C Programming
Zara Ali
Telecom Billing Tutorial
6495700