fortran uradjeni zadaci
TRANSCRIPT
program fjjedan
implicit none
real r,V,P,pi
write(*,*) 'unesi radijus kugle'
read(*,*) r
pi=atan(1.0)
V=(4.0/3)*r**3*pi
P=2*pi*r**2
write(*,*) 'zapremina kugle je',V,'povrsina kugle je',P
end
program fjdva
real a,b,c,d,e,x,P
write(*,*) 'unesi koeficijente polinoma'
read(*,*) a,b,c,d,e
write(*,*) 'unesi vrijednost x polinoma'
read(*,*) x
P=a*x**4+b*x**3+c*x**2+d*x+e
write(*,*) 'vrijednost polinoma je',P
end
program fjtri
implicit none
real a,b,c
write(*,*) 'Unesi brojeve'
read(*,*) a,b,c
if (a.gt.b) then
if (a.gt.c) then
write(*,*) 'a je najveci',a
else
write(*,*) 'c je najveci',c
end if
else
if (b.gt.c) then
write(*,*) 'b je najveci',b
else
write(*,*) 'c je najveći',c
end if
end if
end
program fjcetri
implicit none
real a,b,c,D
write(*,*) 'ax2+bx+c=0'
write(*,*) 'unesi koeficijente kvadratne jednacine'
read(*,*) a,b,c
if (a.eq.0) then
if (b.eq.0) then
if (c.eq.0) then
write(*,*) 'imamo beskonacna rjesenja'
else
write(*,*) 'nemamo rjesenja'
end if
else
write(*,*) 'rjesenje je', -(c/b)
end if
else
D=b**2-4*a*c
if (D.gt.0) then
write(*,*) 'rjesenje jednacine je', (b-sqrt(D))/(2*a)
else
if (D.lt.0) then
write(*,*) 'rjesenje je kompleksno'
end if
end if
end if
end
program fjpet
implicit none
real a,b,c,Z,P
write(*,*) 'unesi tri broja'
read(*,*) a,b,c
Z=a+b+c
P=a*b*c
if (Z.gt.P) then
write(*,*) 'zbir je veci od produkta'
else
if (P.gt.Z) then
write(*,*) 'produkt je veci od zbira'
else
if (P.eq.Z) then
write(*,*) 'produkt i zbir su jednaki'
end if
end if
end if
end
program fjsedam
implicit none
real b
write(*,*) 'unesi broj bodova'
read(*,*) b
if (b.lt.0) then
write(*,*) 'nema negativnih bodova'
else
if (b.lt.55) then
write(*,*) 'pet'
else
if (b.lt.65) then
write(*,*) 'sest'
else
if (b.lt.75) then
write(*,*) 'sedam'
else
if (b.lt.85) then
write(*,*) 'osam'
else
if (b.lt.95) then
write(*,*) 'devet'
else
if (b.lt.100) then
write(*,*) 'deset'
else
write(*,*) 'max broj bodova je 100'
end if
end if
end if
end if
end if
end if
end if
end
program fjosam
real a,b,c,d,e,f,x,y
write(*,*) 'unesi koeficijente'
read(*,*) a,b,c,d,e,f
x=(c*e-b*f)/(a*e-b*d)
y=(a*f-c*d)/(a*e-b*d)
write(*,*) 'rjesenja su',x,y
end
program fdjeda
implicit none
real a,x,h,i,y,n
write(*,*) 'unesi vrijednosti a, h i n'
read(*,*) a,h,n
i=0
do while (i.le.n)
x=a*i*h
y=(sin(x))**2/(x**2)
write(*,*) x,y
i=i+h
end do
end
program fdjedb
implicit none
real a,x,h,b,n,y
write(*,*) 'unesi vrijednosti a,b,n'
read(*,*) a,b,h
h=(b-a)/(n-1)
x=1
do while (x.lt.b)
y=(sin(x)**2)/(x**2)
write(7,*) y
x=x+h
end do
end
program fddva
implicit none
integer S,n,i
write(*,*) 'unesi prirodan broj n'
read(*,*) n
S=0
do i=1,n
S=S+i
end do
write(*,*) S
end
program fdtri
implicit none
real x,S,i,n
write(*,*) 'unesi n proizvoljnih brojeva'
read(*,*) n
S=0
i=1
do while (i.le.n)
write(*,*) 'unesi proizvoljan broj'
read(*,*) x
S=S+x
i=i+1
end do
write(*,*) 'srednja vrijednost je',S/n
end
program fdcetb
implicit none
real x,y,z,k,h
h=0.5
k=-2
x=1
do while (x.le.5)
y=30
do while (y.ge.4)
z=(x-2*x*y+y)/((x+4.)*(y+20))
write(*,*) x,y,z
y=y+k
end do
x=x+h
end do
end
program fdpet
implicit none
integer i,n,prod
write(*,*) 'unesi broj za racunanje faktorijela'
read(*,*) n
prod=1
do i=1,n
prod=prod*i
end do
write(*,*) 'faktorijel datog broja je', prod
end
program fdsest
implicit none
integer n,a,b,i,c
write(*,*) 'unesi broj n'
read(*,*) n
a=0
b=1
c=a+b
write(*,*) a
write(*,*) b
write(*,*) c
do i=1,n-2
a=b
b=c
c=a+b
write(*,*) c
end do
end
program fdsed
implicit none
real v0,a,dt,t,x,y
write(*,*) 'Unesi vrijednost pocetne brzine'
read(*,*) v0
write(*,*) 'Unesi ugao izbacivanja'
read(*,*) a
write(*,*) 'Unesi vremenski korak'
read(*,*) dt
t=0
x=0
y=0
do while (y.ge.0)
x=v0*sin(a)*t
y=(v0*cos(a)*t)-(9.81*t**2)/2
if (y.lt.0) then
write (*,*) 'U ovom trenutku tijelo je vec palo na Zemlju'
else
write(*,*) t,x,y
end if
t=t+dt
end do
end
program fdosam
real x,kor0,kor,n,i
write(*,*) 'Unesi broj'
read(*,*) x
write(*,*) 'Unesi pocetnu aproksimaciju'
read(*,*) kor
write(*,*) 'Unesi broj iteracija'
read(*,*) n
i=0
do while (i.lt.n)
kor=kor-(kor**2-x)/(2*kor)
i=i+1
end do
write(*,*) 'Vrijednost je',kor
end
program ftjedb
implicit none
real x,y,a,b,h,K,L
integer n
write(*,*) 'Unesi granice intervala'
read(*,*) a,b
write(*,*) 'Unesi broj tacaka'
read(*,*) n
h=(b-a)/(n-1)
x=a
do while (x.lt.b)
K=x**2+abs(log(x**2+1))-exp(x-1)
if (K.lt.0) then
write(*,*) 'Podkorjena velicina je negativna'
goto 100
else
L=sqrt(K)
if (L.lt.-1.or.L.gt.1) then
write(*,*) 'Izvan opsega sinusa'
goto 100
else
y=sin(L)
write(*,*) x,y
end if
end if
100 x=x+h
end do
end
program ftdva
integer i
real a(3),b(3),s
write(*,*) 'unesi komponente vektora a'
do i=1,3
read(*,*) a(i)
end do
write(*,*) 'unesi komponente vektora b'
do i=1,3
read(*,*) b(i)
end do
s=0
do i=1,3
s=s+a(i)+b(i)
end do
write(*,*) 'skalarni produkt vektora a i b je',s
end
program fttria
implicit none
real a(100),M
integer i,k,n,l,j
write(*,*) 'Unesi broj clanova niza'
100 read(*,*) n
if (n.gt.100) then
write(*,*) 'Prevelik niz ponovi unos'
goto 100
else
write(*,*) 'Unesi clanove niza'
do i=1,n
read(*,*) a(i)
end do
M=a(1)
k=1
do i=2,n
if (a(i).gt.M) then
M=a(i)
k=i
else
do j=2,n
if (a(j).eq.M) then
M=a(j)
k=j
write(*,*) 'Najveći clan niza je',M,'na mjestu',j
end if
end do
end if
end do
end if
end
program fttrib
implicit none
real a(100),M
integer i,k,n
write(*,*) 'Unesi broj clanova niza'
100 read(*,*) n
if (n.gt.100) then
write(*,*) 'Prevelik niz ponovi unos'
goto 100
else
write(*,*) 'Unesi clanove niza'
do i=1,n
read(*,*) a(i)
end do
M=a(1)
k=1
do i=1,n
if (a(i).gt.M) then
M=a(i)
k=i
end if
end do
write(*,*) 'Najveći clan niza je',M,'na mjestu',k
end if
end
program ftcetri
implicit none
real a(5),b(5),D1,D
integer i
write(*,*) 'Unesi prvi niz'
do i=1,5
read(*,*) a(i)
end do
write(*,*) 'Unesi drugi niz'
do i=1,5
read(*,*) b(i)
end do
D1=0
do i=1,5
D1=D1+(a(i)-b(i))**2
end do
D=sqrt(D1)
write(*,*) 'Vrijednost izraza je',D
end
program ftpet
implicit none
real a(10),suma
integer i,m,k,n,x,y
write(*,*)'unesi niz'
do i=1,10
read(*,*) a(i)
end do
x=a(1)
m=1
do i=2,10
if (a(i).ge.x) then
x=a(i)
m=i
end if
end do
write(*,*)'najveci je',x,'na mjestu',m
y=a(1)
k=1
do i=2,10
if (a(i).le.y) then
y=a(i)
k=i
end if
end do
write(*,*)'najmanji je',y,'na mjestu',k
if (m.gt.k) then
suma=0
do i=1,10
suma=suma+a(i)
end do
write(*,*)'suma svih elemenata tabele je:',suma
end if
end
program ftsest
implicit none
integer a(100),B,S,i,n
write(*,*) 'Unesi broj clanova niza'
100 read(*,*) n
if (n.gt.100) then
write(*,*) 'Prevelik niz ponovi unos'
goto 100
else
write(*,*) 'Unesi clanove niza'
do i=1,n
read(*,*) a(i)
end do
B=0
S=0
do i=1,n
if (mod(a(i),2).eq.0) then
B=B+a(i)
else
S=S+a(i)
end if
end do
write(*,*) 'Suma parnih brojeva niza je',B,'a neparnih',S
end if
end
program ftsedam
implicit none
real a(5),b(5),s,v,p
integer i
write(*,*) 'Unesi prvi niz'
do i=1,5
read(*,*) a(i)
end do
write(*,*) 'Unesi drugi niz'
do i=1,5
read(*,*) b(i)
end do
s=0
do i=1,5
s=s+(a(i)-b(i))**2
end do
if (s.lt.5) then
v=tan(s)+exp(s)
write(*,*) v
else
p=abs(s-log(s))
write(*,*) p
end if
end
program ftosam
implicit none
real a(10),S
integer i,k
write(*,*) 'Unesi clanove niza'
do i=1,10
read(*,*) a(i)
end do
do i=1,10
do k=1,10
if (k.eq.i) goto 100
S=0
S=S+a(i)+a(k)
if (S.eq.12) write(*,*) a(i),a(k)
100 end do
end do
end
program fcjedan
implicit none
real a(1000),pom
integer i,j,n
write(*,*) 'unesi broj clanova niza'
read(*,*) n
write(*,*) 'unesi clanove niza'
do i=1,n
read(*,*) a(i)
end do
do i=1,n-1
do j=i+1,n
if (a(i).gt.a(j)) then
pom=a(i)
a(i)=a(j)
a(j)=pom
end if
end do
end do
write(*,*) 'sortirani niz je'
do i=1,n
write(*,*) a(i)
end do
end
program fcdva
implicit none
real a(3,3),b(3,3),c(3,3)
integer i,j,k
write(*,*) 'unesi clanove matrice a'
do i=1,3
do j=1,3
read(*,*) a(i,j)
end do
end do
write(*,*) 'unesi clanove druge matrica'
do i=1,3
do j=1,3
read(*,*) b(i,j)
end do
end do
do i=1,3
do j=1,3
c(i,j)=0
do k=1,3
c(i,j)=c(i,j)+a(i,k)*b(k,j)
end do
end do
end do
do i=1,3
write(*,*) (a(i,j),j=1,3),(b(i,j),j=1,3),(c(i,j),j=1,3)
end do
end
program fctri
implicit none
integer a(10,10),i,j,T,K,R,n
100 write(*,*) 'Unesi dimenziju matrice n<11'
read(*,*) n
if (n.le.0) then
write(*,*) 'Dimenzija je veca od 0'
goto 100
else
write(*,*) 'Unesi matricu po vrstama'
do i=1,n
do j=1,n
read(*,*) a(i,j)
end do
end do
write(*,*) 'Matrica je'
do i=1,n
write(*,*) (a(i,j),j=1,n)
end do
T=0
do i=1,n
T=T+a(i,i)
end do
write(*,*) 'Trag matrice je',T
do j=1,n
K=0
do i=1,n
K=K+a(i,j)
end do
write(*,*) 'Suma kolone',j,'je',K
end do
do i=1,n
R=0
do j=1,n
R=R+a(i,j)
end do
write(*,*) 'Suma reda',i,'je',R
end do
end if
end
program fccetri
implicit none
real a(3,3),d,x,suma,proizvod
integer i,j,n
n=3
write(*,*)'unesi elemente matrice A'
do i=1,n
read(*,*) (a(i,j),j=1,n)
end do
write(*,*)'matrica A'
do i=1,n
write(*,*)(a(i,j),j=1,n)
end do
i=3
x=0
do j=1,n
x=x+a(i,j)
end do
write(*,*) 'suma treceg reda matrice je',x
d=(SQRT(1-((SIN(x)**2)*COS(x/2))))/(x**2)
if (d.lt.1) then
proizvod=1
do i=1,n
do j=1,n
proizvod=proizvod*a(i,j)
end do
end do
write(*,*) 'proizvod svih elemenata matrice je',proizvod
else
suma=0
do i=1,n
do j=1,n
suma=suma+a(i,j)
end do
end do
write(*,*) 'suma svih elemenata matrice je',suma
end if
end
program fcpet
implicit none
real x(999),d(999),a,s,b,dx,e,f
integer n,i
write(*,*)'koliko zelite mjerenja'
read(*,*) n
write (*,*) 'Unesi vrijednosti direktno mjerene fizikalne velicine'
do i=1,n
read (*,*) x(i)
end do
a=0.
do i=1,n
a=a+x(i)
end do
s=a/n
write (*,*) 'Srednja vrijednost date velicine je:',s
do i=1,n
d(i)=abs(s-x(i))
end do
b=0.
do i=1,n
b=b+d(i)
end do
dx=b/n
write (*,*) 'Srednja apsolutna greska pri mjerenju je:',dx
e=dx/s
f=0.
do i=1,n
f=f+d(i)**2
f=f/(n-1)
end do
write (*,*) 'Relativna greska pri mjerenju je:',e
write (*,*) 'Srednja kvadratna greska pri mjerenju je:',sqrt(f)
end
program fcsest
implicit none
integer a(10,10),b(10,10),c(10,10),d(10,10),i,j,n,m,k,l,o
write(*,*) 'Unesi format prve matrice,nxm'
read(*,*) n,m
write(*,*) 'Unesi format druge matrice,kxl'
read(*,*) k,l
write(*,*) 'Unesi prvu matricu po vrstama'
do i=1,n
do j=1,m
read(*,*) a(i,j)
end do
end do
write(*,*) 'Unesi drugu matricu po vrstama'
do i=1,k
do j=1,l
read(*,*) b(i,j)
end do
end do
if (n.eq.m.and.k.eq.l.and.n.eq.k) then
do i=1,n
do j=1,n
c(i,j)=a(i,j)+b(i,j)
end do
end do
do i=1,n
write(*,*) (c(i,j),j=1,n)
end do
else if (m.eq.k) then
do i=1,n
do j=1,l
d(i,j)=0
do o=1,m
d(i,j)=d(i,j)+a(i,o)*b(o,j)
end do
end do
end do
do i=1,n
write(*,*) (d(i,j),j=1,l)
end do
else
write(*,*) 'Nije odgovarajuci format za mnozenje'
end if
end
program fcsedam
implicit none
integer a(10,10),b(10,10),c(10,10),d(10,10),kom(10,10),i,j,k,n
integer akom(10,10)
write(*,*) 'Unesi dimenziju matrice manju od 11'
read(*,*) n
write(*,*) 'Unesi elemente prve matrice po vrstama'
do i=1,n
do j=1,n
read(*,*) a(i,j)
end do
end do
write(*,*) 'Unesi elemente druge matrice po vrstama'
do i=1,n
do j=1,n
read(*,*) b(i,j)
end do
end do
do i=1,n
do j=1,n
c(i,j)=0
do k=1,n
c(i,j)=c(i,j)+a(i,k)*b(k,j)
end do
end do
end do
do i=1,n
do j=1,n
d(i,j)=0
do k=1,n
d(i,j)=d(i,j)+b(i,k)*a(k,j)
end do
end do
end do
do i=1,n
do j=1,n
kom(i,j)=c(i,j)-d(i,j)
end do
end do
do i=1,n
do j=1,n
akom(i,j)=c(i,j)+d(i,j)
end do
end do
write (*,*) 'Komutator matrica je'
do i=1,n
write(*,*) (kom(i,j),j=1,n)
end do
write (*,*) 'Antikomutator matrica je'
do i=1,n
write (*,*) (akom(i,j),j=1,n)
end do
end
program fcosam
implicit none
integer a(10,10),i,j,n,s1,s2,P
write(*,*) 'Unesi dimenziju kvadratne matrice'
read(*,*) n
write(*,*) 'Unesi clanove matrice po vrstama'
do i=1,n
do j=1,n
read(*,*) a(i,j)
end do
end do
s1=0
do i=1,n-1
do j=i+1,n
s1=s1+a(i,j)
end do
end do
s2=0
do i=2,n
do j=1,i-1
s2=s2+a(i,j)
end do
end do
if (s1.gt.s2) then
P=1
do i=1,n
P=P*a(i,i)
end do
write(*,*) 'proizvod elemenata na glavnoj dijagonali je',P
else
P=1
j=n
do i=1,n
P=P*a(i,j)
j=j-1
end do
write(*,*)'proizvod elemenata na sporednoj dijagonali je',P
end if
end
C napraviri program koji za dato k i l racuna k nad l. napraviti podprogram za racunanje faktorijela datog broja
program fpjedan
implicit none
integer k,l,faktorijel,faktk,faktl,faktkl
real x
external faktorijel
write(*,*) 'unijeti vrijednosti za k i l'
read(*,*) k,l
faktk=faktorijel(k)
faktl=faktorijel(l)
faktkl=faktorijel(k-l)
x=(faktk)/(faktl*faktkl)
write(*,*) 'vrijednost k nad l je',x
end
C podprogram
integer function faktorijel(n)
integer n, i, f
f=1
do i=1,n
f=f*i
end do
faktorijel=f
end
C napraviti program koji ce racunati izvod f-je u tacki x pomocu formule (f(x+a)-f(x))/a, gdje je a mnogo <1
program fpdva
implicit none
real x,a,f,d
external f
write(*,*) 'unesi tacku u kojoj trazimo izvod'
read(*,*) x
a=0.1
d= (f(x+a)-f(x))/a
write(*,*) 'vrijednost izvoda u tacki',x,'je',d
end
C podprogram
real function f(x)
real x
f=cos(x)
end
c ucitati matricu dimenzija nxn i vektor duzine n i naci njihov proizvod. napraviti podprogram za ucitavanje, mnozenje i ispisivanje
program fptri implicit none
integer a(10,10), b(10), c(10), n
write(*,*) 'ucitaj dim matrice i vektora'
read(*,*) n
call ucitaj(n,a,b)
call mnozi (n,a,b,c)
call ispisi(n,c)
end
C prvi podprogram
subroutine ucitaj(n,a,b)
integer a(10,10), b(10), n, i, j
write(*,*) 'unesi elemente matrice'
do i=1,n
do j=1,n
read(*,*) a(i,j)
end do
end do
write(*,*) 'unesi komponente vektora'
do i=1,n
read(*,*) b(i)
end do
end
C drugi podprogram
subroutine mnozi(n,a,b,c)
integer a(10,10), b(10), c(10), n, i, j
do i=1,n
c(i)=0
do j=1,n
c(i)=c(i)+a(i,j)*b(j)
end do
end do
end
C treci podprogram
subroutine ispisi(n,c)
integer n,c(10)
write(*,*) 'proizvod matrice i vektora je'
do i=1,n
write(*,*) c(i)
end do
end
program fpcetri implicit none
real a,b,h,g,integral,K
integer i,n
write(*,*) 'Unesi granice integrala, i broj n'
read(*,*) a,b,n
h=(b-a)/n
K=1
do i=1,n-1
K=K+g(a+i*h)
end do
integral=h*(g(a)/2+K+g(b)/2)
write(*,*) 'Vrijednost integrala je',integral
end
real function g(t)
real t,f
f=cos(t)
g=f
end
C dato je n vektora sa po m komponenti. naci intenzitet svakog i skalarne produkte svakog sa svakim sem sa samim sobom
program fppet implicit none
integer a(15,10), b(15), n, m, i, j, k
real intenz, sp
write(*,*) 'unijeti broj vektora'
read(*,*) n
write(*,*) 'unijeti broj komponenti vektora'
read(*,*) m
if(n.lt.2) write(*,*) 'pogresan unos, pokusajte ponovo'
if(m.gt.15) write(*,*) 'pogresan unos, pokusajte ponovo'
write(*,*) 'ucitaj matricu koja se sastoji od vektora'
do i=1,m
do j=1,n
read(*,*) a(i,j)
end do
end do
do j= 1,n
write(*,*)'intenzitet vektora',j,'je'
do i=1,m
b(i)=a(i,j)
call intenzitet(b,intenz)
write(*,*) intenz
end do
end do
end
C podprogram
subroutine intenzitet(b,intenz)
integer b(15),i,m
real intenz
intenz=0
do i=1,m
intenz=sqrt(intenz+b(i))
end do
end
C unijeti podatke mjerenja u niz a(i). naci srednju vrijednost svih mjerenja, a zati prva dva, prva tri, itd.
program fpsest
implicit none
integer a(100), i, n
real srednja,suma
write(*,*) 'unesi broj mjerenja'
read(*,*) n
write(*,*) 'unesi vrijednosti mjerenja'
do i=1,n
read(*,*) a(i)
end do
call ukupna(a,n, srednja)
call pojedinacna(a,n,srednja)
end
C prvi podprogram
subroutine ukupna(a,n,srednja)
integer a(100), i, n
real srednja, suma
suma=0
do i=1,n
suma=suma+a(i)
end do
srednja=suma/n
write(*,*) 'srednja vrijednost mjerenja je', srednja
end
C drugi podprogram
subroutine pojedinacna(a,n, srednja)
integer a(100), i, n
real srednja, suma
suma=0
srednja=0
do i=1,n
suma=suma+a(i)
srednja=suma/i
write(*,*) 'srednja vrijednost mjerenja',i,'je', srednja
end do
end
C Napraviti program koji ce tabelirati vrijednosti x i y komponente vektora polozaja kao funkciju vremena kod elektrona koji ulijece u homogeno elektricno polje brzinom v0 pod uglom a u odnosu na x osu. Predpostaviti da je elektricno polje usmjereno duz y ose. Pocetnu brzinu v0, ugao a, jacinu polja E i vremenski korak dt unijeti sa konzole. Interval vremena odabrati od t=0 do trenutka kada je y komponenta vektora polozaja ponovo jednaka nuli.
program zad1
implicit none
real v0,a,E,dt,m,x,y,q,t,tl ! tl je vrijeme leta
q=1.6E-19
m=9.1E-31
write(*,*) 'Unesite pocetnu brzinu'
read(*,*) v0
write(*,*) 'Unesite ugao pod kojim ulijece elektron'
read(*,*) a
write(*,*) 'unesite jacinu elektricnog polja'
read(*,*) E
write(*,*) 'unesite vremenski korak'
read(*,*) dt
tl=2*v0*m*sin(a)/(q*E)
t=0
do while (y.ge.0)
x=v0*cos(a)*t
y=v0*sin(a)*t-(q*E*t**2)/(2*m)
if (y.ge.0) then
write(*,*) t,x,y
else
write(*,*) t,x
write(*,*) 'y komponenta vektora polozaja je manja od 0'
end if
t=t+dt
end do
end
C Ucitati niz od N elemenata (5<=N<=20) i
C a) naci sumu i produkt elementa niza
C b) sortirati niz od veceg ka manjem
program zad2
implicit none
integer a(20),i,j,n,suma,prod,pom
write(*,*) 'Unesite broj elemenata niza'
100 read(*,*) n
if(n.lt.5.or.n.gt.20) then
write(*,*) 'Izvan zadanog opsega je, ponovite unos'
goto 100
end if
write(*,*) 'Unesite elemente niza'
do i=1,n
read(*,*) a(i)
end do
suma=0
do i=1,n
suma=suma+a(i)
end do
write(*,*) 'Suma elemenata niza je', suma
prod=1
do i=1,n
prod=prod*a(i)
end do
write(*,*) 'Produkt elemenata niza je', prod
do i=1,n
do j=1,n
pom=a(i)
if(a(i).gt.a(j)) then
a(i)=a(j)
a(j)=pom
end if
end do
end do
write(*,*) 'Sortirani niz je'
do i=1,n
write(*,*) a(i)
end do
end
C Ucitati elemente kvadratne matrice A. Naci sumu elemenata iznad
C glavne dijagonale s1 i sumu elemenata ispod glavne dijagonale s2.
C Ako je s1>s2 naci proizvod elemenata na glavnoj dijagonali, a
C ako nije naci proizvod elemenata na sporednoj dijagonali.
C Napraviti potprogram za racunanje proizvoda elemenata
C jednodimenzionalnog niza.
program zad3
implicit none
integer i,j,n,A(10,10),s1,s2,B(10),C(10),gd,sd,p !gd je glavna dijagonala, a sd je sporedna dijagonala
write(*,*) 'Ucitati dimenziju matrice'
100 read(*,*) n
if(n.lt.2.or.n.gt.10) then
write(*,*) 'Dimenzija matrice nije uredu,ponovo ucitati'
goto 100
end if
write(*,*) 'Unijeti elemente matrice'
do i=1,n
do j=1,n
read(*,*) A(i,j)
end do
end do
s1=0
do i=1,n-1
do j=i+1,n
s1=s1+A(i,j)
end do
end do
s2=0
do i=2,n
do j=1,n-1
s2=s2+A(i,j)
end do
end do
do i=1,n
B(i)=A(i,i)
end do
do i=1,n
C(i)=A(i,n+1-i)
end do
if(s1.gt.s2) then
call proizvod(n,B,gd)
write(*,*) 'Proizvod elemenata na glavnoj dijagonali je',gd
else
call proizvod(n,C,sd)
write(*,*) 'Proizvod elemenata na sporednoj dijagonali je',sd
end if
end
C potprogram za racunanje proizvoda elemenata jednodimenzionalnog
C niza
subroutine proizvod(n,A,p)
integer A(10),n,k,p
p=1