Hi Utopians,
Hello friends, I will try to give you information about the use of Fortran Programming Language. This series will proceed step by step. At the end of our project, we will have learned the Fortran Programming and Calculus Language. I will strive to give you a useful education.
Merhaba arkadaşlar bu seride sizlere Fortran Programlama Dili kullanımı hakkında bilgiler vermeye çalışacağım. Bu seri adım adım ilerleyecektir. Projemizin sonunda Fortran Programlama ve Hesaplama Dilini öğrenmiş olacağız. Sizlere faydalı bir eğitim serisi vermek için çabalayacağım.
1954'de IBM tarafından üretilen IBM 704 için ilk sürümü John Backus ve ekibi tarafından geliştirilmiştir. Backus ve ekibi Kasım 1954'de "The IBM Mathematical FORmula TRANslating System: Fortran" isimli raporu yayınlamışlardır.
indirip dosyayı açarak kurabilirsiniz.
use mod_functional
Aşağıdaki işlevler bize hesaplama yaparken lazım olacaktır. Şimdi gelin onları öğrenelim...
Yukarıdaki işlevlerin tümü standart Fortran 2008 çeşit ile uyumlu olan int8, int16, int32, int64, real32, real64, real128, complex(real32), complex(real64), ve complex(real128) geçerlidir.
Bir veya iki argüman üzerinde çalışan işlevler sırasıyla tekli veya ikili operatörler olarak mevcuttur. Bunlar şunlardır: .complement., .head., .init., .intersection., .last., .reverse., .set., .sort., .tail., ve .union..
Şimdi gelin biraz örnekler ile anlatalım;
write(*,*)arange(1,5)
1 2 3 4 5
write(*,*)arange(1.,5.)
1.00000000 2.00000000 3.00000000 4.00000000 5.00000000
write(*,*)arange(1,15,3)
1 4 7 10 13
write(*,*)arange(3,1,-1)
3 2 1
write(*,*)arange(1.,1.5,0.1)
1.00000000 1.10000002 1.20000005 1.29999995 1.39999998 1.50000000
write(*,*)arange(5,1)
write(*,*)size(empty(1))
0
write(*,*)head([1,2,3])
1
write( * , * ) kuyruk ([ 1 , 2 , 3 ])
2 3
write ( * , * ) son ([ 1 , 2 , 3 ])
3
write ( * , * ) init ([ 1 , 2 , 3 ])
1 2
write ( * , * ) alt simge ([ 1 , 2 , 3 , 4 , 5 ], [ 3 , 4 ])
3 4
write ( * , * ) alt simge ([ 1 , 2 , 3 ], [ 10 ])
! insert a 5 at position 0 to prepend:
write ( * , * ) insert ( 5 , 0 , [ 1 , 2 , 3 ])
5 1 2 3
! insert a 5 at position 4 to append:
write ( * , * ) insert ( 5 , 4 , [ 1 , 2 , 3 ])
1 2 3 5
! insert a 2 at position 2:
yaz ( * , * ) ekleme ( 2 , 2 , [ 1 , 3 , 4 ])
1 2 3 4
write ( * , * ) split (arange ( 1 , 5 ), 1 )
1 2
! return first half of the array
write ( * , * ) split (aralık ( 1 , 5 ), 2 )
3 4 5
''sort'' artan düzende sıralanmış bir diziyi döndürür:
real,dimension(5) :: x
call random_number(x)
write ( * , * ) x
0.997559547 0.566824675 0.965915322 0.747927666 0.367390871
write ( * , * ) sort(x)
0.367390871 0.566824675 0.747927666 0.965915322 0.997559547
write( * , * )reverse(sort(x))
0.997559547 0.965915322 0.747927666 0.566824675 0.367390871
! limit a scalar (5) within bounds 1 and 4
write(*,*)limit(5,1,4)
4
! flipping the bounds works just as well
write(*,*)limit(5,4,1)
4
write(*,*)limit(arange(0,4),1,3):
1 1 2 3 3
Arkadaşlar görmüş olduğunuz üzere fonksiyonları kullanarak birçok işlem yaptık. Bu işlem, sayısal hesaplamaları hızlıca bulmamıza yarıyor. Sistemin ve işlevlerini kullanımını bol örnekler ile 2. dersimizde devam edeceğiz... Şimdilik kendinize iyi bakınız efenim... Saygılarla...