Professional Documents
Culture Documents
Fortran Programs
Fortran Programs
Askisi 4
!Ypologismos athroismatos perittwn S=1+3+5+7+9+11+n
program sum
implicit none
integer::i,S,n
print*,dwse to n
read*,n
S=0
do i=1,n,2
S=S+i
end do
print*,S=1+3+5+n,S
end program sum
Askisi 5
!Ypologismos athroismatos S=2+4+6+8+10+12
program sum
implicit none
integer::i,S
S=0
do i=2,12,2
S=S+i
end do
print*,S=2+4+6+8+10+12,S
end program sum
Askisi 6
!Ypologismos athroismatos artiwn S=2+4+6+8+10+12+n
program sum
implicit none
integer::i,S,n
print*,dwse to n
read*,n
S=0
do i=2,n,2
S=S+i
end do
print*,S=2+4+6++n,S
end program sum
Askisi 7
!Ypologismos athroismatos S=1+1/2+1/3+1/4+1/5
program sum
implicit none
integer::i
real::S
S=0
do i=1,5
S=S+1.0/i
end do
print*, S=1+1/2+1/3+1/4+1/5=,S
end program sum
Askisi 8
!Ypologismos athroismatos S=1+1/2+1/3+1/4+1/5++1/n
program sum
implicit none
integer::i,n
real::S
print*,dwse to n
read*,n
S=0
do i=1,n
S=S+1.0/i
end do
print*, S=1+1/2+1/3+1/4+1/5++1/n,S
end program sum
Askisi 9
!Ypologismos athroismatos S=1+22+32+42+52++1002
program sum
implicit none
integer::i,S
S=0
do i=1,100
S=S+i**2
end do
print*, S=,S
end program sum
Askisi 10
!Ypologismos athroismatos S=1+22+32+42+52++n2
program sum
implicit none
integer::i,n,S
print*,dwse to n
read*,n
S=0
do i=1,n
S=S+i**2
end do
print*, S=,S
end program sum
Askisi 11
!Ypologismos athroismatos S=1+1/22+1/32+1/42+1/52++1/1002
program sum
implicit none
integer::i
real::S
S=0
do i=1,100
S=S+(1/i**2)
end do
print*, S=,S
end program sum
Askisi 12
!Ypologismos athroismatos S=1+1/22+1/32+1/42+1/52++1/n2
program sum
implicit none
integer::i,n
real::S
print*,dwse to n
read*,n
S=0
do i=1,n
S=S+(1/i**2)
end do
print*, S=,S
end program sum
Askisi 13
!Ypologismos athroismatos S=1+(1+1/2)2+(1+1/3)2+
program sum
implicit none
integer::i,n
real::S
print*,dwse to n
read*,n
S=0
do i=1,n
S=S+(1+1/i)**2
end do
print*, S=,S
end program sum
Askisi 14
!Ypologismos athroismatos S=1+(1+1/2)+(1+1/2+1/3)+
+(1+1/2+1/3+1/n)
program sum
implicit none
integer::i,j,n
real::S,S1
print*,dwse to n
read*,n
S=0
do i=1,n
S1=0
do j=1,i
S1=S1+1.0/j
end do
S=S+S1
end do
print*, S=,S
end program sum
Askisi 15
!Ypologismos athroismatos S=1+(1+1/2)+(1+1/2+1/22)+
+(1+1/2+1/22+1/2n)
program sum
implicit none
integer::i,j,n
real::S,S1
print*,dwse to n
read*,n
S=1
do i=1,n
S1=0
do j=1,i
S1=S1+1.0/2**j
end do
S=S+S1
end do
print*, S=,S
end program sum
Askisi 16
!Ypologismos athroismatos S=x+x/2+x/3+x/4+x/5++x/n
program sum
implicit none
integer::i,x,n
real::S
print*,diavase to x
read*,x
print*,dwse to n
read*,n
S=0
do i=1,n
S=S+x/i
end do
print*, S=,S
end program sum
Askisi 17
!Ypologismos athroismatos olws twn arithmwn apo to -10 ews to 5
me bhma 2 kai ystera me bhma 0,5
program sum
implicit none
integer:: i,S
S=0
do i=-10,5,2
S=S+i
end do
print*,S=,S
end program sum
program sum
implicit none
real:: i,S
S=0
do i=-10,5,0.5
S=S+i
end do
print*,S=,S
end program sum
Askisi 18
!Eyresh max 2 arithmwn
program sigrisi
implicit none
real::x,y,max
print*,diavase ta x,y
read*,x,y
if (x>y) max=x
max=y
print*,max
end program sigrisi
Askisi 19
!Ypologismos ths ax+b=0
Program prwtobathmia
implicit none
real::a,b,x
print*.diavase to a
read*,a
print*,diavase to b
read b
if (a==0) then
if (b==0) then print*,h eksiswsh einai aoristh
else
print*,h eksiswsh einai adynath
end if
else
x=-b/a
print*,h eksiswsh exei monadikh lush x=,x
end program prwtobathmia
Askisi 20
!Ypologismos ths ax2+bx+c=0
program deyterovathmia
implicit none
real::a,b,c,x,x1,x2,D
print*.diavase to a
read*,a
print*,diavase to b
read*,b
print*,diavase to c
read*,c
if (a==0) then
if (b==0) then
if (c==0) then
print*,h eksiswsh einai aoristh
else
print*,h eksiswsh einai adynath
end if
else
x=-c/b
print*,h eksiswsh exei monadikh lush x=,x
end if
else
D=b**2-4*a*c
print*,D=,D
if (D<0) then
print*, h eksiswsh den exei pragmatikes rizes
else if (D==0) then
x=-b/(2*a)
print*, h eksiswsh exei diplh riza thn x=,x
else
x1=(-b+sqrt(D))/2*a
x2=(-b-sqrt(D))/2*a
print*,h eksiswsh exei duo rizes x1=, x2=,x1,x2
end if
end if
end program deyterobathmia
Askisi 21
!eyresh min kai max apo 10 pragmatikous arithmous
program minmax
implicit none
real::min,max
real,dimension(10)::a
integer::i
print*,dwse ta stoixeia tou a
do i=1,10
read*,a(i)
end do
max=a(1)
min=a(1)
do i=2,10
if (a(i)>=max) then
max=a(i)
else if (a(i)<=min) then
min=a(i)
end if
end do
print*,max=,max
print*,min=,min
end program minmax
Askisi 22
!eyresh min kai max apo n pragmatikous arithmous
program minmax
implicit none
real::min,max
integer::i,n
real,dimension(:),allocatable::a
print*,dwse th diastash tou a
read*,n
allocate(a(n))
print*,dwse ta stoixeia tou a
do i=1,n
read*,a(i)
end do
max=a(1)
min=a(1)
do i=2,n
if (a(i)>=max) then
max=a(i)
else if (a(i)<=min) then
min=a(i)
end if
end do
print*,max=,max
print*,min=,min
deallocate(a)
end program minmax
Askisi 23
!Programma pou kaneis taksinomisi 100 onomatwn kata ayksousa
seira
program sorting
implicit none
integer, parameter:: nmax=100
!dilwnw genika th diastash enos array me thn parameter !
character,dimension(nmax)::name
character:: help
integer::i,j,n
print*,diavase th diastash
! twn arithmo twn onomatwn pou thelw na taksinomhsw!
read*,n
print*,diavase ta onomata
read*,( name(i), i=1,n) ! prepei to n na einai mikrotero apo to
nmax!
do i=1,n-1
do=i+1,n
if (name(i)>name(j)) then
help= name(i)
name(i)=name(j)
name(j)=help
end if
end do
end do
print*,ta onomata kata alfavitiki seira einai, (name(i),i=1,n)
end program sorting
Askisi 24
deallocate(A)
end program trace
Askisi 26
!Ypologismos athroismatos antistrofwn stoixeiwn enos
monodiastatou array( dianysmatos)
program sum
implicit none
integer::n,i
real::S
integer,parameter::nmax=10
real,dimension(nmax)::A
print*,dwse th diastash tou dianusmatos
read*,n
print*,dwse ta stoixeia tou dianusmatos
do i=1,n
read*,A(i)
end do
S=0
do i=1,n
S=S+1/A(i)
end do
print*,S=,S
end program sum
Askisi 27
Askisi 28
Askisi 29
Askisi 30
Askisi 31
!Prosthesi duo pinakwn A,B
program sum
implicit none
integer,dimension(:,:),allocatable::A,B,C
integer::i,j,n
print*,dwse th diastash twn pinakwn
read*,n
allocate (A(n,n),B(n,n),C(n,n))
print*,diavase ton A
do i=1,n
do j=1,n
read*,A(i,j)
end do
end do
print*,diavase ton B
do i=1,n
do j=1,n
read*,B(i,j)
end do
end do
do i=1,n
do j=1,n
C(i,j)=A(i,j)+B(i,j)
end do
end do
print*,C=,C
do i=1,n
print*,(C(i,j),j=1,n)
end do
deallocate (A,B,C)
end program sum
Askisi 32
Askisi 33
Askisi 34
Askisi 36
1+ x 2 , x>0
kai f(x)=1+
1+ x 2 , x<0
1+ x 2 , x>0
xrhsh function
program sinartisi
implicit none
real::x
real::f
print*,diavase to x
read*,x
print*,f(x)=,f(x)
end program sinartisi
real function f(x)
implicit none
real::x
if (x>0) then
f=1-sqrt(1+x**2)
else if (x<0) then
f=1+sqrt(1+x**2)
end if
end function f
Askisi 37
!Ypologismos ths f(x)=1kai f(x)=1+
1+ x 2 , x<0
program sinartisi
implicit none
real::x
real::f
print*,diavase to x
read*,x
print*,f(x)=,f(x)
end program sinartisi
real function f(x)
implicit none
real::x
if (x>0) then
f=1-sqrt(1+x**2)
else if (x<0) then
f=1+sqrt(1+x**2)
else
f=0
end if
me xrhsh function
me
end function f
Askisi 38
1
!Ypologismos sunthetou klasmatos 1+
program suntheto_klasma
implicit none
real::func1
real,dimension(100)::A
integer::n,i
real::y
print*,diabase th diastash
read*,n
print*,dwse ta stoixeia
do i=1,n
read*,A(i)
end do
y=func1(A,n)
print*,I timi ths sunartisis einai,y
end program sunteto_klasma
real function func1(A,n)
implicit none
real,dimension(100)::A
integer::I,n
func1=A(n)
do i=n,2,-1
func1=A(i-1)+1./func1
end do
return
end function func1
2 +
1
3 +
1
4+
Askisi 39
!Anathesi stoixeiwn pinaka se dianusma kai sorting kata ayksousa
kai kata fthinousa seira me xrhsh uporoutinas
program sorting
implicit none
real,dimension(;,:),allocatable::A
real,dimension(:),allocatable::S
integer::i,j,n
print*,diavase ti diastash tou pinaka
read*,n
allocate(A(n,n),S(n))
print*,diavase ta stoixeia tou pinaka
do i=1,n
do j=1,n
read*,A(i,j)
end do
end do
do i=1,n
S(i)=A(i,i)
end do
print*,(S(i),i=1,n)
call sort(S,n)
print*,to dianusma meta th taksinomisi einai,(S(i),i=1,n)
deallocate (A,S)
end program sorting
!kata ayskousa seira!
subroutine sort(X,n)
implicit none
integer::n,i,j
real,dimension(n)::X
real::help
do i=1,n-1
do j=i+1,n
if (X(i)>X(j)) then
help=X(i)
X(i)=X(j)
X(j)=help
end if
end do
end do
end subroutine sort
Askisi 40
!programma pou upologizei to athroisma twn grammwn enos pinaka
kai vriskei to max apo ayta
program addmax
real,dimension(:,:),allocatable::A
real,dimension(:),allocatable::S
integer::i,j,n
real::max
print*,diavase th diastash tou pinaka A
read*,n
allocate(A(n,n),S(n))
print*,diavase ta stoixeia tou A kata grammh
do i=1,n
do j=1,n
read*,A(i,j)
end do
end do
call sumrow(A,S,n)
do i=1,n
print*,S(i)
end do
call maximum(max,S,n)
print*,max=,max
end program addmax
subroutine sumrow(A,S,n)
integer::n,i,j
real,dimension(n,n)::A
real,dimension(n)::S
do i=1,n
S(i)=0
do j=1,n
S(i)=S(i)+A(i,j)
end do
end do
end subroutine sumrow
subroutine maximum(max,S,n)
integer::n,i
real,dimension(n)::S
real::max
max=S(1)
do i=2,n
if (max<S(i)) then
max=S(i)
end if
end do
end subroutine maximum
Askisi 41
!Dunami pinaka
program power
implicit none
integer::n,m,i,j,k,p
real,dimension(:,:)::A,B,pow
print*,diavase ti diastash
read*,n
allocate(A(n,n))
print*, diabase ta stoixeia tou A
do i=1,n
do j-1,n
read*,A(i,j)
end do
end do
print*,diavase ti dinamh
read*,m
allocate(B(n,n))
allocate (pow(n,n))
B=A
do p=1,m-1
do i=1,n
do j=1,n
pow(i,j)=0
do k=1,n
pow(i,j)=pow(i,j)+A(i,k)*B(k,j)
end do
end do
end do
B=pow
end do
pow=B
print*,h dunamh tou pianaka A einai ,m
do i=1,n
do j=1,n
print*,B(i,j)
end do
end do
deallocate(A)
deallocate(B)
deallocate(pow)
end program power