Professional Documents
Culture Documents
Fortran zadaciBlokIII
Fortran zadaciBlokIII
2 Nizovi - nastavak
1. Napisati program koji sortira niz rastuce (Bubble sort).
3 Matrice
2. Sledeci program ilustruje osnovni rad sa matricama:
1
Program: ! Ilustruje osnovni rad sa matricama
program matrice_uvod
implicit none
integer, dimension(2, 3) :: a, b
integer :: i, j
! Necitiljivo
print*, ’Necitljiv zapis:’
print*, a
2
Program: program suma_elemenata_matrice
implicit none
do i = 1, n
do j = 1, n
suma = suma + a(i, j)
enddo
enddo
do i = 1, n
trag = trag + a(i, i)
enddo
3
Program: program suma_ispod_gl_dijag
implicit none
4
Program: program transponovanje
implicit none
! Transponuje se matrica
do i = 2, n
do j = 1, i - 1
pom = a(i, j)
a(i, j) = a(j, i)
a(j, i) = pom
enddo
enddo
5
Program: program mnozenje_matrica
implicit none
do i = 1, n
do j = 1, r
c(i, j) = 0 ! VAZNO, inicijalizacija tekuceg elementa na 0
do k = 1, m
c(i, j) = c(i, j) + a(i, k) * b(k, j)
end do
end do
end do
print*, ’Rezultat:’
do i = 1, n
print*, (c(i, j), j = 1, r)
enddo
4 Funkcije i Procedure
8. Napisati funkciju koja racuna faktorijel prirodnog broja n.
6
Program: function faktorijel(n) result (rezultat)
implicit none
if(n < 0) stop ’Broj ciji se faktorijel racuna mora biti nenegativan’
rezultat = 1
do i = 1, n
rezultat = rezultat * i
enddo
program ffaktorijel
implicit none
integer :: a
integer :: faktorijel ! I funkciju treba deklarisati
print*, faktorijel(4)
print*, faktorijel(5)
print*, "a=?"
read*, a
print*, faktorijel(a)
9. Napisati program koji sortira niz rastuce, koristeci procedure za razmenu vrednosti dva broja
i za sortiranje (Selection sort).
7
Program: subroutine razmeni(a, b)
implicit none
real, intent(inout) :: a, b
real :: temp
temp = a; a = b; b = temp
integer, intent(in) :: n
real, dimension(n), intent(inout) :: A
integer :: i, j ! Brojaci u petljama, lokalne promenljive
do i = 1, n - 1
do j = i + 1, n
if(A(i) > A(j)) call razmeni(A(i), A(j))
end do
end do
! ...
program pselection_sort
implicit none