Eğer bir Fortran programcısı iseniz, muhtemelen 10/15 argümanlarını kabul eden bir altprogram görmüşsünüzdür. Bunun hakkında düşünürseniz, bu delilik (çok fazladır, onları değiştirme riskiyle karşı karşıya kalırsınız) ve bazı argümanların hep birlikte seyahat ettiğini çabucak fark ediyorsunuz. Onları, her şeyi bir bütün olarak bağımsız bir varlık olarak taşımayan tek bir varlık altında toplamak mantıklı olacaktır. Bu, argüman sayısını önemli ölçüde azaltacak ve size yalnızca uygun ilişkiyi bulmak için yük getirecektir. Bu tek varlık türü.
Kodunuzda, bir Banka'nın bu bilgilerin bir toplamı olduğunu söylüyorsunuz. Şimdi, acNumber, acChecks vb. Tek değişkenlere erişimi temsil eden ve sağlayacak olan bu tür bir somut değişken bildirebilirsiniz. Bunu yapmak için,% sembolünü kullanmanız gerekir. Banka değişken b denir eğer öyleyse, örneğin
Bir dolaba gibi farklı raflar içeren b tahmin edebilirsiniz
b%acNumber = 5
için söyleyebiliriz. Kapatın, tüm raflar ve onların içeriği birlikte hareket eder.
Bir dizi, aynı türdeki (örneğin, tamsayı veya Karakter (len = 1024) veya Banka) bir varlık grubudur ve birbiri ardına sıralıdır, böylece bunların her birine sayısal bir dizin ile erişebilirsiniz.
: 1'de, farklı fortran start diziler endeksleri belirtilmediği sürece Kodunuzdaki gelince
(diğer tüm önemli dilleri, ilk endeks yerine sıfır), unutmayın, ben sizi önermek o aynı
INTEGER, DIMENSION(MaxRow:MaxColum) :: AccountData
INTEGER :: AccountData(MaxRow,MaxColum)
olarak yazma, ancak daha az yazın. Lütfen ayrıca: ve ile arasında bir fark olduğunu unutmayın. İki boyutlu bir dizi olan bir matrisi (durumunuz) tanımlamak isterseniz, virgülü kullanmanız gerekir. Yazdığın şey yanlış. dizeleri
, bu, daha fazla yazmak
CHARACTER :: acType*1, acLName*15, acFName*15
bu durumda
CHARACTER(LEN=1) :: acType
CHARACTER(LEN=15) :: acLName
CHARACTER(LEN=15) :: acFName
gibi yazarsanız daha iyi olur, ancak sözdizimi (Ben olsa yanlış olabilir) kullanımdan kaldırıldı Ayrıca, tür başına satır başına bir üye değişkeni yazarsanız daha iyi olduğunu unutmayın. Bu bir tat meselesi, ancak üye değişkeni başına bir satırın olmasıyla bir türün tam boyutunu görmeyi tercih ediyorum.
MaxRows ve MaxColumns için bunları MAX_ROWS ve MAX_COLUMNS olarak yazar. Geleneklere göre oldukça sabit olan parametreler ve şeyler, herhangi bir ana dilde, tüm sermaye, altçizgi ayrılmış isimle tanımlanır.
Düzenleme: yorum cevaplamak için, burada bir dizinin kullanımına ilişkin bir örnektir
$ more foo.f90
program test
integer :: myarray(10)
myarray = 0 ! equivalent to zeroing the single elements one by one
myarray(2) = 5
myarray(7) = 10
print *, myarray
end program
$ g95 foo.f90 -o foo
$ ./foo
0 5 0 0 0 0 10 0 0 0
bir dizi sadece tarafından tanımlanan aynı ada sahip birden değişkenler gibidir bir endeks Vektörleri veya matrisleri ifade etmek için çok yararlıdır. Elbette tanımladığınız bir tür yerine (örneğin tamsayı) tanımladığınız bir toplu tür dizisi yapabilirsiniz.
Özür dilemene gerek yok. İngilizcen iyi. İnsanların düzenleme haklarına sahip olmasının bir nedeni de bu alanda yardımcı olmaktır. Umarım düzenlemelerim yardımcı olmuştur. – Eddie