Exercicio de função!

1 resposta
M

Olá gente, tudo bem? Estou com uma dificuldade muito grande nesse exercicio, simplesmente não consigo fazer o programa rodar de jeito nenhum, meu cérebro bugou muito :(
Segue o exercicio e o que eu fiz:

S = 1 ? n2/2! + n3/3! + n4/4! + n5/5! +... + nn/n!

Funções para:

1. Calcular o numerador

2. Calcular o denominador

3. Calcular a repetição

4. Obter o número n

5. Imprimir o valor de S

o que eu fiz:
import javax.swing.JOptionPane;
public class CaixasDeDialogo {
  public static void main (String [] args){
   int n, s;
   n = lerNumero ();
   n = calculoNumerador(n);
  s = calculoS (n);
  imprime (s);

  
    
  }
  
  public static int lerNumero () {
    String entrada;
    int a;
    entrada = JOptionPane.showInputDialog ("Insira os valores.");
    a = Integer.parseInt (entrada);
    return a;
  }
  
  public static int calculoNumerador (int n) {
    int b,i;
    for (i=2;i<=n;i++) {
      b = b^i;
        return b;
    }
  }
  
  public static int calculoDenominador () {
    int c,i;
    for (i=2;i<=n;i++)
    {
     c = i;
     return c;
    }
  }
  
  public static int calculoS(int n) {
    int s,i;
    for (i=2;i<=n;i++){
    s = 0;
    s = calculoNumerador (n,i)/calculoDenominador (i);
      return s;
    }
  }
  
  public static void imprime (double s) {
    JOptionPane.showMessageDialog (null,"O resultado é."+s)
  }
}

Alguem poderia me ajudar com o que estou errando? E se possivel fazer o exercicio em cima do que eu já fiz?
Qualquer ajuda eu agradeço muito, de verdade.
Abraços!

1 Resposta

A

Olá Maukick,

Vamos por partes. Eu retirei os métodos para explicar os erros de compilação que estavam ocorrendo. Assim você pode corrigir os métodos que possuem os mesmos erros de compilação. Para iniciantes na programação é interessante compilar o programa após cada alteração de linha. Desta forma fica mais fácil identificar os erros de compilação.

1. No método "calculoNumerador(int n)" você esqueceu de inicializar a variável. A inicialização é obrigatória antes de realizar qualquer cálculo. Sem inicialização de uma variável o código não compila.

2. O retorno deve ser a última linha de código do método. O "return" estava dentro da repetição do "for" e como o método pode ter varios loops e apenas 1 retorno o código não vai compilar.

3. Apenas para facilitar a leitura do código (Boas Práticas de Prgramação) eu inicializei a variável de do loop junto com o for (a). Por exemplo:
a) for(int x = 0; x <100; x++){...}

b) int x;
for( x=0; x<100; x++{...} // está correto também. Mas é usado apenas quando se quer saber qual o valor de x após sair do for.

4. Não consegui entender como funciona o cálculo dessa função. Me parece que são necessários 2 valores para calcular a função seria N (número) e o I (iterações). Seria assim o cálculo?

Por exemplo:
N = 2
I = 3

S = N.1/1! + N.2/2! + N.3/3! (3 Iterações)
S = 2.1/1! + 2.2/2! + 2.3/3! (N =2)
S = 2/1 + 4/2.1 + 6/3.2.1 (calculando fatorial)
S = 2 + 2 + 2
S = 6

import javax.swing.JOptionPane;

public class Teste {
	public static void main(String[] args) {
		int n, s;
		n = lerNumero();
		s = calculoNumerador(n);
		imprime(s);

	}

	public static int lerNumero() {
		String entrada;
		int a;
		entrada = JOptionPane.showInputDialog("Insira os valores.");
		a = Integer.parseInt(entrada);
		return a;
	}

	public static int calculoNumerador(int n) {
		// Faltou inicilizar a variavel
		int b = 0;

		for (int i = 2; i <= n; i++) {
			b = b ^ i;
		}

		// O retorno pode ser realizado fora do "for"
		return b;
	}

	public static void imprime(double s) {
		JOptionPane.showMessageDialog(null, "O resultado é." + s);
	}
}
Criado 19 de maio de 2015
Ultima resposta 19 de mai. de 2015
Respostas 1
Participantes 2