Ola senhores,
fiz um exercico de C que consistia em fazer o compilador gerar um quadrado com um tipo de caracter que vc escolheu, no caso eu usei o '*', fazer um quadrado de asterisitco nao foi dificil, pois usei o mesmo conceito de matrizes, mas agora tenho que tentar fazer um quadrado de asteristicos vazado, em outras palavras, um quadrado apenas formado pelos seus lados.
O codigo do quadrado simples esta abaixo:
desde ja agradeço vossa ajuda.
Tags:
eu encontrei um codigo que cria um quadrado vazado:
Esse funciona bem pois usa as coordenadas x,y para decidir se imprime " " ou "*"
Importante é você entender como e por que funciona. Assim vai entender como quem criou o programa pensou para atingir o objetivo.
Mesmo que eu tenha encontrado a soluçao(que nao foi eu quem fez), eu preciso pegar experiencia com esse tipo de exercicio, assim o que vou procurar fazer sao algumas figuras desenhadas a parti do mesmo principio, eu deixo em aberto este post, para alguns dos colegas que quiserem contribuir com alguns codigos de desenho, baseado no mesmo principio, no geral a ideia e gerar um codigo base que possa gerar qualquer desenho, sem necessariamente precisar fazer um codigo para cada desenho.
E la vamos nós....
Olá Adriano,
Uma possível decomposição do problema é:
Função Imprime Quadrado Vazado com tamanho n:
Imprime Base do Quadrado de tamanho n
Repete n-2 vezes Imprime Lateral do Quadrado com tamanho n
Imprime Base do Quadrado de tamanho n
Função Imprime Base do Quadrado com tamanho n:
Repete n vezes imprimir "*"
Função Imprime Lateral do Quadrado com tamanho n:
Repete n vezes imprimir "*"
Repete n-2 vezes imprimir " "
Repete n vezes imprimir "*"
Pronto.... Agora é só codificar!
Boa Sorte!
Baseado nas informaçoes que obtive, estou tentando fazer o compilador gerar um 'X', mas ainda nao obtive sucesso, fiz o codigo do link, mas ele esta dando erro na linha 15 e 16. Alguem saberia me dizer o que esta errado nestas linhas. desde ja agradeço
O erro ja resolvi, mas ainda nao consegui soluçao para gerar o 'X' , so consigo fazer a diagonal principal,mas no to conseguindo imprimir na diagonal secundaria gerando o 'X'. abaixo o codigo para fazer a diagonal principal.
Um X = dois pontos sendo desenhados por linha.
Imagine que um ponto está na margem direita e o outro na margem esquerda.
A cada linha Y o ponto da esquerda se move para a direita um passo e o ponto da direita um passo para a esquerda.
Faça um loop do tamanho desejado.
Agora é dada duas coordenadas como desenha " " e "*" em sequência a cada linha.... parece simples.
É um teste de se a posição X a ser desenhada é igual à coordenada vinda da direita ou da esquerda => desenha "*", se não, desenha " ".
Se você prestar mais atenção verá que essas coordenadas vindas da direita e esquerda são função do próprio X... a da esquerda tem posição igual ao iterador de X na matriz e o que vem da esquerda é igual ao tamanho do quadrado menos X.
Boa sorte.
Depois de algumas discurssoes com os colegas daqui do LDG, principalemte o Tiago, que gerou o codigo base para gerar o famigerado 'X', cheguei a algumas conclusoes:
1- para se criar figuras utiliza-se como base uma matriz quadrada
2- gera-se a matriz depois de um laço for dentro de outro laço for
3- faz-se uma varredura dentro da matriz, afim de ativar os pontos necessarios para gerar o desenho.
abaixo alguns codigos que funcionaram:
codigo de um colega do Facebook
Codigo de Tiago
--> https://pastebin.com/z0q41qSL
O ultimo é um codigo que ja vinha trabalhando a tarde toda do dia 05/03/21, mas so conseguir terminar por causa da dica do Tiago.
Entao agora estou caminhando para me torna um artista em desenho de figura em linguage c, levando em consideraçao a dicas dos colegas eu gerei um codigo que faz um X dentro de um quadrado.Mas ele apresenta um certo defeito de espaçamento entre os asteristicos:
se alguem tiver alguma ideia de como resolve vou agradecer. Por enquanto vou parar por aqui essa atividade e passar para proximas atividades envolvendo outros truques que possam ajudar mais essa habilidade de codar, que vcs daqui do LDG dominam bastante.
ps: quando for inserir um valor ele deve ser um inteiro um pouco alto senao o X dentro do quadrado nao sera visto corretamente.
Fiz com um tamanho fixo (10x10) pra agilizar o teste e não precisar ficar inserindo toda hora...
Esse vale pra matrizes quadradas.
Adicionei uns espaços a mais pra questão de simetria já que o espaço entre linhas é diferente do espaço ocupado pelo char ' '.
https://pastebin.com/PEZm6yfQ
Vê se te ajuda :)
Fiz no https://www.onlinegdb.com mesmo, já que estou sem um compilador no momento.
OBS.: Não cheguei a ver as sugestões dos demais membros, só olhei o char (*) que vc estava usando no print pra manter o padrão. Não sei se sugeriram algo mais otimizado, por exemplo.
Poxa ficou maneiro, analisar depois o seu codigo para ver aonde eu poderia ter errado.
Usei a lógica mais simples possível pra ficar explícito as condições de preenchimento das "células da matriz imaginária".
Lembrando que a matriz tem que ser pelo menos 5x5 pra ficar um X de fato kk.
Testei com vários valores >=5 e tudo OK.
Depois dá uma conferida. Qualquer coisa, só perguntar.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por