program medianum implicit none integer,parameter::imax=1000 integer:: ierr,n,i real:: dato,somma,xmax,xmin,xmed real,dimension(imax)::x n=0 somma=0 xmax=-1e36 xmin=1e36 read(5,*,iostat=ierr) dato do while(ierr == 0) n=n+1 if(n <= imax)then x(n)= dato somma=somma+dato if(dato > xmax) xmax=dato if(dato < xmin) xmin=dato read(5,*,iostat=ierr) dato else write(6,"('Troppi dati, massimo:',i3)")imax write(6,"('Calcolo usando i primi ',i3)")imax n=imax exit endif enddo if (ierr <= 0) then write(6,"('Ho letto ',i2,' numeri')")n write(6,*)' somma=',somma xmed=somma/n write(6,*)' media=',xmed write(6,*)' max=',xmax write(6,*)' min=',xmin somma=0 do i=1,n somma=somma+ (x(i)-xmed)**2 enddo write(6,*)'Varianza= ',somma/n else write(6,*)'Errore numero:', ierr endif end program medianum