Professional Documents
Culture Documents
από Θέματα
από Θέματα
οι
τη
τικ
ό
Π
ρό
σ ημ
ο
Φ
οι
τη
τικ
ό
Π
ρό
σ ημ
ο
Θέμα 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
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
Θέμα 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
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
!==========================
σ
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
Φ
7
Θέμα 2 - Φεβρ2017
1. Να γράψετε υποπρόγραμμ το οποίο θα υπολογίζει το παραγοντικό ενός μη αρνητικού
ακέραιου k.
2. Να γράψετε υποπρόγραμμα το οποίο θα υπολογίζει την k-οστή δύναμη πραγματικού
αριθμού x, όπου k μη αρνητικός ακέραιος.
3. Να γράψετε πρόγραμμα το οποίο θα αξιοποιεί τα υποπρογράμματα των προηγούμενων
ο
ερωτημάτων για τον υπολογισμό του αθροίσματος:
n
X (−1)i 2i+1
S= x
ημ
(2i + 1)!
i=0
σ
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 :: 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
8
Θέμα 3 - Φεβρ2017
Να γράψετε πρόγραμμα σε Fortran90, το οποίο αρχικά θα διαβάζει τα στοιχεία ενός πίνακα
Α με 100 γραμμές και 3 στήλες, για τον οποίο τα στοιχεία της πρώτης στήλης αντιστοιχούν σε
α.μ. φοιτητών και τα στοιχεία της δεύτερης και τρίτης στήλης αντιστοιχούν σε βαθμολογίες
των μαθημάτων Α και Β.
Να υπολογίζονται και να τυπώνονται τα παρακάτω:
1. Το πλήθος των φοιτητών που πέτυχαν (βαθμός ≥ 5) στην εξέταση του μαθήματος Α
ο
και το πλήθος των φοιτητών που απέτυχαν στην εξέταση του μαθήματος Β.
ημ
2. Ο μέσος όρος της βαθμολογίας όλων των φοιτητών στο μάθημα Α.
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
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