fortran uradjeni zadaci

48
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

Upload: sasa-gazibegovic

Post on 16-Apr-2015

1.146 views

Category:

Documents


48 download

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

do k=1,n

p=p*A(k)

end do

end