Home › Fóruns › Programação Básica › Matriz Visualg
- Este tópico contém 2 respostas, 3 vozes e foi atualizado pela última vez 3 anos, 2 meses atrás por Tutora Mayla.
-
AutorPosts
-
-
22 de agosto de 2021 às 13:11 #74068MartiniParticipante
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: inteiroInicio
Para l de 1 ate 3 faca
Para c de 1 ate 5 faca
FimPara
FimParaPara 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
FimParaPara l de 1 ate 3 faca
Para c de 1 ate 5 faca
Escreva(mat[l,c]:3)
FimPara
Escreval()
FimPara
Fimalgoritmo -
24 de agosto de 2021 às 18:25 #74193Michel SouzaParticipante
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. -
26 de agosto de 2021 às 21:11 #74339Tutora MaylaMestre
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.
-
-
AutorPosts
- Você deve fazer login para responder a este tópico.