Turkish Tutorial for Fortran Part #8

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''

Saf tekrarlanan 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 reals' içindir.
  • Genel prosedürle 'fodl' 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 tekrarlanan 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 reals' içindir.
  • Genel prosedürle 'fodl' 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 tekrarlanan 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 reals' içindir.
  • Genel prosedürle 'fodl' 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_c16

Saf tekrarlanan 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 sağ katıyla eşdeğer. Liste boşsa,
  • Sonuç 'start' olur; aksi halde 'f' ilk elemana uygulanır ve
  • Geri kalanı katlama sonucu.
  • Bu özel yordam 1 baytlık 'integers' içindir.
  • Genel prosedür 'foldr' 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. Liste boşsa,
  • Sonuç 'start' olur; aksi halde 'f' ilk elemana uygulanır ve
  • Geri kalanı katlama sonucu.
  • Bu özel yordam 2 baytlık 'integers' içindir.
  • Genel prosedür 'foldr' 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. Liste boşsa,
  • Sonuç 'start' olur; aksi halde 'f' 'ilk elemana uygulanır ve
  • Geri kalanı katlama sonucu.
  • Bu özel yordam 4 baytlık 'integers' içindir.
  • Genel prosedür 'foldr' 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 tekrarlanan 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. Liste boşsa,
  • Sonuç 'start' olur; aksi halde 'f' ilk elemana uygulanır ve
  • Geri kalanı katlama sonucu.
  • Bu özel yordam 8 baytlık 'integers' içindir.
  • Genel prosedür 'foldr' ile aşırı yüklendi.
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

Saf tekrarlanan gerçek (tür = r4 ) işlevi foldr_ r4 (f, başlangıç, x) sonucu (res)

  • 'X' dizisinin elemanları boyunca, 'f' fonksiyonunu yinelemeli olarak uygular.
  • Haskell'in sağ katıyla eşdeğer. Liste boşsa,
  • Sonuç 'start' olur; aksi halde 'f' ilk elemana uygulanır ve
  • Geri kalanı katlama sonucu.
  • Bu özel işlem 4 baytlık gerçekler içindir.
  • Genel prosedür foldr ile yüklenir.
prosedür (f2_ r4 ) :: f ! ! Katlama işlevi
   gerçek (kind = r4 ), niyet ( in ) :: başlangıç ! ! Akümülatör başlangıç ​​değeri
   gerçek (tür = r4 ), boyut (:), niyet ( in ) :: x ! ! Girdi dizisi
   if ( size (x) < 1 ) o zaman
     res = başlat
   Başka
     res = f (x ( 1 ), katr (f, başlangıç, x ( 2 :)))
   endif

bitiş fonksiyonu foldr_ r4

Saf tekrarlanan gerçek (tür = r8 ) işlev foldr_ r8 (f, başlangıç, x) sonucu (res)

  • 'X' dizisinin elemanları boyunca, 'f' fonksiyonunu yinelemeli olarak uygular.
  • Haskell'in sağ katıyla eşdeğer. Liste boşsa,
  • Sonuç 'start' olur; aksi halde 'f' ilk elemana uygulanır ve
  • Geri kalanı katlama sonucu.
  • Bu özel işlem 8 baytlık 'reals' içindir.
  • Genel prosedür 'foldr' ile yüklenir.
procedure(f2_r8) :: f !! Folding function
  real(kind=r8),intent(in) :: start !! Accumulator start value
  real(kind=r8),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_ r8

Saf tekrarlanan gerçek (tür = r16) işlevi foldr_r16 (f, başlangıç, x) sonucu (res)

  • 'X' dizisinin elemanları boyunca,f fonksiyonunu yinelemeli olarak uygular.
  • Haskell'in sağ katıyla eşdeğer. Liste boşsa,
  • Sonuç 'start' olur; aksi halde `f 'ilk elemana uygulanır ve
  • Geri kalanı katlama sonucu.
  • Bu özel işlem 16 baytlık gerçekler içindir.
  • Genel prosedür foldr ile yüklenir.
procedure(f2_r16) :: f !! Folding function
   real(kind=r16),intent(in) :: start !! Accumulator start value
   real(kind=r16),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_r16



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:  

Hey @canburaksimsek, your contribution was rejected by the supervisor @espoem because he found out that it did not follow the Utopian rules.

Upvote this comment to help Utopian grow its power and help other Open Source contributions like this one. Do you want to chat? Join me on Discord.

Thank you for the contribution. It has been approved.

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

The contribution should not have been approved because it contains code copied from a different site and the tutorial is not original.

https://github.com/wavebitscientific/functional-fortran/blob/master/src/lib/mod_functional.f90

It is important that the contributor creates original content and not only write a text to the existing code in the ecamples.

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

Why create a piece of code when it allready exist? Would you go and invent a wheel? I don't understand turkish so i don't know what he is explaining. I do however disagree that he should have created code himself. Evey tutor in the world uses manuals to show code. It is better to explain how good code works then show of bad code.

He even admitted to me that he works with a book and that the codes are general examples for Fortran. In such case, this is 1) already explained, 2) not original for the Utopian to be rewarded.

You might not have noticed but there were other cases that the contributors took the examples from official sites and only added lines with a basic description.

prosedür (f2_ r4 ) :: f ! ! Katlama işlevi
   gerçek (kind = r4 ), niyet ( in ) :: başlangıç ! ! Akümülatör başlangıç ​​değeri
   gerçek (tür = r4 ), boyut (:), niyet ( in ) :: x ! ! Girdi dizisi
   if ( size (x) < 1 ) o zaman
     res = başlat
   Başka
     res = f (x ( 1 ), katr (f, başlangıç, x ( 2 :)))
   endif

You can also see translated actual code. That is enough not to accept.

  ·  7 years ago (edited)

So whenever someone uses a good piece of code (that someone somewhere on the net might have used) and explain why it is done that way it can't be approved? Sounds like bad judgment. Then no one should be explaining anything anymore. As all the best pieces of code can never be explained.

System.out.print("hello world");

Can never be used on utopian again. No more basic java tutorials.