Ir ao conteúdo
  • Cadastre-se

VisualG Exercício 6 - Matrizes - (Introdução aos Algoritmos)


Posts recomendados

Exercício 6

Escrever um algoritmo que lê uma matriz M(6,6) e calcula as somas das partes hachuradas. Escrever
a matriz M e as somas calculadas.

 

(uma série de imagens para criar no algoritmo)

 

uma em especial que eu chamei de TrianguloOesteLeste (que é a que eu estou com dúvida).

imagem segue em anexo.

 

 

20171025_081731.thumb.jpg.e323d9ef893d6c556a8f6108bbfd1837.jpg

 

 

 

 

 

 

 

Não sei se essa é a forma mais eficiente. O que eu pensei foi em dividir em duas condicionais simétricas: a parte superior e a parte inferior. O que eu fiz foi apenas iniciar mas estou com dúvida em como deixar o espaço correto e como fazer ele escrever do lado leste.

 

o que eu fiz segue abaixo:

procedimento TrianguloLesteOeste()
var t: inteiro
inicio
      Para i <- 2 ate 5 faca
        Para j <- 1 ate 6 faca
          Se (j < 4) e (i > j) então
            Escreva(M[i,j]:20)
          FimSe
        FimPara
          EscrevaL()
      FimPara
fimprocedimento

 

 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@Ayron Matos    pelo código que você postou parece que você está usando o visualg, então para ler essa matriz seria assim :

 

matriz : vetor[1..6,1..6] de inteiro

depois você coloca dois loop para fazer a entrada de dados assim :

para i de 1 ate 6 faca
  para j de 1 ate 6 faca
    leia(matriz[i,j])
  fimpara
fimpara

porém não sei calcular as partes achuradas pois não consegui entender o que significa essas partes achuradas .    e no visualg é difícil fazer desenhos .   aqui um código que faz a primeira parte do desenho :

Algoritmo "desenho2"
Var
i,j,c,c2,c3,c4 : inteiro
m : vetor[1..6,1..6] de inteiro
Inicio
c :=2
c2:=3
c3:=19
c4:=23
Para i <- 1 ate 17 faca
  Para j <- 1 ate 24 faca
    se (j<c) ou (j=c2)ou (j=c2+3)ou(j=c3)ou(j=c3+3)ou(j>c4)ou(i=1)ou(i=17)ou(j=24) ENTÃO
      Escreva("#")
    senao
      escreva(" ")
    fimse
  FimPara
  Se i<9 ENTÃO
    c:=c+1
    c4:=c4-1
  senao
    c:=c-1
    c4:=c4+1
  fimse
  c2:=c2+1
  c3:=c3-1
  escrevaL()
FimPara
escreval("Tecle Enter Para Sair")
leia(i)
Fimalgoritmo

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá @Ayron Matos.

 

Alguns pontos:

 

Em 25/10/2017 às 09:03, Ayron Matos disse:

uma em especial que eu chamei de TrianguloOesteLeste (que é a que eu estou com dúvida).

Se é a parte que está com dúvidas, as outras já estão prontas, certo?

 

 

Vamos lá:

Em 25/10/2017 às 09:03, Ayron Matos disse:

O que eu pensei foi em dividir em duas condicionais simétricas: a parte superior e a parte inferior. O que eu fiz foi apenas iniciar mas estou com dúvida em como deixar o espaço correto e como fazer ele escrever do lado leste.

 

Acho interessante a forma de dividir em metades... e vou além... tente dividir por quadrantes (4 partes)... como num plano cartesiano. Daí tente ler apenas o 2º quadrante (cima/esquerda). Esqueça o resto. Deixe isso funcionando. Após tente ler apenas o 1º ou 3º quadrante. Sugiro o 3º, ou seja, ao ler o 3º (e como já sabe ler o 1º) estará pronto para ler a metade esquerda. Depois, tenta ler apenas o 1º quadrante... esqueça os outros. Depois ler o 4º, que será análogo ao 3ª, assim como o 1º tem analogia ao 2º.

 

Depois de entender cada quadrante. Tenta organizar para ler tudo numa sequência correta.

 

 

No aguardo.

 

Link para o comentário
Compartilhar em outros sites

  • 8 meses depois...
algoritmo "triangulador"
// Função : divide uma matriz em setores
// Autor : Ayron Gabryew Dias da Costa Matos
// Data : 10/07/2018
// Seção de Declarações 
var
   m: vetor[1..6, 1..6] de inteiro
   c,d,i,j: inteiro
inicio
      Para i := 1 ate 6 faca
           Para j := 1 ate 6 faca
                Leia(m[i,j])
           FimPara
      FimPara
      LimpaTela
      Para i := 2 ate 3 faca
           Para j := 1 ate 6 faca
                c <- 7-i
                d <- i-1
                Se (j>c) ou (j<=d) então
                   Escreva(m[i,j]:5)
                senao
                   Escreva("     ")
                FimSe
           FimPara
           EscrevaL()
      FimPara
      Para i := 4 ate 5 faca
           Para j := 1 ate 6 faca
                c <- 7-i
                Se (j<c) ou (j>i) então
                   Escreva(m[i,j]:5)
                senao
                   Escreva("     ")
                FimSe
           FimPara
           EscrevaL()
      FimPara

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Vide enunciado:

Em 25/10/2017 às 09:03, Ayron Matos disse:

[1] Escrever um algoritmo que lê uma matriz M(6,6) e [2] calcula as somas das partes hachuradas. [3] Escrever a matriz M e as somas calculadas.

 

Dividi os requisitos em 3 partes... pelo que eu vi, das 3, você só fez a [1].

 

Então, executando o seu código, me pareceu que você "apenas" fez "imprimir a parte da matriz que que representa o tal TrianguloOesteLeste", mas isso nem sequer foi solicitado... além do [1], precisa fazer o [2] e [3].

 

 

No aguardo.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Sobre:

2 minutos atrás, Ayron Matos disse:

haha nem lembrava mais, mas essa era parte mais difícil me ajuda em um tópico novo que postei por favor :)

 

@Ayron Matos, uma coisa é uma coisa, outra coisa é outra coisa. São 2 universos (escopos) distintos. Aqui nesse tópico, precisaria corrigir e implementar o código para satisfazer o enunciado deste tópico... ou seja, retire essa "impressão da parte da matriz", e implemente o [2] e [3] citado na minha postagem anterior.

 

No aguardo.

 

PS: o outro tópico estou olhando, lá é lá, aqui é aqui...

 

 

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...