Bazı Fortran kodlarını okumaya çalışıyorum ancak %
'un (yüzde işareti) ne yaptığını belirleyemiyorum.Fortran'da "%" ne demek/yapmak?
Sanki bir çizgide geçerli:
x = a%rho * g * (-g*a%sigma + m%gb * m%ca * (1.6 * a%rho+g))
o ne yapar?
Bazı Fortran kodlarını okumaya çalışıyorum ancak %
'un (yüzde işareti) ne yaptığını belirleyemiyorum.Fortran'da "%" ne demek/yapmak?
Sanki bir çizgide geçerli:
x = a%rho * g * (-g*a%sigma + m%gb * m%ca * (1.6 * a%rho+g))
o ne yapar?
Fortran 90'da C++ gibi yapıları oluşturmanıza izin verir. Temelde nokta (.) Operatörü olarak davranır. http://www.lahey.com/lookat90.htm itibaren
:
Yapılar (Türetilmiş Türleri) Sen grup can
türetilmiş türlerini kullanarak verileri. Bu, kullanıcıların içsel türleri (diziler ve işaretçiler dahil) ayrı ayrı bileşenlere yüzde işareti kullanılarak bir sınırlayıcı olarak erişilebilen yeni türlere birleştirilmesini sağlar. (Türetilmiş tipler VAX Fortran'da kayıt olarak bilinir.) ! Türetilmiş türler ve modüller kullanarak örnek. bir göstergesi olarak
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
Türetilmiş tip için bir parça tanımlayıcısıdır. Şuna bak. http://www.lahey.com/lookat90.htm
%
yakından ilişkili bir dizi kullanıma sahiptir. Fortran'ın geliştirdiği gibi, bu kullanımların sayısı artmıştır.
Fortran 90'a geri dönmek ve soruda görülen kullanım, türetilmiş bir türe ait bileşenlere erişmek için %
kullanılır. bu tür nesne a
ile türetilmiş tür a_t
göz önünde bulundurun:
type a_t
real rho, sigma
end type
type(a_t) a
bileşenleri rho
ve a
arasında sigma
a%rho
ve a%sigma
ile erişilebilir. Soruda görülebileceği gibi, bu bileşenler (a%rho * g
gibi) ifadelerde kullanılabilir veya bir ödevin sol tarafı olabilir (a%rho=1.
).
türetilmiş bir tür bir bileşenin kendisi türetilmiş bir tür bir amacı olabilir:
type b_t
type(a_t) a
end type
type(b_t) b
ve bu nedenle tek bir referans %
çoğul görünmeler olabilir: Burada
b%a%rho = ...
, Kendisinin b
'un bir bileşeni olan türetilmiş a
türetilmiş nesnesinin rho
numaralı bileşiği, atama hedefidir. Bir referansta oldukça korkunç sayıda %
s görebilirsiniz, ancak parça referansları her zaman soldan sağa doğru çözülür. Fortran2003'ten gelme
, bir sonra %
diğer yollarla bir çift türetilmiş tipleri ile ilgili görür:
türetilen tip
type a_t(n)
integer, len :: n=1
real x(n)
contains
procedure f
end type
type(a_t(2)) a
nesne a
tek uzunlukta tipi parametresi ve bir tip bağlı prosedür vardır düşünün.
x = a%f()
gibi bir ifade olarak türetilmiş tip nesnesinin f
bağlayıcı başvurulmaktadır.
bileşen x
referans edilebilir a
arasında n
çok
print *, a%n, SIZE(a%x)
olarak ifade edilebilir parametresi.
Son olarak, Fortran 2008 tarihinden itibaren %
karmaşık bir nesnenin gerçek ve hayali kısımlarına erişmek için kullanılabilir:
complex x, y(3)
x%im = 1.
x%re = 0.
y = (2., 1.)
print *, y(2)%im+y(3)%re
üzgünüm ama bir cevap birisi tanıdık değilse nedir Başka bir dil, bir şeyler kapalı tarif nasıl C++ veya nokta operatörleri ile? –
Sadece bir modüle ait olan bir değişkene erişmenin bir yoludur. Örnekte olduğu gibi, tüm değişkenleri kullanmadan _i.e._ tüm yapısını kullanmak zorunda kalmadan "object" 'gas1'den tek bir değişkeni doğrudan değiştirebilirsiniz (' water1 = pipe (4.5,44.8,1200,) ') "türbülanslı". – Garini