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:

https://pastebin.com/vwwTwGve

desde ja agradeço vossa ajuda.

Exibições: 435

Responder esta

Respostas a este tópico

eu encontrei um codigo que cria um quadrado vazado:

https://pastebin.com/KxQH4Lga

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

https://pastebin.com/c1X50Ecz

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.

https://pastebin.com/a8cGr21d

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 

-->https://ideone.com/2ZgjWk

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.

--> https://pastebin.com/FhHcD57v

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:

https://pastebin.com/nw4WRHEa

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.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço