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.
GitHub Depo:https://github.com/wavebitscientific/functional-fortran
- Fortran (FORTRAN), özellikle sayısal hesaplama ve bilimsel hesaplama için uygun olan genel amaçlı, yordamsal, zorunlu programlama dilidir.
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.
Fortran Kuralım:
- Fortran.io PHP gibidir: FastCGI, HTML dizeleri çıktısı veren bir komut dosyası çalıştırır.
indirip dosyayı açarak kurabilirsiniz.
- Aşağıda vermiş olduğum kodu çalıştırarak da Fortran kurulumunu gerçekleştirebilirsiniz.
use mod_functional
Aşağıdaki işlevler bize hesaplama yaparken lazım olacaktır. Şimdi gelin onları öğrenelim...
- arange - düzenli olarak aralıklı bir dizi döndürür
- complement - İki dizi içeren bir tamamlayıcı set döndürür
- empty - boş bir dizi döndürür
- filter - bir diziyi mantıksal giriş işlevi kullanarak filtreler
- foldl - bir girdi işlevi kullanarak bir diziyi ardışık olarak sola katını alır
- foldr - bir girdi işlevi kullanarak bir diziyi yinelemeli olarak sağa katını alır
- foldt - bir girdi işlevi kullanarak bir diziyi tekrar tekrar katını alır
- head - bir dizinin ilk öğesini döndürür
- init - son elemandan başka her şeyi döndürür
- insert - bir diziye bir eleman ekler, sınırdan güvenli
- intersection - İki dizinin kesişim noktasını döndürür
- iterfold - Bir girdi işlevi kullanarak bir diziyi tekrar tekrar azaltır
- last - bir dizinin son öğesini döndürür
- limit - Bir skalar veya diziyi verilen alt ve üst sınırlarla sınırlar
- map - bir giriş fonksiyonlu bir diziyi eşler
- set - verilen bir girdi dizisini döndürür
- reverse - diziyi ters sırada döndürür
- sort - İkili ağaç pivot kullanarak özyinelemeli çabukluk sağlar
- split - Bir dizinin ilk veya ikinci yarısını döndürür
- subscript - vektör alt simgesinin sınır dışına güvenli bir şekilde uygulanması
- tail - İlk öğenin dışındaki her şeyi döndürür
- unfold - bir giriş fonksiyonlu bir diziyi açar
- union - İki diziden oluşan bir birleşimi döndürür
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;
- ''arange'' girdi bağımsız değişkenleri olarak başlangıç ve bitiş değerleri verilen, eşit aralıklı diziler oluşturmak için kullanılır:
write(*,*)arange(1,5)
1 2 3 4 5
- ''arange'' gerçek sayılarla da çalışır:
write(*,*)arange(1.,5.)
1.00000000 2.00000000 3.00000000 4.00000000 5.00000000
- Üçüncü argüman, ''arange''(isteğe bağlı), verilen değilse varsayılan olarak 1 olur;
write(*,*)arange(1,15,3)
1 4 7 10 13
- Negatif artışlar beklendiği gibi çalışır:
write(*,*)arange(3,1,-1)
3 2 1
- Kayacak olan nokta artımlarını kullanabiliriz:
write(*,*)arange(1.,1.5,0.1)
1.00000000 1.10000002 1.20000005 1.29999995 1.39999998 1.50000000
- ''Start'', ''end''den büyükse ve artış olumlu ise, düzenleme şu şekilde ''arange''boş bir dizi döndürür:
write(*,*)arange(5,1)
- Herhangi bir Fortran standart türünde sıfır uzunlukta bir dizi oluşturmak için ''empty'' kullanın:
write(*,*)size(empty(1))
0
- Akümülatörleri başlatmak için yararlı olabilir. Örneğin, bu kütüphanede ayarlanan ''intersection'' uygulanmasına bakın. ''head'', dizinin ilk öğesini döndürür:
write(*,*)head([1,2,3])
1
- ''tail'' dizinin ilk öğesinden başka her şeyi döndürür:
write( * , * ) kuyruk ([ 1 , 2 , 3 ])
2 3
- Benzer şekilde, ''last'' dizinin son öğesini döndürür:
write ( * , * ) son ([ 1 , 2 , 3 ])
3
- ''init'' dizinin son öğesinden başka her şeyi döndürür:
write ( * , * ) init ([ 1 , 2 , 3 ])
1 2
- Bir diziyi belirli dizinlerde alt simge haline getirin:
write ( * , * ) alt simge ([ 1 , 2 , 3 , 4 , 5 ], [ 3 , 4 ])
3 4
- Fortran 2008 vektör alt simgesinden farklı olarak, ''subscript'' işlev sınırın dışına çıkmamaktadır, yani sınırların altına yazılması boş bir diziyi döndürür:
write ( * , * ) alt simge ([ 1 , 2 , 3 ], [ 10 ])
- Aşağıdakileri kullanarak bir diziye bir elemanın önüne ekleyebilir, ekleyebilir veya ekleyebiliriz ''insert'':
! 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
- ''split'' bir dizinin ilk veya ikinci yarısını döndürmek için kullanılabilir:
write ( * , * ) split (arange ( 1 , 5 ), 1 )
1 2
! return first half of the array
write ( * , * ) split (aralık ( 1 , 5 ), 2 )
3 4 5
- Yukarıdakiler, özyinelemeli ikili ağaç arama veya sıralama için kullanışlıdır, örneğin, ''sort'' bu kütüphanedeki uygulamaya bakın .
''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
- ''reverse'' Azalan düzende sıralamak için kullanın :
write( * , * )reverse(sort(x))
0.997559547 0.965915322 0.747927666 0.566824675 0.367390871
- ''limit''Fonksiyon, bir skaler veya örneğin bir alt ve üst sınır, bir dizi, bir değeri sınırlamak için kullanılabilir:
! 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
- ''limit'' Ayrıca dizilerde de çalışır:
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...
Posted on Utopian.io - Rewarding Open Source Contributors
Enjoy the vote and reward!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Emeklerine sağlık başarılar. :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
teşekkür ederim :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Eline sağlik çok iyi olmuş 👍
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
teşekkür ederim :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
eline sağlık, umarım devamı gelir
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
teşekkür ederim devamı gelecek tabiki :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
eline emeğine sağlık hocam
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
teşekkür ederim :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Your contribution cannot be approved because it does not follow the Utopian Rules.
You can contact us on Discord.
[utopian-moderator]
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
ellerine sağlık
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
teşekkür ederim abi :)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thank you for the contribution. It has been approved.
utopian have new update rules... please look what is new rule for tutorial .... and give more quality next time. thank you
You can contact us on Discord.
[utopian-moderator]
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
thank you :) @arie.steem
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Hey @canburaksimsek I am @utopian-io. I have just upvoted you!
Achievements
Suggestions
Get Noticed!
Community-Driven Witness!
I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!
Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit