O q errei?

1 resposta
R

E ai galera..td bom???...gostaria de saber o q ta errado na hora de eu fazer o calculo...to fazendo um programa para a materia de Calculo Numerico e to tentando fazer 3/8 de simpson...quanto a conta ta certo, eu to errando erro de logica...valeu galera

//Implementação de 3/8 Simpson

import javax.swing.*;
import javax.swing.*;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTextField;
import java.awt.*;
import java.awt.event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

class Janela extends JFrame{
	
	private JTextField campoResp = new JTextField(10);
	private JTextField campoN = new JTextField(10);
	private JTextField campoB = new JTextField(10);
	private JTextField campoA = new JTextField(10);
	private JButton calc = new JButton("CALCULAR");
	
		
	//Metodo Construtor
	public Janela()
	{
		super("3/8Simpson");
		setSize(200, 200);
		
		Container quadro = getContentPane();
		quadro.setLayout(new FlowLayout());
		quadro.add(campoA);
		quadro.add(campoB);
		quadro.add(campoN);
		quadro.add(calc);
		quadro.add(campoResp);
		
		calc.addActionListener(new Evento());
		
	}//Fim do metodo construtor
	
	public void setCampo(double resp)
	{
		campoResp.setText(""+ resp);
	}
	
	class Evento implements ActionListener{
		
		public void actionPerformed(ActionEvent evento)
		{
			String ev = evento.getActionCommand();
			
			if(ev.equals("CALCULAR"))
			{
			 	campoResp.setText(" " + new Simpson_3_8().func(campoA.getText(), campoB.getText(), campoN.getText()));
			 	
			}
		}
	}//Fim da classe interna Evento
}

public class Simpson_3_8{
	
	Simpson_3_8 simpson = new Simpson_3_8();	
	
	public double f(double x)
	{
		return Math.exp(-x * x);
	}
	
	public double func(String auxA, String auxB, String auxN)
	{
		double a = Double.parseDouble(auxA);
		double b = Double.parseDouble(auxB);
		double n = Double.parseDouble(auxN);
		double sn = 0;
		double s3 = 0;
		double h = (b - a) / n;
		double x = 0;
		
		for(int i = 1; i < n; i++)
		{
			if(i % 3 == 0)
			{
				x = a + i * h;
				s3 = s3 + simpson.f(x);	
			}
			
			else
			{
				sn = a + i *h;
				sn = sn + simpson.f(x);
			}
		}
		
		double resp = (3 * h) / 8 + (simpson.f(a) + 3 * sn + 2 * s3 + simpson.f(b));
		return resp;	
		
		
	}
	
	public static void main(String[] args)
	{	Janela Jn = new Janela();
		Jn.show();		
	}
}

1 Resposta

B

Testei seu programa ele ta reclamando que class class Simpson_3_8 está como publica,

class Simpson_3_8{

}

deixa ela assim que funciona, quanto ao calculo, nao entendo. por isso nao testei…

Criado 20 de agosto de 2005
Ultima resposta 20 de ago. de 2005
Respostas 1
Participantes 2