Você está na página 1de 2

1 !

2)Dadas duas matrizes A(nxm) e B(pxq), elabore um programa que verifique se


possvel fazer
2 ! o produto A*B e, em caso afirmativo, apresente o resultado da operao.
3
4 program ProdutoMatricial
5 implicit none
6 integer A(100,100),B(100,100),aux,linA,linB,ColA,ColB
7 integer C(100,100),i,j,k,m,n
8
9 write (*,*) 'Programa que calcula o produto entre duas matrizes'
10
11 write(*,*) 'programa que calcula o produto matricial'
12
13 write(*,*) 'digite o nmero de linhas da matriz A'
14 read(*,*) linA
15
16 write(*,*) 'digite o nmero de colunas da matriz A'
17 read(*,*) ColA
18
19 write(*,*) 'digite o nmero de linhas da matriz B'
20 read(*,*) LinB
21
22 write(*,*) 'digite o nmero de colunas da matriz B'
23 read(*,*) ColB
24
25 !O programa deve verificar se o nmero de colunas da matriz A igual ao nmero de
26 !linhas da Matriz B.
27
28 If (ColA .ne. LinB) then
29 write (*,*) 'No possvel multiplicar A e B'
30 else
31
32 ! Ler os elementos da matriz A
33
34 write (*,*), 'digite os elementos de A linha a linha'
35
36 do i=1,LinA
37 do j=1,ColA
38 write (*,*) 'digite A',i,j
39 read(*,*) A(i,j)
40 end do
41 end do
42
43 ! Ler os elementos da matriz B
44
45 write (*,*), 'digite os elementos de B linha a linha'
46
47 do i=1,LinB
48 do j=1,ColB
49 write (*,*) 'digite B',i,j
50 read(*,*) B(i,j)
51 end do
52 end do
53 end if
54
55 ! feito o produto de A e B
56
57
58 do m =1,LinA
59 do n =1,ColB
60 aux = 0
61 do k =1,ColA
62 aux = aux + (A(m,k)*B(k,n))
63 end do
64 C(m,n)= aux
65 enddo
66 enddo
67
68 !O programa imprime na tela as matrizes lidas e a matriz produto
69
70 write (*,*), 'A matriz A lida foi:'
71
72 do i=1,LinA
73 write(*,*) (A(i,j),j=1,ColA)
74 end do
75
76
77 write (*,*), 'A matriz B lida foi:'
78
79 do i=1,LinB
80 write (*,*) (B(i,j),j=1,ColB)
81 end do
82
83 write (*,*), 'A matriz C produto :'
84
85 do i=1,LinA
86 write (*,*) (C(i,j),j=1,ColB)
87 end do
88
89
90
91 stop
92 end
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112