YAPC::EU 2018 Glasgow Update!
This commit is contained in:
parent
22f33d4004
commit
4e2d22a71d
1170 changed files with 15042 additions and 3047 deletions
|
|
@ -1,24 +1,22 @@
|
|||
FUNCTION IFIB(N)
|
||||
IF (N.EQ.0) THEN
|
||||
ITEMP0=0
|
||||
ELSE IF (N.EQ.1) THEN
|
||||
ITEMP0=1
|
||||
ELSE IF (N.GT.1) THEN
|
||||
ITEMP1=0
|
||||
ITEMP0=1
|
||||
DO 1 I=2,N
|
||||
ITEMP2=ITEMP1
|
||||
ITEMP1=ITEMP0
|
||||
ITEMP0=ITEMP1+ITEMP2
|
||||
1 CONTINUE
|
||||
ELSE
|
||||
ITEMP1=1
|
||||
ITEMP0=0
|
||||
DO 2 I=-1,N,-1
|
||||
ITEMP2=ITEMP1
|
||||
ITEMP1=ITEMP0
|
||||
ITEMP0=ITEMP2-ITEMP1
|
||||
2 CONTINUE
|
||||
END IF
|
||||
IFIB=ITEMP0
|
||||
C FIBONACCI SEQUENCE - FORTRAN IV
|
||||
NN=46
|
||||
DO 1 I=0,NN
|
||||
1 WRITE(*,300) I,IFIBO(I)
|
||||
300 FORMAT(1X,I2,1X,I10)
|
||||
END
|
||||
C
|
||||
FUNCTION IFIBO(N)
|
||||
IF(N) 9,1,2
|
||||
1 IFN=0
|
||||
GOTO 9
|
||||
2 IF(N-1) 9,3,4
|
||||
3 IFN=1
|
||||
GOTO 9
|
||||
4 IFNM1=0
|
||||
IFN=1
|
||||
DO 5 I=2,N
|
||||
IFNM2=IFNM1
|
||||
IFNM1=IFN
|
||||
5 IFN=IFNM1+IFNM2
|
||||
9 IFIBO=IFN
|
||||
END
|
||||
|
|
|
|||
|
|
@ -1,11 +1,24 @@
|
|||
EXTERNAL IFIB
|
||||
CHARACTER*10 LINE
|
||||
PARAMETER ( LINE = '----------' )
|
||||
WRITE(*,900) 'N', 'F[N]', 'F[-N]'
|
||||
WRITE(*,900) LINE, LINE, LINE
|
||||
DO 1 N = 0, 10
|
||||
WRITE(*,901) N, IFIB(N), IFIB(-N)
|
||||
1 CONTINUE
|
||||
900 FORMAT(3(X,A10))
|
||||
901 FORMAT(3(X,I10))
|
||||
FUNCTION IFIB(N)
|
||||
IF (N.EQ.0) THEN
|
||||
ITEMP0=0
|
||||
ELSE IF (N.EQ.1) THEN
|
||||
ITEMP0=1
|
||||
ELSE IF (N.GT.1) THEN
|
||||
ITEMP1=0
|
||||
ITEMP0=1
|
||||
DO 1 I=2,N
|
||||
ITEMP2=ITEMP1
|
||||
ITEMP1=ITEMP0
|
||||
ITEMP0=ITEMP1+ITEMP2
|
||||
1 CONTINUE
|
||||
ELSE
|
||||
ITEMP1=1
|
||||
ITEMP0=0
|
||||
DO 2 I=-1,N,-1
|
||||
ITEMP2=ITEMP1
|
||||
ITEMP1=ITEMP0
|
||||
ITEMP0=ITEMP2-ITEMP1
|
||||
2 CONTINUE
|
||||
END IF
|
||||
IFIB=ITEMP0
|
||||
END
|
||||
|
|
|
|||
|
|
@ -1,12 +1,11 @@
|
|||
module fibonacci
|
||||
contains
|
||||
recursive function fibR(n) result(fib)
|
||||
integer, intent(in) :: n
|
||||
integer :: fib
|
||||
|
||||
select case (n)
|
||||
case (:0); fib = 0
|
||||
case (1); fib = 1
|
||||
case default; fib = fibR(n-1) + fibR(n-2)
|
||||
end select
|
||||
end function fibR
|
||||
EXTERNAL IFIB
|
||||
CHARACTER*10 LINE
|
||||
PARAMETER ( LINE = '----------' )
|
||||
WRITE(*,900) 'N', 'F[N]', 'F[-N]'
|
||||
WRITE(*,900) LINE, LINE, LINE
|
||||
DO 1 N = 0, 10
|
||||
WRITE(*,901) N, IFIB(N), IFIB(-N)
|
||||
1 CONTINUE
|
||||
900 FORMAT(3(X,A10))
|
||||
901 FORMAT(3(X,I10))
|
||||
END
|
||||
|
|
|
|||
|
|
@ -1,20 +1,12 @@
|
|||
function fibI(n)
|
||||
module fibonacci
|
||||
contains
|
||||
recursive function fibR(n) result(fib)
|
||||
integer, intent(in) :: n
|
||||
integer, parameter :: fib0 = 0, fib1 = 1
|
||||
integer :: fibI, back1, back2, i
|
||||
integer :: fib
|
||||
|
||||
select case (n)
|
||||
case (:0); fibI = fib0
|
||||
case (1); fibI = fib1
|
||||
|
||||
case default
|
||||
fibI = fib1
|
||||
back1 = fib0
|
||||
do i = 2, n
|
||||
back2 = back1
|
||||
back1 = fibI
|
||||
fibI = back1 + back2
|
||||
end do
|
||||
end select
|
||||
end function fibI
|
||||
end module fibonacci
|
||||
case (:0); fib = 0
|
||||
case (1); fib = 1
|
||||
case default; fib = fibR(n-1) + fibR(n-2)
|
||||
end select
|
||||
end function fibR
|
||||
|
|
|
|||
|
|
@ -1,7 +1,20 @@
|
|||
program fibTest
|
||||
use fibonacci
|
||||
function fibI(n)
|
||||
integer, intent(in) :: n
|
||||
integer, parameter :: fib0 = 0, fib1 = 1
|
||||
integer :: fibI, back1, back2, i
|
||||
|
||||
do i = 0, 10
|
||||
print *, fibr(i), fibi(i)
|
||||
end do
|
||||
end program fibTest
|
||||
select case (n)
|
||||
case (:0); fibI = fib0
|
||||
case (1); fibI = fib1
|
||||
|
||||
case default
|
||||
fibI = fib1
|
||||
back1 = fib0
|
||||
do i = 2, n
|
||||
back2 = back1
|
||||
back1 = fibI
|
||||
fibI = back1 + back2
|
||||
end do
|
||||
end select
|
||||
end function fibI
|
||||
end module fibonacci
|
||||
|
|
|
|||
7
Task/Fibonacci-sequence/Fortran/fibonacci-sequence-6.f
Normal file
7
Task/Fibonacci-sequence/Fortran/fibonacci-sequence-6.f
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
program fibTest
|
||||
use fibonacci
|
||||
|
||||
do i = 0, 10
|
||||
print *, fibr(i), fibi(i)
|
||||
end do
|
||||
end program fibTest
|
||||
Loading…
Add table
Add a link
Reference in a new issue