Matriz Visualg

Home Fóruns Programação Básica Matriz Visualg

Visualizando 2 respostas da discussão
  • Autor
    Posts
    • #74068
      Martini
      Participante

      Beleza, pessoal.
      Estou estudando Lógica de Programação e Algoritmo usando o VisualG.
      Preciso de ajuda. Preciso fazer um triângulo com o visualg. Não estou chegando a uma lógica legal.
      Cheguei a isso, mas sei que falta algo.

      Algoritmo “triângulomatriz”

      Var
      mat: vetor[1..3, 1..5] de caractere
      l, c: inteiro

      Inicio

      Para l de 1 ate 3 faca
      Para c de 1 ate 5 faca
      FimPara
      FimPara

      Para l de 1 ate 3 faca
      Para c de 1 ate 5 faca
      mat[1,3] <- “x”
      mat[2,2] <- “x”
      mat[2,3] <- “x”
      mat[2,4] <- “x”
      mat[3,c] <- “x”
      FimPara
      FimPara

      Para l de 1 ate 3 faca
      Para c de 1 ate 5 faca
      Escreva(mat[l,c]:3)
      FimPara
      Escreval()
      FimPara
      Fimalgoritmo

    • #74193
      Michel Souza
      Participante

      Caro Martini, embora também seja curso de Lógica de Programação, Algoritmos, estamos usando a ferramenta Portugol Studio. Acredito que esteja fazendo um curso diferente, ainda que seja do mesmo assunto.
      Baseado no seu código, vi que vc usou um para aninhado vazio. Assim:
      `Para l de 1 ate 3 faca
      Para c de 1 ate 5 faca
      FimPara
      FimPara`
      Retira esse trecho de código, acredito que vai resolver.

    • #74339
      Tutora Mayla
      Mestre

      Martini, como o aluno Michel comentou há um laço que não está sendo utilizado, logo é possível removê-lo.
      Quanto a lógica para criar a pirâmide, repare que em cada nível descendo da pirâmide a quantidade de casas vazias de cada lado diminui.
      Por exemplo, no nível mais alto tem-se 2 espaços vazio, 1 espaço preenchido e 2 espaços vazios.
      No seguindo nível tem-se 1 espaço vazio, 3 espaços preenchidos e 1 espaço vazio.
      No terceiro nível tem-se 5 espaços preenchidos.

      Partindo dessa lógica é possível criar uma variável chamada distancia que irá armazenar a quantidade de espaços vazios antes (e depois) dos espaços preenchidos. Para achar este valor basta pegar o total de colunas e dividir de forma inteira por 2 já que no nível mais alto o espaço preenchido será o do meio.

      Para preencher os espaços, será necessário criar um laço que só irá escrever após os x espaços de distância a esquerda até chegar aos x espaços de distância a direita. Ou seja, para escrever o nível mais alto irá pular os dois primeiros espaços, preencher um, e pular os dois últimos espaços.
      Tente com essas informações montar uma lógica que torne o programa genérico (atente-se que só é possível formar pirâmides com larguras ímpares) e caso haja dúvidas basta entrar em contato.

Visualizando 2 respostas da discussão
  • Você deve fazer login para responder a este tópico.