Turkish Tutorial for Fortran Part #9

in utopian-io •  7 years ago  (edited)

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.

Fortran

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.

What Will I Learn?

  • 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.

Ne Öğreneceğim?

  • 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.

Requirements

  • To develop and examine the concept of problem solving
  • Thinking and developing other things while solving problems
  • Force 2.0

Gereksinimler

  • Problem çözme kavramını geliştirmek ve incelemek
  • Problem çözerken başka yollar düşünmek ve geliştirmek
  • Force 2.0

Difficulty / Zorluk

  • Intermediate / Orta Düzey

Curriculum / Müfredat








Karmaşık Sayılar için ''split, intersection, foldl, foldr, foldt'' #2

Saf tekrarlayan kompleks (tür = r4 ) işlevi foldl_c4 (f, başlangıç, x) sonucu (res)

  • 'X' dizisinin elemanları boyunca, 'f' fonksiyonunu yinelemeli olarak uygular.
  • Haskell'in sol katıyla eşdeğer. Dizi boşsa,
  • Sonuç 'start' olur; aksi takdirde derhal tekrarlarız;
  • Başlangıç ​​değeri, eski başlangıç ​​değerinin birleştirilmesinin sonucu
  • x'in ilk elemanı ile.
  • Bu özel işlem, 4 bayt 'complex reaks' içindir.
  • Genel prosedürle 'foldl' ile yüklenir.
procedure(f2_c4) :: f !! Folding function
  complex(kind=r4),intent(in) :: start !! Accumulator start value
  complex(kind=r4),dimension(:),intent(in) :: x !! Input array
  if(size(x) < 1)then
    res = start
  else
    res = foldl(f,f(start,x(1)),x(2:))
  endif

bitiş fonksiyonu foldl_c4

Saf tekrarlayan kompleks (tür = r8 ) fonksiyonu foldl_c8 (f, başlangıç, x) sonucu (res)

  • 'X' dizisinin elemanları boyunca, 'f' fonksiyonunu yinelemeli olarak uygular.
  • Haskell'in sol katıyla eşdeğer. Dizi boşsa,
  • Sonuç 'start' olur; aksi takdirde derhal tekrarlarız;
  • Başlangıç ​​değeri, eski başlangıç ​​değerinin birleştirilmesinin sonucu
  • x'in ilk elemanı ile.
  • Bu özel işlem, 8 bayt 'complex reaks' içindir.
  • Genel prosedürle 'foldl' ile yüklenir.
procedure(f2_c8) :: f !! Folding function
  complex(kind=r8),intent(in) :: start !! Accumulator start value
  complex(kind=r8),dimension(:),intent(in) :: x !! Input array
  if(size(x) < 1)then
    res = start
  else
    res = foldl(f,f(start,x(1)),x(2:))
  endif

bitiş fonksiyonu foldl_c8

Saf tekrarlayan kompleks (tür = r16) fonksiyonu foldl_c16 (f, başlangıç, x) sonucu (res)

  • 'X' dizisinin elemanları boyunca, 'f' fonksiyonunu yinelemeli olarak uygular.
  • Haskell'in sol katıyla eşdeğer. Dizi boşsa,
  • Sonuç 'start' olur; aksi takdirde derhal tekrarlarız;
  • Başlangıç ​​değeri, eski başlangıç ​​değerinin birleştirilmesinin sonucu
  • x'in ilk elemanı ile.
  • Bu özel işlem, 8 bayt 'complex reaks' içindir.
  • Genel prosedürle 'foldl' ile yüklenir.
procedure(f2_c16) :: f !! Folding function
  complex(kind=r16),intent(in) :: start !! Accumulator start value
  complex(kind=r16),dimension(:),intent(in) :: x !! Input array
  if(size(x) < 1)then
    res = start
  else
    res = foldl(f,f(start,x(1)),x(2:))
  endif

bitiş fonksiyonu foldl_c16

Saf özyinelemeli tamsayı (tür = i1) işlev foldr_i1 (f, başlangıç, x) sonucu (res)

  • 'X' dizisinin elemanları boyunca, 'f' fonksiyonunu yinelemeli olarak uygular.
  • Haskell'in sol katıyla eşdeğer. Dizi boşsa,
  • Sonuç 'start' olur; aksi takdirde derhal tekrarlarız;
  • Başlangıç ​​değeri, eski başlangıç ​​değerinin birleştirilmesinin sonucu
  • x'in ilk elemanı ile.
  • Bu özel işlem, 1 bayt 'integers' içindir.
  • Genel prosedürle 'foldl' ile yüklenir.
procedure(f2_i1) :: f !! Folding function
  integer(kind=i1),intent(in) :: start !! Accumulator start value
  integer(kind=i1),dimension(:),intent(in) :: x !! Input array
  if(size(x) < 1)then
    res = start
  else
    res = f(x(1),foldr(f,start,x(2:)))
  endif

işlev bitiş foldr_i1

Saf tekrarlanan tam sayı (tür = i2) işlevi foldr_i2 (f, başlangıç, x) sonucu (res)

  • 'X' dizisinin elemanları boyunca, 'f' fonksiyonunu yinelemeli olarak uygular.
  • Haskell'in sağ katıyla eşdeğer. Dizi boşsa,
  • Sonuç 'start' olur; aksi takdirde derhal tekrarlarız;
  • Başlangıç ​​değeri, eski başlangıç ​​değerinin birleştirilmesinin sonucu
  • x'in ilk elemanı ile.
  • Bu özel işlem, 2 bayt 'integers' içindir.
  • Genel prosedürle 'foldl' ile yüklenir.
procedure(f2_i2) :: f !! Folding function
  integer(kind=i2),intent(in) :: start !! Accumulator start value
  integer(kind=i2),dimension(:),intent(in) :: x !! Input array
  if(size(x) < 1)then
    res = start
  else
    res = f(x(1),foldr(f,start,x(2:)))
  endif

bitiş işlevi foldr_i2

Saf tekrarlanan tam sayı (tür = i4) işlevi foldr_i4 (f, başlangıç, x) sonucu (res)

  • 'X' dizisinin elemanları boyunca, 'f' fonksiyonunu yinelemeli olarak uygular.
  • Haskell'in sağ katıyla eşdeğer. Dizi boşsa,
  • Sonuç 'start' olur; aksi takdirde derhal tekrarlarız;
  • Başlangıç ​​değeri, eski başlangıç ​​değerinin birleştirilmesinin sonucu
  • x'in ilk elemanı ile.
  • Bu özel işlem, 4 bayt 'integers' içindir.
  • Genel prosedürle 'foldl' ile yüklenir.
procedure(f2_i4) :: f !! Folding function
  integer(kind=i4),intent(in) :: start !! Accumulator start value
  integer(kind=i4),dimension(:),intent(in) :: x !! Input array
  if(size(x) < 1)then
    res = start
  else
    res = f(x(1),foldr(f,start,x(2:)))
  endif

son işlev foldr_i4

Saf tekrarlana tamsayı (tür = i8) işlev foldr_i8 (f, başlangıç, x) sonucu (res)

  • 'X' dizisinin elemanları boyunca, 'f' fonksiyonunu yinelemeli olarak uygular.
  • Haskell'in sağ katıyla eşdeğer. Dizi boşsa,
  • Sonuç 'start' olur; aksi takdirde derhal tekrarlarız;
  • Başlangıç ​​değeri, eski başlangıç ​​değerinin birleştirilmesinin sonucu
  • x'in ilk elemanı ile.
  • Bu özel işlem, 8 bayt 'integers' içindir.
  • Genel prosedürle 'foldl' ile yüklenir.
procedure(f2_i8) :: f !! Folding function
  integer(kind=i8),intent(in) :: start !! Accumulator start value
  integer(kind=i8),dimension(:),intent(in) :: x !! Input array
  if(size(x) < 1)then
    res = start
  else
    res = f(x(1),foldr(f,start,x(2:)))
  endif

bitiş fonksiyonu foldr_i8



Posted on Utopian.io - Rewarding Open Source Contributors

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Your contribution cannot be approved because you copied the codes and the tutorials are all very similar, you repeat the examples.

You can contact us on Discord.
[utopian-moderator]