program statvett1 integer::i,n,indxmax,indymax real,allocatable,dimension(:)::x,y real:: xmedia,ymedia,xmax,ymax read(5,*)n allocate (x(n),y(n)) do i=1,n read(5,*) x(i),y(i) enddo xmedia=vmed(x,n) ymedia=vmed(y,n) xmax=vmax(x,n,indxmax) ymax=vmax(y,n,indymax) write(6,*)'xmedia=',xmedia write(6,*)'ymedia=',ymedia write(6,*)'xvar=',varianza(x,xmedia,n) write(6,*)'yvar=',varianza(y,ymedia,n) write(6,*)'xmax=',xmax," all'indice: ",indxmax write(6,*)'ymax=',ymax,' all''indice: ',indymax write(6,*)'xmin=',vmin(x,n) write(6,*)'ymin=',vmin(y,n) end program statvett1 real function vmed(v,n) integer:: n real ,dimension(1)::v vmed=0 do i=1,n vmed=vmed+v(i) enddo vmed=vmed/n end function vmed real function vmax(v,n,indvmax) integer,intent(in):: n real,intent(in) ,dimension(1)::v integer,intent(out):: indvmax vmax=v(1) indvmax=1 do i=2,n if(vmax < v(i))then vmax=v(i) indvmax=i endif enddo end function vmax real function vmin(v,n) integer:: n real ,dimension(1)::v vmin=v(1) do i=1,n if(vmin > v(i))vmin=v(i) enddo end function vmin real function varianza(v,vmedia,n) integer,intent(in):: n real,intent(in) ,dimension(1)::v real,intent(in) :: vmedia varianza=0 do i=1,n varianza=varianza+(v(i)-vmedia)**2 enddo varianza=varianza/n end function varianza