Laço de repetiçao while

9 respostas
Bruna_Mihcelly

Ola, Boa noite!

gente eu preciso encaixar um laço nesse codigo!

o objetivo do programa e fazer um fatorial e depois utilize no calculo de uma combinação matematica!

[quote]
import java.util.Scanner;
public class EX___2 {
  public static void main(String[]args){
  Scanner cm = new Scanner(System.in) ;
  
  System.out.println(" Digite um número para o conjunto n:" );
  double n1 = cm.nextDouble();
  System.out.println(" Digite um número para o subconjunto s:" );
  double n2 = cm.nextDouble();
 
  double a = fatores( n1 - n2);
  double x = fatores(n1);
  double y = fatores( n2);
  
  double c = x/ (y *a);
  System.out.println(" A combinação matemática é: " +c);
  }
  
  public static double fatores(double n1) {
    double res = 1 ;
    for ( double ft = 1; ft <= n1 ; ft++ ) { 
      res = res*ft;
      
    }
    return res;
  }
  
}[/quote]

9 Respostas

Marcelo_de_Andrade

Eu estou precisando de uns 2 mil reais…

Qual a dúvida?

while ( true ) { // Código aqui }

Bruna_Mihcelly

Marcelo de Andrade:
Eu estou precisando de uns 2 mil reais…

Qual a dúvida?

while ( true ) { // Código aqui }

Voce ta precisando de uns 2 mil? posso te arrumar a prestação?
kkkk…

bom a duvida e onde eu posso encaixar o while dentro do codigo,
eu to colocando ele na linha 10, mas o break nao ta funcionando e ta dando erro na linha dele,
o probema nao ta nas chaves!
to começando programar agora, tem bastante coisa que eu nao fasso ideia!!!

lucas_guj

Explica melhor, para que e por que quer colocar um loop while e o que o seu programa ja faz e aonde nao esta dando certo etc etc etc…

Eric_SantAnna
hahaha... isso que voce pediu é fácil:
import java.util.Scanner;  
public class EX___2 {  
  public static void main(String[]args){  
  Scanner cm = new Scanner(System.in) ;  
    
  System.out.println(&quot; Digite um número para o conjunto n:&quot; );  
  double n1 = cm.nextDouble();  
  System.out.println(&quot; Digite um número para o subconjunto s:&quot; );  
  double n2 = cm.nextDouble();  
  while( true )   { break; } // Pronto, agora tem um while na linha 10 com um break que funciona =D
  double a = fatores( n1 - n2);  
  double x = fatores(n1);  
  double y = fatores( n2);  
    
  double c = x/ (y *a);  
  System.out.println(&quot; A combinação matemática é: &quot; +c);  
  }  
    
  public static double fatores(double n1) {  
    double res = 1 ;  
    for ( double ft = 1; ft &lt;= n1 ; ft++ ) {   
      res = res*ft;  
        
    }  
    return res;  
  }  
    
}

Desculpa, nós não resistimos à brincadeira...rs

É que não estamos entendendo sua pergunta...
Posta o código que está dando erro (o código já com o while que você tentou fazer) pra gente ter um idéia do que esta dando errado e do que você está querendo fazer.

Abraço.

Bruna_Mihcelly
Eric SantAnna:
hahaha... isso que voce pediu é fácil:
import java.util.Scanner;  
public class EX___2 {  
  public static void main(String[]args){  
  Scanner cm = new Scanner(System.in) ;  
    
  System.out.println(&quot; Digite um número para o conjunto n:&quot; );  
  double n1 = cm.nextDouble();  
  System.out.println(&quot; Digite um número para o subconjunto s:&quot; );  
  double n2 = cm.nextDouble();  
  while( true )   { break; } // Pronto, agora tem um while na linha 10 com um break que funciona =D
  double a = fatores( n1 - n2);  
  double x = fatores(n1);  
  double y = fatores( n2);  
    
  double c = x/ (y *a);  
  System.out.println(&quot; A combinação matemática é: &quot; +c);  
  }  
    
  public static double fatores(double n1) {  
    double res = 1 ;  
    for ( double ft = 1; ft &lt;= n1 ; ft++ ) {   
      res = res*ft;  
        
    }  
    return res;  
  }  
    
}

Desculpa, nós não resistimos à brincadeira...rs

É que não estamos entendendo sua pergunta...
Posta o código que está dando erro (o código já com o while que você tentou fazer) pra gente ter um idéia do que esta dando errado e do que você está querendo fazer.

Abraço.

Otimo! sei que quando se é novo em alguma coisa e motivo de piada dos outros!!!
mas ta tudo bem, ja curti com quem nao sabia nada tambem
kkkkk

Agoa vamos falar de coisa seria!

a pergunta é:

Crie um programa que implemente a função fatorial e depois a utilize no cálculo de combinação matemática de n elementos de p em p:
combinação de n de s em s;

tem uma formula logo abaixo

http://pt.wikipedia.org/wiki/Combina%C3%A7%C3%A3o_%28matem%C3%A1tica%29

o problema ta que eu tambem nao to entando a questao e pelo que eu entendi fiz assim!

e o codigo ta logo abaixo

[quote][code]import java.util.Scanner;
public class EX___2 {
public static void main(String[]args){
Scanner cm = new Scanner(System.in) ;

System.out.println(" Digite um número para o conjunto n:" );
double n1 = cm.nextDouble();
System.out.println(" Digite um número para o subconjunto s:" );
double n2 = cm.nextDouble();
}
double n1 = condição(n1<=0);
double n2 = condição(n2<=0);

public static double condição(double n1) {
do {
System.out.println(" Digite um numero válido. " );
double a1= cm.nextDouble();
}
while (n1 <= 0 || n2 <= 0);
System.out.pritln (" Digite um valor valido."); }

double a = fatores( n1 - n2);
double x = fatores(n1);
double y = fatores( n2);

double c = x/ (y *a);
System.out.println(" A combinação matemática é: " +c);
}

public static double fatores(double n1) {
double res = 1 ;
for ( double ft = 1; ft <= n1 ; ft++ ) {
res = res*ft;

}
return res;
}

}[quote][code]
o erro ta dando na linha:

System.out.println(" A combinação matemática é: " +c);

quem puder me responder sera aceito!

Eric_SantAnna

Nossa, que salada, deu erro em tudo aqui...rs
Tem que melhorar muita coisa ai hein...rs

import java.util.Scanner;

public class EX___2 {
public static void main(String[]args){
	Scanner cm = new Scanner(System.in) ;
	
	System.out.println(&quot; Digite um número para o conjunto n:&quot; );
	double n1 = cm.nextDouble();
	System.out.println(&quot; Digite um número para o subconjunto s:&quot; );
	double n2 = cm.nextDouble();

// }  A chave que fecha o main estava aqui
double n1 = condição(n1&lt;=0); // O metodo condição pede um double, esse n1&lt;=0 não pode ser colocado aqui, isso não é um if!!(ver o que coloquei acima)
double n2 = condição(n2&lt;=0); // O metodo condição pede um double, esse n2&lt;=0 não pode ser colocado aqui, isso não é um if!!(ver o que coloquei acima)
// Pro problema acima faça assim:
// double n1;
// double n2;
// if(n1&lt;=0) {
//      n1 = condição(n1) // Não faço idéia do que você você quer fazer aqui, sou horrível em matemática...rs
// }
// if(n2&lt;=0) {
//      n2 = condição(n2)
// }

} // A nova chave que fecha o main

public static double condição(double n1) {
	do {
		System.out.println(&quot; Digite um numero válido. &quot; );
		double a1= cm.nextDouble();
	}
	while (n1 &lt;= 0 || n2 &lt;= 0);
	System.out.pritln (&quot; Digite um valor valido.&quot;; 
// } Essa chave esta sobrando

	double a = fatores( n1 - n2); // n2 está fora do metodo condição(double), ou passe ele por parâmetro: 
	                              // (public void double condição(double n1, double n2))
								  // ou deixe n2 como ATRIBUTO da classe, ou seja, declare fora do método (antes do main)
	double x = fatores(n1);
	double y = fatores( n2);
	
	double c = x/ (y *a);
	System.out.println(&quot; A combinação matemática é: &quot; +c);
}

public static double fatores(double n1) {
double res = 1 ;
for ( double ft = 1; ft &lt;= n1 ; ft++ ) {
res = res*ft;

}
return res;
}

}

Tenta endentar mais seu código pra você não se perder nas chaves, dá um bizu no código de quem já programa e vê como se formata direitinho.

Boa sorte!

Diguinho.Max

como nossos amigos disse ta dificil enterder o que realmente precisa :smiley:
tente explicar melhor

Vinicius_Zibetti_Res

Tenta fazer recursivamente ( matematicamente ):

public long fat(long n){ if(n == 0){return 1;}else{return n * fat(n-1);} }

Vingdel

Bruna, seu método fatores() assim:

public static double fatores(double n){ double aux = n-1; while(aux > 0){ n *= aux; aux--; } return n; }

Você usa seu while e fica feliz… Tem certeza que você quer usar double? Não vejo necessidade.

Bye!

Criado 13 de outubro de 2011
Ultima resposta 25 de out. de 2011
Respostas 9
Participantes 7