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
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