Ir para conteúdo

POWERED BY:

Arquivado

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

Gustavo Rodrigues Torre

[Resolvido] Menor valor da Diagonal Secundaria da Matriz

Recommended Posts

Creio que a maior dificuldade desse algoritmo é identificar a diagonal secundaria.

 

A diagonal secundário é identificada pela soma dos índices i + j resultando em 6 no caso da matriz 5x5.

 

Tente usar essa informacão para fazer o algoritmo.

 

se (i+j) > 6 faca // faca o teste para achar o menor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E como eu faco este teste?

Criando uma variavel menor para colocar os valores da matriz?

Kandrade poderia me passar um exemplo?

 

Creio que a maior dificuldade desse algoritmo é identificar a diagonal secundaria.

 

A diagonal secundário é identificada pela soma dos índices i + j resultando em 6 no caso da matriz 5x5.

 

Tente usar essa informacão para fazer o algoritmo.

 

se (i+j) > 6 faca // faca o teste para achar o menor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Atribua um valor baixo a menor, por exemplo 0.

 

menor <- 0

 

agora entrando no laco faco o teste descrito acima, caso o teste seja verdadeiro modifique o valor de menor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kandrade agora esta certo?

 

algoritmo "Menor valor DS "

//Função: Faça um algoritmo/programa que receba uma matriz A(5,5) e retorne o

//menor valor dos elementos abaixo da diagonal secundária.

// Data : 30/10/07

// Seção de Declarações

var

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

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

menor : real

inicio

// Seção de Comandos

menor <- 0

Para i de 1 ate 5 faca

Para j de 1 ate 5 faca

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

leia (matA[i,j])

 

se (i+j > 6) entao

menor <- matA[i,j]

fimse

 

fimpara

fimpara

escreval

 

 

escreva("A matriz A é:")

escreval

para i de 1 ate 5 faca

escreval

para j de 1 ate 5 faca

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

fimpara

fimpara

escreval

escreval("O menor valor abaixo da diagona secundária e = ",menor)

fimalgoritmo

 

 

Atribua um valor baixo a menor, por exemplo 0.

 

menor <- 0

 

agora entrando no laco faco o teste descrito acima, caso o teste seja verdadeiro modifique o valor de menor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja esse trecho:

 

se (i+j > 6) entao
menor <- matA[i,j]
fimse

menor sempre será o último valor abaixo da diagonal secondária.

 

Eu errei numa coisa.

 

Como voce precisa achar o menor valor, então antes de entrar no laço atribua um valor alto a menor, algo do tipo:

 

menor <- 1000

 

Nesse se acima voce identifica os elementos abaixo da diagonal secundária, precisa identificar agora se o elemento é menor que "menor".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora esta certo?

 

menor <- 1000

Para i de 1 ate 5 faca

Para j de 1 ate 5 faca

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

leia (matA[i,j])

 

se (i+j > 5) entao

se (menor < matA[i,j]) entao

menor <- mat[i,j]

fimse

fimse

fimpara

fimpara

escreval

 

 

escreva("A matriz A é:")

escreval

para i de 1 ate 5 faca

escreval

para j de 1 ate 5 faca

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

fimpara

fimpara

escreval

escreval("O menor valor abaixo da diagona secundária e = ",menor)

fimalgoritmo

 

 

Veja esse trecho:

 

se (i+j > 6) entao
menor <- matA[i,j]
fimse

menor sempre será o último valor abaixo da diagonal secondária.

 

Eu errei numa coisa.

 

Como voce precisa achar o menor valor, então antes de entrar no laço atribua um valor alto a menor, algo do tipo:

 

menor <- 1000

 

Nesse se acima voce identifica os elementos abaixo da diagonal secundária, precisa identificar agora se o elemento é menor que "menor".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou tentar te explicar o que está errado.

 

Para achar o menor na condição desse algoritmo voce precisa não apenas identificar os que estão abaixo da diagonal secundária:

se (i+j > 6) entao

 

Voce precisa achar o menor.

 

Então voce precisa de dois se aninhados para modificar o valor de menor.

 

se (i+j > 6) entao
   se (matriz[i][j] < menor) entao
	  //modifique o valor de menor
   fimse
fimse

Compartilhar este post


Link para o post
Compartilhar em outros sites

E como eu vou modificar o valor menor?

 

Vou tentar te explicar o que está errado.

 

Para achar o menor na condição desse algoritmo voce precisa não apenas indentificar os que estão abaixo da diagonal secundária:

se (i+j > 6) entao

 

Voce precisa achar o menor.

 

Então voce precisa de dois se aninhados para modificar o valor de menor.

 

se (i+j > 6) entao
   se (matriz[i][j] < menor) entao
	  //modifique o valor de menor
   fimse
fimse

 

Usei isto e parece que funcionou legal

 

se (i+j > 6) entao

se (matA[i,j] < menor) entao

//modificando o valor de menor

menor <- matA[i,j]

fimse

fimse

 

 

E como eu vou modificar o valor menor?

 

Vou tentar te explicar o que está errado.

 

Para achar o menor na condição desse algoritmo voce precisa não apenas indentificar os que estão abaixo da diagonal secundária:

se (i+j > 6) entao

 

Voce precisa achar o menor.

 

Então voce precisa de dois se aninhados para modificar o valor de menor.

 

se (i+j > 6) entao
   se (matriz[i][j] < menor) entao
	  //modifique o valor de menor
   fimse
fimse

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu que te pergunto.

 

Quando entrar nos dois "se" a pergunta será:

 

Existe um elemento da matriz que está abaixo da linha secundária que é menor que sua variável que guarda o menor dos números abaixo dessa diagonal. O que voce quer eu faça com ela?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não sei

Mais o algoritmo me mostrou o valor menor usando uma matriz 3x3

Mais então como eu faria com o outro se?

 

Eu que te pergunto.

 

Quando entrar nos dois "se" a pergunta será:

 

Existe um elemento da matriz que está abaixo da linha secundária que é menor que sua variável que guarda o menor dos números abaixo dessa diagonal. O que voce quer eu faça com ela?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então eu posso deixar como eu fiz?

 

se (i+j > 6) entao

se (matA[i,j] < menor) entao

//modificando o valor de menor

menor <- matA[i,j]

fimse

fimse

fimpara

fimpara

escreval

 

 

Se voce achou um valor menor que menor, então atribua a ele o novo valor.

Exatamente com voce fez.

 

menor <- mat[i,j]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode sim, agora é só testar.

 

 

Então eu posso deixar como eu fiz?

 

se (i+j > 6) entao

se (matA[i,j] < menor) entao

//modificando o valor de menor

menor <- matA[i,j]

fimse

fimse

fimpara

fimpara

escreval

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testei com valores aleatória e deu certo

Problema então resolvido?

 

Pode sim, agora é só testar.

 

 

Então eu posso deixar como eu fiz?

 

se (i+j > 6) entao

se (matA[i,j] < menor) entao

//modificando o valor de menor

menor <- matA[i,j]

fimse

fimse

fimpara

fimpara

escreval

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.