You are on page 1of 7

Φ

οι
τη
τικ
ό
Π
ρό
σ ημ
ο
Φ
οι
τη
τικ
ό
Π
ρό
σ ημ
ο
Θέμα 1 - α΄ τρόπος

program test
implicit none
integer :: i
integer, parameter :: n=10
real, dimension(n) :: x, y, z
do i=1 ,n
read *, x(i),y(i)
enddo

ο
call add(x,y,z,n)
do i=1,n

ημ
print *, z(n)
end do
end test

subroutine add(a,b,c,n)

σ
implicit none
integer :: i,n
real, dimension(n):: a,b,c
do i=1,n
c(i)=a(i)+b(i)
end do
end subroutine add ρό
Π
Θέμα 1 - β΄ τρόπος

program test
implicit none
ό

integer :: n,i
real, allocatable, dimension(:) :: x, y, z
τικ

allocate(x(n), y(n))
do i=1 ,n
read *, x(i),y(i)
enddo
allocate(z(n))
call add(x,y,z,n)
τη

deallocate(x,y)
do i=1,n
print *, z(n)
end do
deallocate(z)
οι

end test

subroutine add(a,b,c,n)
Φ

implicit none
integer :: i,n
real, dimension(n):: a,b,c
do i=1,n
c(i)=a(i)+b(i)
end do
end subroutine add

5
Θέμα 2

real function f(x)


implicit none
real:: x

if (x<13) then
f = cos(x)**2
else if (x>13) then
f = x*exp(−2*sqrt(x))−1

ο
else
f = 7

ημ
end if

end function f

!=========================

σ
program thema2
implicit none
real :: f, x

do x = −15, 25, 0.5


print*, f(x)
ρό
Π
end do

end program thema2


ό

Θέμα 3
τικ

program thema3
implicit none
real :: x, S
integer :: i
integer, parameter :: n=80
τη

read*, x

S = 0.0

do i=1,n
οι

S = S − x**i/i**(i−1)
end do
Φ

print*, S

end program thema3

6
Θέμα 4

subroutine sum(x,y,n,s)
implicit none
real :: s
integer :: i, n
real, dimension(n) :: x,y

s = 0.0

ο
do i = 1,n
s = s + (x(i)−y(i))**2

ημ
end do

end subroutine sum

!==========================

σ
program thema4
implicit none
real :: s
integer :: i, j
real, dimension(6) :: x, y
real, dimension(6,6) :: A, B ρό
Π
do i = 1, 6
do j = 1,6
read*, A(i,j)
end do
end do
ό

do i = 1, 6
do j = 1,6
τικ

read*, B(i,j)
end do
end do

do j = 1,6
x(j) = A(4,j)
τη

end do

do j = 1,6
y(z) = B(4,j)
οι

end do

call sum(A, B, 6, s)
print*, s
Φ

end program thema4

7
Θέμα 2 - Φεβρ2017
1. Να γράψετε υποπρόγραμμ το οποίο θα υπολογίζει το παραγοντικό ενός μη αρνητικού
ακέραιου k.
2. Να γράψετε υποπρόγραμμα το οποίο θα υπολογίζει την k-οστή δύναμη πραγματικού
αριθμού x, όπου k μη αρνητικός ακέραιος.
3. Να γράψετε πρόγραμμα το οποίο θα αξιοποιεί τα υποπρογράμματα των προηγούμενων

ο
ερωτημάτων για τον υπολογισμό του αθροίσματος:
n
X (−1)i 2i+1
S= x

ημ
(2i + 1)!
i=0

για n οποιοδήποτε μη αρνητικό ακέραιο και x οποιοδήποτε πραγματικό αριθμό. Στο


τέλος, να εκτυπώνεται η τιμή του αθροίσματος που προκύπτει.

σ
real function fact(k)
implicit none
real :: k
integer :: i
fact = 1.0
if (k>0) then
! 0!=1

do i = 1, k
ρό
Π
fact = fact * i
end do
end if
end function fact
ό

real function power(x,k)


implicit none
τικ

real :: x
integer :: k, i
power = 1.0 ! xˆ0=1
if (k>0) then
do i = 1, k
power = power * x
τη

end do
end if
end function power
οι

!=======================

program thema2
implicit none
Φ

real :: x, n, s
integer :: i
real, external :: fact, power
read*, x, n
s = 0.0
do i = 0, n
s = s + power(−1,i)/fact(2.0*i+1) * power(x, 2.0*i+1)
end do

print*, s

end program thema2

8
Θέμα 3 - Φεβρ2017
Να γράψετε πρόγραμμα σε Fortran90, το οποίο αρχικά θα διαβάζει τα στοιχεία ενός πίνακα
Α με 100 γραμμές και 3 στήλες, για τον οποίο τα στοιχεία της πρώτης στήλης αντιστοιχούν σε
α.μ. φοιτητών και τα στοιχεία της δεύτερης και τρίτης στήλης αντιστοιχούν σε βαθμολογίες
των μαθημάτων Α και Β.
Να υπολογίζονται και να τυπώνονται τα παρακάτω:

1. Το πλήθος των φοιτητών που πέτυχαν (βαθμός ≥ 5) στην εξέταση του μαθήματος Α

ο
και το πλήθος των φοιτητών που απέτυχαν στην εξέταση του μαθήματος Β.

ημ
2. Ο μέσος όρος της βαθμολογίας όλων των φοιτητών στο μάθημα Α.

3. Η μέγιστη βαθμολογία στο μάθημα Β.

P R O G R A M T H E M A3

σ
IMPLICIT NONE
REAL :: S , M A X B
:: A(100,3)

ρό
REAL
I N T E G E R :: I , J , C O U N T A, C O U N T B

DO I = 1, 100
DO J = 1, 3
Π
R E A D *, A( I , J )
END DO
END DO

C O U N TA = 0
C O U N TB = 0
ό

DO I = 1, 100
τικ

DO J = 1, 3
I F (A( I ,2) >= 5) T H E N
C O U N TA = C O U N TA + 1
END IF

IF (A( I ,3) < 5) T H E N


τη

C O U N TB
= C O U N TB + 1
END IF

S = S + A( I ,2)
END DO
οι

END DO
P R I N T *, C O U N T A , C O U N TB
P R I N T *, S /100
Φ

M A XB = A(1,3)
DO I = 2, 100
I F (A( I ,3) > M A X B) THEN
M A X B = A( I ,3)
END IF
END DO
P R I N T *, M A X B

E N D P R O G R A M T H E M A3

You might also like