Bài tập xử lý ngoại lệ (Exception)

Bài tập xử lý ngoại lệ (Exception)

Xây dựng project thực hiện
-Nhập a, x, n (a,x: float, 1<a<3, 2<x<4; n: int, 4<n<20)
-Tính:
-S1 = x2 / 2! + x3 / 3! + … + xn / n!
-S2 = x1 / a1 + x2 / a2 + … + xn / an

Yêu cầu:
-Sử dụng form để nhập dữ liệu
-Dùng try – catch để xử lý ngoại lệ khi nhập và tính.




// Class Tinh

package baitap150519;

import java.util.Scanner;

public class Tinh {
    float a,x;
    int n;
public Tinh(float a,float x,int n){
    this.a=a;
    this.x=x;
    this.n=n;
}
// Nhap
void Nhap(){
    Scanner inp=new Scanner(System.in);
   try{
    do{
    System.out.print("\n Nhap a: ");
    a=inp.nextFloat();
    if(a<=1||a>=3)
        System.out.print("\n Nhap lai a! ");
    }while(a<=1||a>=3);
    
    do{
    System.out.print("\n Nhap x: ");
    x=inp.nextFloat();
    if(x<=2||x>=4)
        System.out.print("\n Nhap lai x! ");
    }while(x<=2||x>=4);
    
    do{
    System.out.print("\n Nhap n: ");
    n=inp.nextInt();
    if(n<=4||n>=20)
        System.out.print("\n Nhap lai a! ");
    }while(n<=4||n>=20);
   }
   catch(Exception e){
       System.out.print("\n Da xay ra loi khi nhap. \n Loi: "+ e);
       this.Nhap();
   }
   finally{
       System.out.print("\n Da nhap xong !" );
   }
}    
// Tinh S1
float S1(){
    float tong =0;
    try{
    for(int i=2;i<=n;i++)
    {
        // tinh giai thua cua i
        long gt=1;
        for(int j=1;j<=i;j++)
            gt=gt*j;
        tong=tong+(float)Math.pow(x, i)/gt;
    }
    }
    catch(Exception e)
    {
        System.out.print("\n Da xay ra loi khi nhap. \n Loi: "+ e);
    }
    return tong;
}
    
// Tinh S2
float S2(){
    float tong =0;
    try{
    for(int i=1;i<=n;i++)
    {
        
        tong=tong+(float)Math.pow(x, i)/(float)Math.pow(a, i);
    }
    }
    catch(Exception e)
    {
        System.out.print("\n Da xay ra loi khi nhap. \n Loi: "+ e);
    }
    return tong;
}

}


// Button Tinh trên form fr_BaiTap



private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {


// lay du lieu tu form

float x, a;

int n;

try{

a= Float.parseFloat(txta.getText().toString());

if(a<=1||a>=3)

lblThongBao.setText("Nhap lai a ! ");


x= Float.parseFloat(txtx.getText().toString());

if(x<=2||x>=4)

lblThongBao.setText("Nhap lai x ! ");


n= (int)Float.parseFloat(txtn.getText().toString());

if(n<=4||n>=20)

lblThongBao.setText("Nhap lai n ! ");

// khai bao doi tuong

Tinh t=new Tinh(a,x,n);

txts1.setText(""+t.S1());

txts2.setText(""+t.S2());


}

catch(Exception e){

lblThongBao.setText("Da xay ra loi khi nhap: "+e);


}

finally{

// lblThongBao.setText("Da nhap xong ");

}

}
// Class Baitap150519 



package baitap150519;



public class Baitap150519 {


public static void main(String[] args) {

fr_BaiTap fr=new fr_BaiTap();

fr.show();

}


}