Java

Pessoal estou iniciandoe quero saber como faço para escrever um programa em Java que crie um array de valores de ponto flutuante de 25 posições, calcule o fatorial de cada uma destas posições e guarde o valor do fatorial no elemento correspondente do array. Ao final do cálculo, a posição 0 do array deve conter 0, a posição 1 deve conter 1, a posição 2 deve conter 2, a posição 3 deve conter 6, a posição 4 deve conter 24 (4!), etc.

Consigo fazer boa parte mais não o que acontece quando chega na parte lógica do codigo da erro ou na resulta o que realmente quero.

Será possivel colocar o seu código aí ? Ou pelo menos a parte onde da o erro, e a(s) dúvida(s) relaccionadas para podermos entender ? Pois, sem ele, teriamos de criar o código de início, e acho que não é essa a ideia, mas sim que em conjunto, façamos e entendamos o processo de criação desse algoritmo. :thumbup:

Até já

“Dá erro” quer dizer o quê?

a) Aparece um erro “ArrayOutOfBoundsException” ou coisa parecida.
b) O valor para todas as posições é zero.
c) O valor de 24! é diferente de 620448401733239439360000 ( 6.2044840E23 )

Pessoal ta ai meu codigo, accho que o erro está na lógica pois quando inicio meu i = 1 le da certo mais se colocar 0 da erro;

class exe12{

public static void main(String args[]){

float vet[] = new float[25];	
int i, fat = 1,cont = 0; 
try{
	for (i=0;i<25;i++){ 
		fat=fat*i;	
		vet[i] = fat;
		System.out.println(""+i+" - "+vet[i]); 
		
	}

}catch(Exception erro){
	System.out.println("Erro na entrada de dados");
} 
}

}

Um loop com mais ou menos essa lógica. Acho que tem erro na lógica que tu ta usando.

if (numero == 0) resultado++; while (numero > 1) resultado *= --numero;

Tu pode usar recursividade também. :smiley:

[quote=jeffersonarar]Pessoal ta ai meu codigo, accho que o erro está na lógica pois quando inicio meu i = 1 le da certo mais se colocar 0 da erro;

class exe12{

public static void main(String args[]){

float vet[] = new float[25];	
int i, fat = 1,cont = 0; 
try{
	for (i=0;i<25;i++){ 
		fat=fat*i;	
		vet[i] = fat;
		System.out.println(""+i+" - "+vet[i]); 
		
	}

}catch(Exception erro){
	System.out.println("Erro na entrada de dados");
} 
}

}[/quote]

Algumas coisas a serem consideradas:

Ponha seu código entre as tags code e /code.

Use um título mais sugestivo nos seus tópicos como “Problemas no uso de Array” ou coisa do tipo.

Evite catch em Exception.

A variável cont nunca é usada.

Se você planeja percorrer um array use o length dele na condição do for.

Como i = 0 na primeira iteração o seu fat sempre vai valer 0. Quando i = 0, fat = 1. 1 * 0 = 0. Quando i = 1, fat = 0. 0 * 1 = 0 e assim vai.

E como entanglement disse, o que você quer dizer com erro?

Consegui aq Obrigado pela ajuda.

jeffersonarar, sugiro fortemente que você leia estes tópicos antes de postar qualquer coisa no GUJ.

http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor

http://www.guj.com.br/java/287484-gujnautas-how-to

http://www.guj.com.br/java/15777-antes-de-voce-perguntar

Abraços!