일부 포트란 코드를 읽으려고하지만 %
(백분율 기호)이 무엇인지 확인할 수 없습니다.포트란에서 "%"는 무엇을 의미합니까?
그것은 같은 라인에 있습니다
x = a%rho * g * (-g*a%sigma + m%gb * m%ca * (1.6 * a%rho+g))
은 무엇입니까?
일부 포트란 코드를 읽으려고하지만 %
(백분율 기호)이 무엇인지 확인할 수 없습니다.포트란에서 "%"는 무엇을 의미합니까?
그것은 같은 라인에 있습니다
x = a%rho * g * (-g*a%sigma + m%gb * m%ca * (1.6 * a%rho+g))
은 무엇입니까?
Fortran 90에서는 C++와 같은 구조를 만들 수 있습니다. 기본적으로 점 (.) 연산자로 작동합니다. http://www.lahey.com/lookat90.htm에서
:
구조 (파생 유형)를 그룹화 할 수
파생 된 형식을 사용하여 데이터. 이를 통해 사용자는 내장 유형 (배열 및 포인터 포함)을 퍼센트 기호를 구분 기호로 사용하여 개별 구성 요소에 액세스 할 수있는 새로운 유형으로 결합 할 수 있습니다. (파생 된 유형은 VAX Fortran에서 레코드로 알려져 있습니다.) ! 파생 된 유형 및 모듈을 사용하는 예. 토큰 등
module pipedef
type pipe ! Define new type 'pipe', which
real diameter ! is made up of two reals, an
real flowrate ! integer, and a character.
integer length
character(len=10) :: flowtype
end type pipe
end module pipedef
program main
use pipedef ! Associate module pipedef with main.
type(pipe) water1, gas1 ! Declare two variables of type 'pipe'.
water1 = pipe(4.5,44.8,1200,"turbulent") ! Assign value to water1.
gas1%diameter = 14.9 ! Assign value to parts
gas1%flowrate = 91.284 ! of gas1.
gas1%length = 2550
gas1%flowtype = 'laminar'
.
.
.
end program
파생 된 유형의 부품 식별자입니다. 이것 좀 봐. http://www.lahey.com/lookat90.htm
%
밀접하게 관련된 다수의 용도를 갖는다. Fortran이 개발 한대로 이러한 용도가 증가했습니다.
Fortran 90으로 돌아가서 질문에 사용 된 내용 인 %
은 파생 된 유형의 구성 요소에 액세스하는 데 사용됩니다. 그 타입의 객체에 a
파생 형 a_t
를 고려
type a_t
real rho, sigma
end type
type(a_t) a
성분 rho
및 a
의 sigma
는 a%rho
a%sigma
와 함께 접속 될 수있다. 질문에서 볼 수 있듯이 이러한 구성 요소는 표현식 (예 : a%rho * g
)에서 사용되거나 할당의 왼쪽 (a%rho=1.
) 일 수 있습니다.
파생 된 타입의 구성 요소 자체 유도 유형의 객체 일 수있다 :
type b_t
type(a_t) a
end type
type(b_t) b
때문에 단일 참조에 %
여러 모습이 될 수있다 : 여기
b%a%rho = ...
상기 도 유형 객체 a
의 구성 요소 rho
(자체는 b
의 구성 요소 임)이 할당 대상입니다. 하나의 참조에서 %
의 상당히 끔찍한 계산을 볼 수 있지만 부분 참조는 항상 왼쪽에서 오른쪽으로 해석됩니다. 포트란 2003 예정
한 후 %
다른 몇 가지 방법으로 유도 된 타입에 관한보고 :
파생 형
type a_t(n)
integer, len :: n=1
real x(n)
contains
procedure f
end type
type(a_t(2)) a
오브젝트 a
단일 길이 타입 파라미터 유형 바인딩 절차를 고려 갖는다.
x = a%f()
과 같은 표현식에서 유도 유형 객체의 바인딩 f
이 참조됩니다.
성분 x
참조 할 수 있으므로 a
의 n
훨씬
print *, a%n, SIZE(a%x)
로 참조 될 수있는 파라메터이다.
마지막으로, 포트란 2008, %
은 복잡한 객체의 실수 부와 허수 부분에 액세스하기 위해 사용될 수있다 :
complex x, y(3)
x%im = 1.
x%re = 0.
y = (2., 1.)
print *, y(2)%im+y(3)%re
죄송하지만, 대답은 사람이 익숙하지 않은 경우 어떻게 다른 언어를, 무언가를 설명 할 수있는 방법 C++ 또는 도트 연산자 사용? –
이것은 모듈의 내부 변수에 액세스하는 간단한 방법입니다. 이 예제에서와 같이 필요한 모든 변수를 사용하지 않고 _i.e._ 전체 생성자를 사용하지 않고 "객체"'gas1'에서 하나의 단일 변수를 직접 수정할 수 있습니다 ('water1 = pipe (4.5,44.8,1200, "난기류")). – Garini