mariagrazia89 (Normal User)
Newbie
Messaggi: 2
Iscritto: 01/12/2009
|
program sommamatrici
parameter (M=100)
parameter (K=3)
integer r,c,t,d
real a(K,M),b(K,M),Som(K,M)
c Inserimento prima matrice
write(*,*) 'Inserisci le componenti della prima matrice'
write(*,*) ' '
write(*,*) 'Inserisci il numero di righe della prima matrice'
read(*,*) r
write(*,*) 'Inserisci il numero di colonne della prima matrice'
read(*,*) c
c Memorizzo le componenti della prima matrice
do i=1,r
do j=1,c
write(*,*) 'Inserisci l''elemento in posizione: a(',i,',',j,')'
read(*,*) a(i,j)
enddo
enddo
c Inserimento seconda matrice
write(*,*) 'Inserisci le componenti della seconda matrice'
write(*,*) ' Per poter eseguire la somma tra due matrici e'' necessario che entrambe abbiamo la stessa dimensione'
write(*,*) 'Inserisci il numero di righe della seconda matrice'
read(*,*) t
write(*,*) 'Inserisci il numero di colonne della prima matrice'
read(*,*) d
c Memorizzo le componenti della seconda matrice
do i=1,r
do j=1,c
write(*,*) 'Inserisci l''elemento in posizione: b(',i,',',j,')'
read(*,*) b(i,j)
enddo
enddo
c Inserisco un controllo per verificare se è possibile eseguire la somma tra le matrici
if((r.eq.t).and.(c.eq.d))then
c Richiamo la subroutine riguardante la somma
call S(a,b,r,c,Som)
write(*,*) 'La somma tra le due matrici restituisce una nuova matrice le cui componenti sono'
c apro due cicli do per far scorrere righe e colonne della nuova matrice
do i=1,r
do j=1,c
write(*,*) 'c(',i,',',j,')=',Som(i,j)
enddo
enddo
endif
pause
stop
end
c Subroutine riguardante la somma
subroutine S(a,b,r,c,Som)
integer r,c
real a(r,c),b(r,c),Som(r,c)
c apro due cicli do per far scorrere righe e colonne matrice
do i=1,r
do j=1,c
Som(i,j)=a(i,j)+b(i,j)
enddo
enddo
end
|