You are on page 1of 12

1. 15.6.

2011 Test I grupa A zadatak 3: niz a, korjen parnih br



program tst_1_A_3
implicit none
integer::n,i,j
real,allocatable::A(:),B(:)
print*,'Unesi br elemenata:'
read*,n
allocate(A(n),B(n))
print*,'Unesite elemente:'
read*,(A(i),i=1,n)
do i=1,n
if (mod(A(i),2.).eq.0) then
j=j+1
if (A(i).lt.0) then
B(j)=abs(A(i))**0.5
else
B(j)=A(i)**0.5
end if
end if
end do
print*,'Rezultati:'
do i=1,j
print*,B(i)
end do
end

2. 15.6.2011 Test I grupa B zadatak 1, uslovi

program tst_1_B_1
implicit none
real::A,x,y,c
print*,'Unesite x,y,c:'
read*,x,y,c
if (x.lt.(y+2)) then
A=(x-sin(y)+c)/(x-y)
else
A=2*y**3+2*x-c**2
end if
print*,'A=',A
if (x.eq.31.AND.y.ne.29.AND.c.eq.1) then
A=log(x)/((2.2*x)**0.5) !log(x) - oznacava ln, a log10(x) oznacava log
print*,'A=',A
end if
end

3. 15.6.2011 Test I grupa B zadatak 2, suma i proizvod niza

program tst_1_B_2
implicit none
integer::n,i
real::A(60),S,P
print*,'Unesite N (10<N<=60):'
read*,n
print*,'Unesite clanove niza:'
read*,(A(n),i=1,n)
call suma(A,n,S)
call proizvod(A,n,P)
if (P.gt.S) Then
print*,'Proizvod je:',P
else if (P.lt.S) Then
print*,'Suma je:',S
else
Print*,'Suma i proizvod su jednaki i iznose:',S
end if
end program

subroutine suma(A,n,S)
implicit none
integer::n,i
real::A(n),S
do i=2,n,2
S=S+A(n)
end do
return
end subroutine suma

subroutine proizvod(A,n,P)
implicit none
integer::n,i
real::A(n),P
P=1.
do i=1,n,2
P=P*A(n)
end do
return
end subroutine proizvod

4. 15.6.2011 Test I grupa B zadatak 3, suma niza B

program tst_1_B_3
implicit none
integer::i,n
real::K,S
real,allocatable::B(:)
print*,'Unesi broj elemenata niza B:'
read*,n
allocate(B(n))
print*,'Unesi elemente niza B:'
read*,(B(i),i=1,n)
do i=1,n
S=S+B(i)
end do
print*,'Suma je:',S
if (S.lt.0) then
K=abs(S)**0.5
print*,'Korjen je:',K
end if
end

5. 6.6.2011 Test I grupa B zadatak 2, tri niza

program tst_1_06_B_2
implicit none
integer::i,n
real,allocatable::A(:),B(:),C(:)
real::S,R
print*,'Unesi br elemenata niza:'
read*,n
allocate(A(n),B(n),C(n))
print*,'Elementi prvog niza:'
read*,(A(i),i=1,n)
print*,'Elementi drugog niza:'
read*,(B(i),i=1,n)
print*,'Elementi treceg niza:'
read*,(C(i),i=1,n)
if (A(1).ge.B(1).and.A(1).ge.C(1)) then
R=A(1)-B(1)-C(1)
else if (B(1).ge.A(1).and.B(1).ge.C(1)) then
R=B(1)-A(1)-C(1)
else
R=C(1)-B(1)-A(1)
end if
S=A(n)+B(n)+C(n)
do i=1,n
print*,A(i),B(i),C(i)
end do
print*,'Razlika prvih clanova je:',R
print*,'Suma zadnjih clanova je:',S
end

6. 6.6.2011 Test I grupa A zadatak 1, mjeseci

program tst_1_06_A_1
implicit none
integer::n
print*,'Unesite mjesec u godini(1-12):'
read*,n
print*,'Mjesec:'
select case (n)
case(1)
print*,'Januar'
case(2)
print*,'Februar'
case(3)
print*,'Mart'
case(4)
print*,'April'
case(5)
print*,'Maj'
case(6)
print*,'Juni'
case(7)
print*,'Juli'
case(8)
print*,'August'
case(9)
print*,'Septembar'
case(10)
print*,'Oktobar'
case(11)
print*,'Novembar'
case(12)
print*,'Decembar'
end select
print*,'Godisnje doba:'
select case (n)
case(1:3)
print*,'Zima'
case(4:6)
print*,'Proljece'
case(7:9)
print*,'Ljeto'
case(10:12)
print*,'Jesen'
end select
end

7. 6.6.2011 Test I grupa A zadatak 2, slobodan pad

program tst_1_06_A_2
implicit none
integer::t,n
real::H0,Ht,H,g=9.81
print*,'Unesite visinu sa kojeg pada tijelo:'
read*,H0
n=(2*H0/g)**0.5
do t=2,n,2
Ht=(g*t**2)/2
H=H0-Ht
print*,'t=',t
print*,'Trenutna visina:',H
end do
end

8. 6.6.2011 Test I grupa A zadatak 3, niz A i B

program tst_1_06_A_3
implicit none
integer::i,n
real,allocatable::A(:),B(:)
Print*,'Unesite br. elemenata niza:'
read*,n
allocate(A(n),B(n))
print*,'Unesite elemente niza:'
read*,(A(i),i=1,n)
do i=1,n
if (A(i).lt.0) then
B(i)=(abs(A(i)))**0.5
else
B(i)=A(i)**0.5
end if
end do
do i=1,n
print*,B(i)
end do
end

9. 15.6.2011 Test II grupa A zadatak 1, mnozenje matrica (3x3)

program tst_2_A_1
implicit none
integer::i,j,k
real::A(3,3),B(3,3),C(3,3),maxC,dijA,dijB
print*,'Unesi matricu A'
read*,((A(i,j),j=1,3),i=1,3)
print*,'Unesi matricu B'
read*,((B(i,j),j=1,3),i=1,3)
do i=1,3
do j=1,3
do k=1,3
C(i,j)=C(i,j)+A(i,k)*B(k,j)
end do
end do
end do
maxC=maxval(C)
dijA=A(1,1)
do i=2,3
if (dijA.lt.A(i,i)) then
dijA=A(i,i)
end if
end do
dijB=B(1,1)
do i=2,3
if (dijB.lt.B(i,i)) then
dijB=B(i,i)
end if
end do
print*,'Matrica A:'
print*,((A(i,j),j=1,3),i=1,3)
print*,'Matrica B:'
print*,((B(i,j),j=1,3),i=1,3)
print*,'Matrica C:'
print*,((C(i,j),j=1,3),i=1,3)
print*,'Maksimalna vrijednost matrice C:',maxC
print*,'Maksimalna vrijednost glavne dijagonale matrice A:',dijA
print*,'Maksimalna vrijednost glavne dijagonale matrice B:',dijB
end

10. 15.6.2011 Test II grupa A zadatak 2, min vrijednost reda

program tst_2_A_2
implicit none
integer::i,j,r
real::A(5,5),sv(5),svmin
print*,'Unesite clanove matrice 5x5:'
read*,((A(i,j),j=1,5),i=1,5)
do i=1,5
do j=1,5
sv(i)=sv(i)+A(i,j)
end do
sv(i)=sv(i)/5
end do
r=1
svmin=sv(1)
do i=2,5
if (sv(i).lt.svmin) then
r=i
svmin=sv(i)
end if
end do
print*,'Aritmeticka sredina',r,'. reda je najmanja.'
End

11. 15.6.2011 Test II grupa A zadatak 3, A(4x4) zbir suma dijagonala i max element

program tst_2_A_3
implicit none
integer::i,j,maxi,maxj
real::A(4,4),glD,spD,zbir,max
print*,'Unesite clanove matrice A(4x4):'
read*,((A(i,j),j=1,4),i=1,4)
do i=1,4
glD=glD+A(i,i)
end do
do i=1,4
spD=spD+A(i,5-i)
end do
zbir=glD+spD
max=A(1,1)
maxi=1
maxj=1
do i=1,4
do j=1,4
if (max.lt.A(i,j)) then
max=A(i,j)
maxi=i
maxj=j
end if
end do
end do
print*,'Suma glavne dijagonale je:',glD
print*,'Suma sporedne dijagonale je:',spD
print*,'Zbir dijagonala je:',zbir
print*,'Najveci element matrice je:',max,' u redu:',maxi,' i koloni:',maxj
end

12. 15.6.2011 Test II grupa B zadatak 1, kvadratna matrica A reda n, suma k-tog reda

program tst_2_B_1
implicit none
integer::i,j,n,k
real::suma,prod,min
real,allocatable::A(:,:)
Print*,'Unesite n kvadratne matrice A reda n:'
read*,n
allocate(A(n,n))
print*,'Unesite elemente matrice:'
read*,((A(i,j),j=1,n),i=1,n)
print*,'Kojeg reda zelite da izracunate sumu (0<k<=n):'
read*,k
do j=1,n
suma=suma+A(k,j)
end do
prod=1
do i=1,n
do j=1,n
prod=prod*A(i,j)
end do
end do
min=A(1,n)
do i=1,n
if (A(i,n+1-i).lt.min) then
min=A(i,n+1-i)
end if
end do
print*,'Suma elemenata',k,'. reda je:',suma
print*,'Produkt svih elemenata matrice je:',prod
print*,'Najmanji element sporedne dijagonale:',min
end

13. 15.6.2011 Test II grupa B zadatak 2, transponovana matrica

program tst_2_B_2
implicit none
integer::i,j,n,min
integer,allocatable::A(:,:),T(:,:)
Print*,'Unesite n matrice A(nXn) (n<10):'
read*,n
allocate(A(n,n),T(n,n))
print*,'Unesite elemente matrice:'
read*,((A(i,j),j=1,n),i=1,n)
do i=1,n
do j=1,n
T(i,j)=A(j,i)
end do
end do
min=T(1,n)
do i=1,n
if (T(i,n+1-i).lt.min) then
min=T(i,n+1-i)
end if
end do
print*,'Tansponovana matrica:'
do i=1,n
print*,(T(i,j),j=1,n)
end do
print*,'Najmanji element sporedne dijagonale transponovane matrice je:',min
end

14. Test II grupa Na zadatak 1, matrica A(4x4), najmanji i najveci + lokacije

program tst_2_Na_1
implicit none
integer::i,j,mini,minj,maxi,maxj,min3r
real::A(4,4),min,max
print*,'Unesite clanove matrice A(4x4):'
read*,((A(i,j),j=1,4),i=1,4)
max=A(1,1)
min=A(1,1)
maxi=1
maxj=1
mini=1
minj=1
do i=1,4
do j=1,4
if (max.lt.A(i,j)) then
max=A(i,j)
maxi=i
maxj=j
end if
end do
end do
do i=1,4
do j=1,4
if (min.gt.A(i,j)) then
min=A(i,j)
mini=i
minj=j
end if
end do
end do
min3r=A(3,1)
do i=2,3
if (min3r.gt.A(3,i)) then
min3r=A(3,i)
end if
end do
if (minval(A).gt.5) then
do i=1,4
do j=1,4
if (A(i,j).lt.5) then !ovaj uslov nikad nece biti ispunjen
A(i,j)=10
end if
end do
end do
end if
do i=1,4
print*,(A(i,j),j=1,4)
end do
print*,'Najveci:',max,' red',maxi,' kolona',maxj
print*,'Najmanji:',min,' red',mini,' kolona',minj
print*,'Najmanji element treceg reda:',min3r
end

15. Test II grupa Na zadatak 2, cramer, lin sys 3 jednacine

program tst_2_Na_2
implicit none
integer::i,j,u
real::A(3,3),B(3),X(3)
do i=1,3
print*,'Unesi koeficijente i konstantu za jednacinu',i
read*,(A(i,j),j=1,3),B(i)
end do
call cramer(A,B,X,u)
if (u.eq.1) print*,'Rjesenje sistema je',(X(i),i=1,3)
end program

subroutine cramer(A,B,X,u)
implicit none
integer::i,u
real::A(3,3),B(3),X(3),detsis,det,A1(3,3),A2(3,3),A3(3,3)
detsis=det(A)
u=1
if (detsis.eq.0) then
print*,'sistem nema rjesenja'
u=0
return
end if
A1=A
A2=A
A3=A
do i=1,3
A1(i,1)=B(i)
A2(i,2)=B(i)
A3(i,3)=B(i)
end do
X(1)=det(A1)/detsis
X(2)=det(A2)/detsis
X(3)=det(A3)/detsis
return
end subroutine cramer

real function det(A)
implicit none
real::A(3,3)
det=A(1,1)*A(2,2)*A(3,3)+A(1,2)*A(2,3)+A(3,1)+A(2,1)*A(3,2)*A(1,3)-A(3,1)*A(2,2)*A(1,3)-
A(2,1)*A(3,3)*A(1,2)-A(3,2)*A(1,1)*A(2,3)
return
end

16. Test II grupa Na zadatak 3, matrica A reda n>3 i niz K(1x20)

program tst_2_Na_3
implicit none
integer::i,j,n,L
real,allocatable::A(:,:)
real::K(20)
print*,'Unesite red matrice n>3'
read*,n
allocate(A(n,n))
print*,'Unesite elemente matrice A'
read*,((A(i,j),j=1,n),i=1,n)
L=1
do j=1,2
do i=1,n
if (A(i,j).lt.8) then
K(L)=A(i,j)
L=L+1
end if
end do
end do
print*,'Matrica A'
do i=1,n
print*,(A(i,j),j=1,n)
end do
print*,'Niz K'
print*,K
end

17. Test II grupa Na2 zadatak 1, matrica A 5x5 i B 4x4

program tst_2_Na2_1
implicit none
integer::i,j
real::A(5,5),B(4,4),zb5kol,prDij,raz,proiz
print*,'Unesite clanove matrice A(5x5):'
read*,((A(i,j),j=1,5),i=1,5)
print*,'Unesite clanove matrice B(4x4):'
read*,((B(i,j),j=1,4),i=1,4)
do i=1,5
zb5kol=zb5kol+A(i,5)
end do
prDij=1
do i=1,4
prDij=prDij*B(i,i)
end do
print*,'Zbir elemenata pete kolone matrice A:',zb5kol
print*,'Proizvod elemenata dijagonale matrice B',prDij
if (zb5kol.gt.prDij) then
raz=zb5kol-prDij
print*,'Razlika:',raz
else
proiz=zb5kol*prDij
print*,'Proizvod:',proiz
end if
print*,'Matrica A'
do i=1,5
print*,(A(i,j),j=1,5)
end do
print*,'Matrica B'
do i=1,4
print*,(A(i,j),j=1,4)
end do
end

18. Test II grupa Na2 zadatak 2, rotacija vektora

program tst_2_Na2_2
implicit none
real::x,y,xr,yr,alfa
print*,'Unesite koordinate x,y i ugao rotacije'
read*,x,y,alfa
call rotacija(x,y,xr,yr,alfa)
print*,'Nova pozicija:'
print*,'X=',xr
print*,'Y=',yr
end program

subroutine rotacija(x,y,xr,yr,alfa)
implicit none
real::x,y,xr,yr,alfa,beta,gama,r
alfa=alfa*3.14159/180
beta=atan(y/x) !atan arkus tangens
r=(x**2+y**2)**0.5
gama=alfa+beta
xr=r*cos(gama)
yr=r*sin(gama)
return
end subroutine rotacija


19. Test II grupa Na2 zadatak 3, najmanje vrijednosti matrice A n>3

program tst_2_Na2_3
implicit none
integer::i,j,n
real::minMat,minDij,min3red
real,allocatable::A(:,:)
print*,'Unesite red matrice n>3'
read*,n
allocate(A(n,n))
print*,'Unesite elemente matrice A'
read*,((A(i,j),j=1,n),i=1,n)
minMat=minval(A)
minDij=A(1,1)
do i=2,n
if (minDij.gt.A(i,i)) then
minDij=A(i,i)
end if
end do
min3red=A(3,1)
do j=2,n
if (min3red.gt.A(3,j)) then
min3red=A(3,j)
end if
end do
print*,'Matrica:'
do i=1,n
print*,(A(i,j),j=1,n)
end do
print*,'Najmanji element matrice:',minMat
print*,'Najmanji element dijagonale matrice:',minDij
print*,'Najmanji element treceg reda matrice:',min3red
end

You might also like