Ajuda com Exercicio

Bem galera estou no segundo semestre de Sistemas de Informação estou fazendo uma revisão mas ta dificil ¬¬’’’ depois das ferias voltar a programar ta brabo estou com uma duvida nesse
Exercício

[b]Faça um programa que receba pelo teclado um número N inteiro (maior que 0 e menor =50), e o envie para uma função, que exibirá na tela o seguinte desenho:
*
**









Repare que a quantidade de asteriscos da última linha corresponde ao número N informado pelo teclado.[/b]

Na realidade gostaria que alguem me ajudace na logica e no começo pois nao lembro como faz isso jah tentei mas nem do começo sai nda --’’’

Bom eu poderia dar o codigo pronto p vc… mas acho q nao eh isso q vc quer… entao vou te ajudar a entender o problema:

Voce precisa gerar o numero de linhas que o usuario pedir… Se ele digitar 10 entao teremos 10 linhas…

Nessas 10 linhas teremos desde a primeira com 1 * ate a ultima linha com N asterisco (n eh o numero que o usuario entrou)

Entao teremos ai duas iteracoes. Uma para gerar o numero de linhas necessarias e outra iteracao para gerar o numero de * necessarios.

Ou seja, um loop dentro do outro… O loop que gera os * dentro do loop que gera as linhas…

Eae tenta chegar na solucao ae… qq coisa vou ajudando!

abracos

Se entendi sua dúvida, tente usar laços For.
Algo assim…

for (int linha = 1; linha <= 50; linha++){
     for (int coluna = 1; coluna <= linha; coluna++){
         System.out.print ("*");  
     }
     System.out.print ("");
}

tá meio tosco, mas acho que ajuda.

Diga no to copy and paste na sua fase de aprendizado, use o código abaixo para você treinar, e modifique-o com a sua lógica e poste aqui suas dificuldades:

[code]import java.util.Scanner;

public class Main
{
public static void main(String[] args)
{
String valueToBeReplied = “*”;
int count = 0;
int flagToPrint = 0;

	System.out.println("Digite um número que seja maior que 0 e menor que 50: ");
	Scanner scanner = new Scanner(System.in);
	
	try
	{
		count = Integer.parseInt(scanner.next());
	}catch (Exception e) 
	{
		throw new NumberFormatException("Digite apenas número!");
	}
	
	for (int iterator = 1; iterator <= count; iterator++) 
	{
		while(iterator != flagToPrint)
		{
			System.out.print(valueToBeReplied);
			flagToPrint += 1;
		}

		System.out.println("\n");
		flagToPrint = 0;
		
	}
}

}[/code]

Abraços e boa sorte,
André AS

Outra maneira de fazer o exercicio, utilizando apenas um loop.

[code]public static void main(String[] args) throws Exception {
final String CARACTER = “*”;

	Scanner scanner = new Scanner(System.in);
	System.out.println("Digite um número que seja maior que 0 e menor que 50: ");
	int count = scanner.nextInt();
			
	for (int linha = 1; linha <= count; linha++) {
		System.out.println(String.format(String.format("%%0%dd", linha), 0).replace("0", CARACTER));
	}
}[/code]Att

Tipo… acho que o amigo que deu a primeira dica já havia ajudado o suficiente para o criador do tópico trazer algo plausível e apresentar no fórum…

Agora eu pergunto, sem maldade nem nada… Mas…

Porque vocês têm que apresentar uma solução pronta ??? Porque ??? Mostrar que sabe fazer ???

Vocês acham que isso vai ajudar mesmo ??? :roll:

[quote=adriano_si]Tipo… acho que o amigo que deu a primeira dica já havia ajudado o suficiente para o criador do tópico trazer algo plausível e apresentar no fórum…

Agora eu pergunto, sem maldade nem nada… Mas…

Porque vocês têm que apresentar uma solução pronta ??? Porque ??? Mostrar que sabe fazer ???

Vocês acham que isso vai ajudar mesmo ??? :roll: [/quote]

Não sei o caso do rapaz, mas quando eu estava no início da curva de aprendizado eu gostava de ter a resposta do exercício pronta para me servir de base, mas é aquela questão, cada um sabe o que faz… E confesso que cada vez que ajudo, eu aprendo o dobro hehehe…

Astork, cara, mais uma vez seu código é super limpo hehehe tá vendo como aprendo!? hehehe

abraços a todos,

[quote]adriano_si
Tipo… acho que o amigo que deu a primeira dica já havia ajudado o suficiente para o criador do tópico trazer algo plausível e apresentar no fórum…

Agora eu pergunto, sem maldade nem nada… Mas…

Porque vocês têm que apresentar uma solução pronta ??? Porque ??? Mostrar que sabe fazer ???

Vocês acham que isso vai ajudar mesmo ??? [/quote]

Concordo com você, inclusive em POST que respondi como primeira pessoa, sempre passei link para ser analisado por quem está perguntando… como visto neste topico. http://www.guj.com.br/java/233674-comparacao-de-string-com-modelo
Porem apartir do momento que ja tem um código pronto, procuro as vezes colocar forma alternativa de se fazer as coisas.

Bom indiferente disto está na pessoa que postou o tópico de absorver a informação e não querer mastigado, ou até utilizar o que postamos para validar se o que ele fez está correto, agora se por motivos de termos colocado o código ele apenas copiar e não entender, o problema está nele e não no pessoal que postou soluções.

Att

[quote]andredecotia
Astork, cara, mais uma vez seu código é super limpo hehehe tá vendo como aprendo!? hehehe [/quote]
Legal Andre que achou aprendeu, embora não fiz nenhum teste de performance etc… E mesmo que no caso apresentado a performance não seja a melhor (não fiz testes), é uma forma dele entender como utiliza a API, e pode ser de grande valia em um futuro.

Att

Tem outro jeito também, não recomendado, acho que é pogão :stuck_out_tongue:

public class Asteriscos{
	public static void main(String args[]){
		String out = "*********************************************************";
		for(int i = 1; i< 10; i++){
			System.out.println(out.substring(0, i));
		}	
	}
}

EDIT: falta entra do usuário e tals… Mas só pra mostrar o outro jeito mesmo

[quote=adriano_si]Tipo… acho que o amigo que deu a primeira dica já havia ajudado o suficiente para o criador do tópico trazer algo plausível e apresentar no fórum…

Agora eu pergunto, sem maldade nem nada… Mas…

Porque vocês têm que apresentar uma solução pronta ??? Porque ??? Mostrar que sabe fazer ???

Vocês acham que isso vai ajudar mesmo ??? :roll: [/quote]

Concordo com voce! Ate porque o proprio layor, o que postou a duvida, pediu para ajuda-lo na logica:

Mas, sem maldade, da a enteder que o pessoal quer mostrar que sabe e ja posta a resposta pronta. :shock:

Fallows…

[quote]denislima
Mas, sem maldade, da a enteder que o pessoal quer mostrar que sabe e ja posta a resposta pronta. [/quote]
Mostrar que sabe? acho que isto não vai acrescentar nada no meu curriculo !!! rsss.

Att

[quote=Astork]Outra maneira de fazer o exercicio, utilizando apenas um loop.

[code]public static void main(String[] args) throws Exception {
final String CARACTER = “*”;

	Scanner scanner = new Scanner(System.in);
	System.out.println("Digite um número que seja maior que 0 e menor que 50: ");
	int count = scanner.nextInt();
			
	for (int linha = 1; linha <= count; linha++) {
		System.out.println(String.format(String.format("%%0%dd", linha), 0).replace("0", CARACTER));
	}
}[/code]Att[/quote]

Cara, se não for pedir muito você pode explicar essa linha:

System.out.println(String.format(String.format("%%0%dd", linha), 0).replace("0", CARACTER));
?

Quanto caso pessoal, o segundo usuário respondeu bem pra caramba e já matou o pato. É até legal postar as formas que cada um faz, pois aprendemos mais e o dono do post pode discutir outras implementações…

Fala Galera… concordo com um pouco de todos aqui e não perguntei a fim de diminuir ninguém…

Percebam, ninguém é proibido de fazer um código mais limpo, Ns formas diferentes de se fazer e tudo o mais…

Mas custa esperar a pessoa evoluir sozinha… Tipo, ele traz aqui um algoritmo com base na primeira ajuda… Aí sim, começam as dicas de como melhorar… Eu concordo Andre, eu tbm aprendo lendo código dos outros, mas deixar com que as pessoas que vem aqui pelo menos comecem seus próprios códigos, os ajudará no futuro quando começarem seus trabalhos do 0 e não puderem vir aqui perguntar…

Sei que a vontade de ajudar é grande, e por isso mesmo deveríamos deixar a pessoa tentar fazer, mesmo que errado, pra depois mostrar o jeito certo ou melhor de se fazer. O código do amigo, mesmo que viesse errado, ia nos dar uma idéia de como ele absorveu o primeiro POST que lhe foi passado, isso até ajuda a quem vai postar, entender como funciona mais ou menos o aprendizado de quem pediu ajuda…

É isso aí…

Abs[]

[quote]Jesuino Master
Quanto caso pessoal, o segundo usuário respondeu bem pra caramba e já matou o pato. É até legal postar as formas que cada um faz, pois aprendemos mais e o dono do post pode discutir outras implementações… [/quote]
Perfeito, concordo plenamente.

[quote]andredecotia
Cara, se não for pedir muito você pode explicar essa linha:

  1. System.out.println(String.format(String.format("%%0%dd", linha), 0).replace(“0”, CARACTER)); [/quote]
    Bom, vou fazer conforme a recomendação do pessoal, e na verdade utilizo, passando a você o link do javadoc http://download.oracle.com/javase/6/docs/api/java/util/Formatter.html#syntax

Mas resumidamente eu uso uma classe de formatação que você tem metacaracteres (padrões), que você pode definir o que vai ali, pode definir formatação (por exemplo completar com 0, com espaço), entre outros casos.

No caso apresentado é criado uma string com “0” de acordo com a quantidade caracter que ele passou, e depois é feito um replace com “*”.

Veja no caso apresentado por ele… acho que faria da forma mais básica. Como disse o intuito de por outras maneiras é apenas para o rapaz do post descobrir que existe formas de fazer, e aprender um pouco mais a API do java.

Att