Program vettori implicit none integer, parameter :: idim=100 real, dimension(idim)::a,b,c77,c95,d77,d95,e77,e95 integer :: i,n ! Legge un file di coppie di numeri a e B ! ! ! calcola somme prodotti e sqrt(a**2+b**2) ! in stile classico e in stile Fortran 90 read(5,*)n if(n.gt.idim) then write(6,*)'non funziona, dimensione massima = ',idim stop endif do i=1,n read(5,*)a(i),b(i) enddo ! operazioni in stile iterativo (Fortran IV e 77) do i=1,n c77(i)=a(i)+b(i) d77(i)=a(i)*b(i) e77(i)=sqrt(a(i)**2+b(i)**2) enddo ! operazioni in stile vettoriale (Fortran 90 e successivi) ! fa idim operazioni) c95=a+b d95=a*b e95=sqrt(a**2+b**2) ! le stesse sul range di indici realmente utilizzato ! fa n operazioni c95(1:n)=a(1:n)+b(1:n) write(6,*)'--------------------------------------------------------------------' write(6,*)' A B C77 C95 D77 D95 E77 E95' write(6,*)'--------------------------------------------------------------------' do i=1,n write(6,'(i2,2f8.2," | ",6f8.2)') & i,a(i),b(i),c77(i),c95(i),d77(i),d95(i),e77(i),e95(i) enddo write(6,*)'------Esempi di Write-----' write(6,*)'--------------------------' ! do implicito write(6,'(10F6.1)')(a(i),i=1,n) ! subarray write(6,'(10F6.1)')a(1:n) write(6,'(10F6.1)')a(4:n) end Program vettori