program DueNumeri implicit none real :: x1,x2,y1,y2,xmax,ymax,vmax,xmin,ymin,vmin,vmedia write(6,*)'Dammi 4 numeri (x1,x2,y1,y2)' read(5,*)x1,x2,y1,y2 xmax=vmax(x1,x2) ymax=vmax(y1,y2) write(6,*) 'xmax,ymax',xmax,ymax xmin=vmin(x1,x2) ymin=vmin(y1,y2) write(6,*) 'xmin,ymin',xmin,ymin write(6,*)"xmedia = ",vmedia(x1,x2) write(6,*)"ymedia = ",vmedia(y1,y2) call ord2(x1,x2) call ord2(y1,y2) write(6,*)'ordinati: ',x1,x2,y1,y2 end program DueNumeri subroutine ord2(v1,v2) ! ordina (crescente) i valori nei due parametri implicit none real :: v1,v2,t if(v1 > v2) then t=v1 v1=v2 v2=t endif end subroutine ord2 real function vmedia(v1,v2) implicit none real :: v1,v2 vmedia=(v1+v2)/2 end function vmedia !!$ integer function vmax(v1,v2) implicit none real :: v1,v2 if(v1 > v2) then vmax=v1 else vmax=v2 endif end function vmax real function vmin(v1,v2) implicit none real :: v1,v2 if(v1 < v2) then vmin=v1 else vmin=v2 endif end function vmin