Duvida com exercicio

4 respostas
T

Ola galera, não estou conseguindo resolver este exercicio. Segui codigo.
Exercicio:
[size=10]
Programa em Java dos patinhos da Xuxa
Xuxa, a rainha dos baixinhos, criou uma música que tem o segunte formato:

n patinhos foram passear
Além das montanhas
Para brincar
A mamãe gritou: Quá, quá, quá, quáMas só n-1 patinhos voltaram de lá.

Que se repete até nenhum patinho voltar de lá.
Ao final, todos os patinhos voltam:

A mamãe patinha foi procurar
Além das montanhas
Na beira do mar
A mamãe gritou: Quá, quá, quá, quá
E os n patinhos voltaram de lá.

Crie um programa em Java que recebe um inteiro positivo do usuário e exibe a música inteira na tela, onde o inteiro recebido representa o número inicial n de patinhos que foram passear.[/size]

Codigo:

import java.util.Random;
import java.util.Scanner;
public class Teste {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		int inicialPT=5, // Patos inicias
			pqn=1, //PQN== Patos Que Não Voltaram
			Valor_min=0;
			
		
		
		
		System.out.printf("Este programa vai reproduzir a musica dos patos da xuxa, com os patos inicias de %d e patos que não voltaram %d\n", inicialPT, pqn);
		
		while (inicialPT <  pqn ) {
			
			System.out.printf("%d patinhos foram passear " +
					"Além das montanhas "+
					"Para brincar "+
					"A mamãe gritou: Quá, quá, quá, quá Mas só %d patinhos voltaram de lá.\n", inicialPT, pqn--);
			
	
			System.out.printf("%d patinhos foram passear " +
					"Além das montanhas "+
					"Para brincar "+
					"A mamãe gritou: Quá, quá, quá, quá Mas só %d patinhos voltaram de lá.\n", inicialPT, pqn--);
		
	
			System.out.printf("%d patinhos foram passear " +
					"Além das montanhas "+
					"Para brincar "+
					"A mamãe gritou: Quá, quá, quá, quá Mas só %d patinhos voltaram de lá.\n", inicialPT, pqn--);
		
			
			System.out.printf("%d patinho foi passear " +
					"Além das montanhas "+
					"Para brincar "+
					"A mamãe gritou: Quá, quá, quá, quá Mas só que %d patinho voltou de lá.\n", inicialPT, pqn--);
		
		
			
											
		}
		
		System.out.printf("A mamãe patinha foi procurar "+
		"Além das montanhas "+
		"Na beira do mar "+
		"A mamãe gritou: Quá, quá, quá, quá "+
		"E os 5 patinhos voltaram de lá.");
		
		
		
		
	}
}

4 Respostas

Erick09

Pode ser que eu tenha entendido errado mas acho que você esta fazendo errado.

Pelo que eu entendi da questão você deve:
1.Pedir que o usuário entre com um valor inteiro e ler;

2.Repetir a exibição do refrão:
"n patinhos foram passear
Além das montanhas
Para brincar
A mamãe gritou: Quá, quá, quá, quá
Mas só n-1 patinhos voltaram de lá. "
decrementando n ate n==0;

  1. Exibir ao final do laço:
    "A mamãe patinha foi procurar
    Além das montanhas
    Na beira do mar
    A mamãe gritou: Quá, quá, quá, quá
    E os n patinhos voltaram de lá. "

Como você deve manter o valor inicial de n para pode exibir no final basta usar outra variável para manter o valor de n.

RodrigoKaos

Blz brother, usa um for pra esse programa é bem mais simples, testei aqui e funcionou perfeitamente, só subistitui a letra da musica por "bla, bla, bla ...

O while vai repetir tudo o que estiver "dentro dele" até que determinada condição seja alcançada, então vc não precisa escrever o codigo uma infinidade de vezes.
int a = 10;
int b = 0;
		
while (a > b) {
	System.out.println("Valor de a  é "+ a + ", mudando para " +b);
	a--;
}
Se não souber como usar o for, deve existir um milhão de posts sobre isso no forum, sem dizer no google, tenta pesquisar antes de postar a sua duvida, garanto que vc vai conseguir aprender muito mais desse jeito.

Boa Sorte!

T
Erick09:
Pode ser que eu tenha entendido errado mas acho que você esta fazendo errado.

Pelo que eu entendi da questão você deve:
1.Pedir que o usuário entre com um valor inteiro e ler;

2.Repetir a exibição do refrão:
"n patinhos foram passear
Além das montanhas
Para brincar
A mamãe gritou: Quá, quá, quá, quá
Mas só n-1 patinhos voltaram de lá. "
decrementando n ate n==0;

3. Exibir ao final do laço:
"A mamãe patinha foi procurar
Além das montanhas
Na beira do mar
A mamãe gritou: Quá, quá, quá, quá
E os n patinhos voltaram de lá. "

Como você deve manter o valor inicial de n para pode exibir no final basta usar outra variável para manter o valor de n.

Cara não consegui fazer o programa parar quando chegar a zero!
Segui codigo:

while ( n >= 0)	{		
			
			
			System.out.printf("%d patinhos foram passear " +
					"Além das montanhas "+
					"Para brincar "+
					"A mamãe gritou: Quá, quá, quá, quá Mas  %d patinhos voltaram de .\n",n);
			
		
			n--;
			System.out.printf("%d patinhos foram passear " +
					"Além das montanhas "+
					"Para brincar "+
					"A mamãe gritou: Quá, quá, quá, quá Mas  %d patinhos voltaram de .\n",n);
			
			
			n--;
			System.out.printf("%d patinhos foram passear " +
					"Além das montanhas "+
					"Para brincar "+
					"A mamãe gritou: Quá, quá, quá, quá Mas  %d patinhos voltaram de .\n",n);
			
			
			n--;
			System.out.printf("%d patinho foi passear " +
					"Além das montanhas "+
					"Para brincar "+
					"A mamãe gritou: Quá, quá, quá, quá Mas  que %d patinho voltou de .\n",n);
			
			
			}
Erick09

Quanto ao código entenda que o while e uma estrutura de repetição, ou seja, o computador vai repetir o código enquanto a condição de repetição for verdadeira,
ou seja você não precisa repetir o código dentro do while.

int meuNumero = 5;              
    while (meuNumero  > 0) //Essa é minha condição de repetição, enquanto ela for verdadeira o código entre chaves continuará executando
   {  
        System.out.println("Valor de a  é "+ a );  
        meuNumero --; //Aqui eu estou diminuindo/decrementando o valor de meuNumero para que o laço termine de executar
    }

Veja que se eu remover a linha onde a variável 'meuNumero ’ e decrementada, a condição de repetição nunca deixará de ser verdade e o código permanecerá executando “eternamente”(o famoso erro do loop infinito).

Veja a apostila da Caelum com certeza vai ser de grande ajuda para você

Alias nesse segundo código tem um erro no printf:

System.out.printf("%d patinhos foram passear " +  
                    "Além das montanhas "+  
                    "Para brincar "+  
                    "A mamãe gritou: Quá, quá, quá, quá Mas só %d patinhos voltaram de lá.\n",n);

O codigo esta pedindo duas variáveis mas só esta passando uma.

Criado 30 de maio de 2013
Ultima resposta 1 de jun. de 2013
Respostas 4
Participantes 3