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

 

  Kandrade disse:

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

 

 

 

 

  Kandrade disse:

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

 

 

  Kandrade disse:

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.