Pessoal estou comecando agora o aprendizado da liguagem Java, tenho que entragar um trabalho na faculdade, trabalho este que pra voces deve ser mole de resolver.
o problema e o seguinte:
Escreva um programa que lê o tamanho do lado de um quadrado e imprime um quadrado daquele tamanho com asteriscos.
Seu programa deve funcionar para quadrados com lados de todos os tamanhos entre 1 e 20.
Para lado igual a 5:
Pelo que eu entendi se eu informar o numero cinco o codigo deve criar um quadrado de altura e largura de cinco asterisco, e isso nao estou conseguindo fazer.
meu Codigo:
int tquad,i=0;
Scannerentrada=newScanner(System.in);System.out.println("Quantos asteriscos de altura de o quadrado?");tquad=entrada.nextInt();i=tquad;while(i>0){i--;System.out.println("*"+"*"+"*"+"*"+"*");System.out.println("*"+"*"+"*"+"*"+"*");System.out.println("*"+"*"+"*"+"*"+"*");System.out.println("*"+"*"+"*"+"*"+"*");System.out.println("*"+"*"+"*"+"*"+"*");}//fim while
nesse codigo o problema e que a largura sempre e a mesma.
Aguardo e me ajude por favor.
Um bom caminho para começar é criar o algoritmo que define os passos necessários para realizar a tarefa. Não pense em java, neste momento, apenas em como seria para resolver o problema.
Por exemplo, se o usuário digita 3. Você sabe que precisa “escrever” 3 asteriscos em cada linha e um total de 3 linhas.
A partir daí, pense no seguinte, para eu escrever 3 asteriscos (colunas) em uma única linha, eu teria que fazer o que?
Agora pense: como fazer para que o passo anterior se repita pelo mesmo número de linhas quantas sejam as colunas a serem escritas?
J
Johnnny8
A melhor maneira de se resolver isso seria usando matrizes. Porém é possivel realizar sem matriz e usando uma lógica com dois for.
V
Victor_Gerin
nem precisa ler muito sobre matrizes para fazer isso, você só vai precisar usar loops como o while ou o for para fazer isso
me desculpe cara mas se eu falar mais vou te dar de mão beijada o isso não vai ser bom para você pense um pouco você consegue xD
drsmachado
Johnnny8:
A melhor maneira de se resolver isso seria usando matrizes. Porém é possivel realizar sem matriz e usando uma lógica com dois for.
EX:
byte largura = 5; //Numero qualquer
byte altura = largura;
for(byte x = 0; x < altura; x++){
for(byte y = 0; y < largura; y++){
System.out.print("*");
}
System.out.print("\n");
}
Seria parecido com isso...
Aproveita e faz todo o código dele, o trabalho inteiro e ainda doa parte do teu salário.
Para quê dar código pronto?
V
Victor_Gerin
Johnnny8
pocha cara deixava o cara pensar um pouco rsrs
J
Johnnny8
Desculpem! For é a lógica inicial. Aconselho ele a estudar matriz e tentar fazer por matriz…
V
Victor_Gerin
roblima:
Pessoal estou comecando agora o aprendizado da liguagem Java, tenho que entragar um trabalho na faculdade, trabalho este que pra voces deve ser mole de resolver.
o problema e o seguinte:
Escreva um programa que lê o tamanho do lado de um quadrado e imprime um quadrado daquele tamanho com asteriscos.
Seu programa deve funcionar para quadrados com lados de todos os tamanhos entre 1 e 20.
Para lado igual a 5:
Pelo que eu entendi se eu informar o numero cinco o codigo deve criar um quadrado de altura e largura de cinco asterisco, e isso nao estou conseguindo fazer.
meu Codigo:
inttquad,i=0;Scannerentrada=newScanner(System.in);System.out.println("Quantos asteriscos de altura de o quadrado?");tquad=entrada.nextInt();i=tquad;while(i>0){i--;System.out.println("*"+"*"+"*"+"*"+"*");System.out.println("*"+"*"+"*"+"*"+"*");System.out.println("*"+"*"+"*"+"*"+"*");System.out.println("*"+"*"+"*"+"*"+"*");System.out.println("*"+"*"+"*"+"*"+"*");}//fim while
nesse codigo o problema e que a largura sempre e a mesma.
Aguardo e me ajude por favor.
obs sempre que você posta um código use o [code] para deixar organizado
J
Johnnny8
Reeditem seus posts que eu tirei os codigos!
V
Victor_Gerin
assim rlx n tem problema você ter postado o código, só que ao invés de ajudar o cara você atrapalha tipo esse tipo de pergunta vc percebe que o cara começou a programar a pouco tempo, uma pessoa que mal começou precisa bater bastante a cabeça e chegar a conclusões sozinho, e aquela velha historia, da diferença entre dar o peixe e ensinar a pescar o peixe.
R
roblima
Ola drsmachado, Johnnny8, Victor Gerin.
Desde de ja agradeço a vocês pelas dicas, como deu para perceber estou iniciando na linguagem.
Ótimo saber que terei a ajuda que preciso aqui no forum.
Vou tentar resolver o problema com o while ja que o exercício de loop com o while.
Vynko
Se ainda tem dúvidas, eu fiz um exemplo, acho que existiam meios de fazer usando um menor número de variáveis, mas está ai;
importjava.util.Scanner;classLoop{privatestaticScannerscanner=newScanner(System.in);publicstaticvoidmain(String[]args){System.out.println("Digite um número e aperte enter.");intx=scanner.nextInt();for(inty=0,z=0;y<=x;){if(y==x){System.out.println();y=0;z++;}if(z>=x){break;}System.out.print("* ");y++;}}}