Print asterisco

12 respostas
R

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;

Scanner entrada = new Scanner(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.

12 Respostas

drsmachado

Já estudou matrizes? Se não, é hora de começar.

drsmachado

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

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

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

Johnnny8

pocha cara deixava o cara pensar um pouco rsrs

J

Desculpem! For é a lógica inicial. Aconselho ele a estudar matriz e tentar fazer por matriz…

V
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:
int tquad,i=0;

		Scanner entrada = new Scanner(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

Reeditem seus posts que eu tirei os codigos!

V

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

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;

import java.util.Scanner;
class Loop{
	private static Scanner scanner = new Scanner(System.in);
	public static void main(String[] args){
		System.out.println("Digite um número e aperte enter.");
		int x = scanner.nextInt();
		for(int y = 0, z = 0; y <= x;){
			if(y==x){
				System.out.println();
				y=0;
				z++;
			}if(z>=x){
				break;
			}System.out.print("* ");
			y++;
		}
	}
}
Criado 9 de julho de 2013
Ultima resposta 10 de jul. de 2013
Respostas 12
Participantes 5