Ir para conteúdo

POWERED BY:

Arquivado

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

Gustavo Rodrigues Torre

[Resolvido] Multilicar Matriz

Recommended Posts

Faça uma função que receba, por parâmetro, uma matriz A(4,4) e retorna o produto dos elementos acima da diagonal principal e da diagonal secundária.

 

Eu não sei como calcular os valores acima da diagonal secundario

Kandrade poderia me ajudar?

O algoritmo esta aqui

 

algoritmo

// Data : 30/10/07

// Seção de Declarações

var

matA : vetor [1..4,1..4] de real

i, j: inteiro //os índice sempre inteiro

s,c, k, w : real

//s: MultiplicaçãoA

//c: Contagem dos elementos da DP

//k: MultiplicaçãoB

//w: Contagem dos elementos da DS

mp, ms : real

inicio

// Seção de Comandos

s <- 0 //Recebe somatorio dos elementos da diagonal principal

c <- 0 //Faz a contagem dos elementos da diagonal principal

k <- 0 //Recebe somatorio dos elementos da diagonal secundaria

w <- 0 //Faz a contagem dos elementos da diagonal secundaria

 

Para i de 1 ate 4 faca

Para j de 1 ate 4 faca

escreva("Digite um valor do elemento da linha" , i, ", coluna ",j, " da matriz A: ")

leia (matA[i,j])

 

se (i < j) entao

s <- s * matA[i,j]

c <- c + 1

fimse

 

se (i+j=4) entao

k <- k * matA[i,j]

w <- w + 1

fimse

 

fimpara

fimpara

escreval

mp <- s*c

ms <- k*w

 

escreva("A matriz A é:")

escreval

para i de 1 ate 4 faca

escreval

para j de 1 ate 4 faca

escreva (matA[i,j]," ")

fimpara

fimpara

escreval

escreval("A media dos elementos abaixo da diagonal principal eh =",mp)

escreval("A media dos elementos acima da diagonal secundaria eh =",ms)

 

fimalgoritmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

E a questão da multiplicação como eu faço?

Kandrade obrigado por ter me dito esta relação da Diagonal Secundário pq eu não estava conseguindo fazer

 

Acima da diagonal secundária são os elementos cujos índices somados é menor que 5, ou seja, i+j > 5

 

http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

se  ( (i + j) > 5) entao
   // voce criara um acumulador, só que ele não irá somar e sim multiplicar.
fimse

Quando voce usa um acumulador para somar, a variável que guarda esse valor deve ser iniciada com o elemento neutro da soma "0" e quando um acumulador é usado para multiplicar, a variável que guarda esse valor deve ser iniciada com o elemento neutro da multiplicacão "1".

 

Tente implementar isso que te falei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz assim mais esta dando erro

 

se (i < j) entao

s <- 1 * matA[i,j]

c <- s * 1

fimse

 

 

se (i+j<5) entao

k <- 1 * matA[i,j]

w <- 1 * k

fimse

 

 

 

 

se  ( (i + j) > 5) entao
   // voce criara um acumulador, só que ele não irá somar e sim multiplicar.
fimse

Quando voce usa um acumulador para somar, a variável que guarda esse valor deve ser iniciada com o elemento neutro da soma "0" e quando um acumulador é usado para multiplicar, a variável que guarda esse valor deve ser iniciada com o elemento neutro da multiplicacão "1".

 

Tente implementar isso que te falei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora esta certo?

 

 

algoritmo "Multiplicar elementos diagonal principal e secundaria"

//Função: Faça uma função que receba, por parâmetro, uma matriz A(4,4) e

//retorna o produto dos elementos acima da diagonal principal e da diagonal secundária.

// Data : 30/10/07

// Seção de Declarações

var

matA : vetor [1..4,1..4] de real

i, j: inteiro //os índice sempre inteiro

s,c, k, w : real

//s: MultiplicaçãoA(acm)

//c: Contagem dos elementos da DP

//k: MultiplicaçãoB(acm)

//w: Contagem dos elementos da DS

inicio

// Seção de Comandos

s <- 1 //Recebe somatorio dos elementos da diagonal principal

c <- 0 //Faz a contagem dos elementos da diagonal principal

k <- 1 //Recebe somatorio dos elementos da diagonal secundaria

w <- 0 //Faz a contagem dos elementos da diagonal secundaria

 

Para i de 1 ate 4 faca

Para j de 1 ate 4 faca

escreva("Digite um valor do elemento da linha" , i, ", coluna ",j, " da matriz A: ")

leia (matA[i,j])

 

se (i < j) entao

s <- s * matA[i,j]

c <- s + 1

fimse

//k <- 1

se (i+j>5) entao

k <- k * matA[i,j]

w <- k + 1

fimse

 

fimpara

fimpara

escreval

 

escreva("A matriz A é:")

escreval

para i de 1 ate 4 faca

escreval

para j de 1 ate 4 faca

escreva (matA[i,j]," ")

fimpara

fimpara

escreval

escreval("A multiplicação dos elementos abaixo da diagonal principal eh =",s)

escreval("A multiplicaçãodos dos elementos acima da diagonal secundaria eh =",k)

 

fimalgoritmo

 

 

Assim:

 

k <- 1

se (i+j<5) entao
   k <-  k* matA[i,j]
fimse

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.