Ir ao conteúdo
  • Cadastre-se

(Pascal) Multiplicação de elementos de uma matriz


viniciusbmatos

Posts recomendados

Tenho uma matriz de gif.latex?\120dpi&space;\mathrm{maior\_exp+1} linhas e gif.latex?\120dpi&space;\mathrm{fd} colunas.

Quero encontrar um modo de multiplicar um elemento de cada coluna e ir colocando num vetor.

Melhor exemplificar:

Se a matriz for

gif.latex?\120dpi&space;\begin{matrix}&space;7&4&94&3&13\\&space;1&2&6&7&4\\&space;5&4&10&8&9&space;\end{matrix}

Os elementos do vetor seriam:

7*4*94*3*13
7*4*94*3*4
7*4*94*3*9
7*4*94*7*13
7*4*94*7*4
7*4*94*7*9
7*4*94*8*13
7*4*94*8*4
7*4*94*8*9
7*4*6*3*13
7*4*6*3*4
7*4*6*3*9
7*4*6*7*13
.
.
.
5*4*10*8*4
5*4*10*8*9

Espero que consigam entender.

Isto seria possível? (o número de linhas e colunas é variável)

(Não estou fazendo curso, estou aprendendo por meio de apostilas. O que estou perguntando seria apenas parte de um programa.)

Agradeço desde já.

Link para o comentário
Compartilhar em outros sites

Multiplicar duas MAtrizes?....caso seja segue o codigo:

Program Multiplica(input,output);
VAR matrizA:ARRAY[1..50,1..50] OF REAL;
matrizB:ARRAY[1..50,1..50] OF REAL;
matrizR:ARRAY[1..50,1..50] OF REAL;
n,i,j,k:INTEGER;

Begin
writeln('Programa para calcular o resultado da multiplica‡Æo de 2 matrizes quadradas');
write('Qual a dimensÆo das matrizes ? ');
READLN(n);
writeln('Escreva os elementos da matriz A: ');
FOR i:=1 TO n DO
Begin
FOR j:=1 TO n DO
Begin
write('a',i,j,': ');
READLN(matrizA[i,j])
End
End;
writeln('Escreva os elementos da matriz B: ');
FOR i:=1 TO n DO
Begin
FOR j:=1 TO n DO
Begin
write('b',i,j,': ');
READLN(matrizB[i,j])
End
End;
{ Multiplica‡Æo das matrizes A e B }
FOR i:=1 TO n DO
Begin
FOR j:=1 TO n DO
Begin
matrizR[i,j]:=0;
FOR k:=1 TO n DO
matrizR[i,j]:=matrizR[i,j]+matrizA[i,k]*matrizB[k,j]
End
End;
writeln('A matriz resultado da multiplica‡Æo das matrizes A e B ‚ :');
FOR i:=1 TO n DO
Begin
FOR j:=1 TO n DO
write('r',i,j,matrizR[i,j],' ');
writeln
End;
End.

Link para o comentário
Compartilhar em outros sites

Pode dar o tópico como resolvido. Ainda estou desenvolvendo uma outra parte antes desta, então vou resumir o que fiz:

Minha matriz tinha colunas de 1 a "fd" e linhas de 0 a "medt". Na verdade, eu não queria que multiplicasse por todos os elementos da coluna, mas apenas até o "exp_f[coluna]", pois os outros elementos eram iguais a 1.

Eis o trecho:

procedure achar_divisores;
var passoX,passo,divatual,cont_divdes,x:integer;
label fdl,fim_achar_divisores;
begin
cont_divdes:=1;
for passoX:=fd downto 1 do descendo[passoX]:=0;
x:=fd;
fdl:
if descendo[x]>exp_f[x] then
begin
if x=1 then goto fim_achar_divisores;
descendo[x]:=0;
x:=x-1;
descendo[x]:=descendo[x]+1;
goto fdl;
end
else x:=fd;
divatual:=1;
for passo:=fd downto 1 do
begin
divatual:=divatual*descendo[passo];
end;
divdes[cont_divdes]:=divatual;
cont_divdes:=cont_divdes+1;
descendo[x]:=descendo[x]+1;
goto fdl;
fim_achar_divisores:
qtde_div:=cont_divdes-1;
end;

Talvez haja algum erro, mas por enquanto é isto. Já "descobri" um modo de fazer o que eu queria. Podem fechar o tópico.

Quando eu terminar o programa (acho que vai demorar mais de um mês), crio um tópico para que todos vejam.

Obrigado.

Link para o comentário
Compartilhar em outros sites

  • 2 meses depois...

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...