Forum Java Ptit-Aptech

>>>>> www.java13.tk <<<<<
 
Trang ChínhTrang Chính  CalendarCalendar  Trợ giúpTrợ giúp  Tìm kiếmTìm kiếm  Thành viênThành viên  NhómNhóm  Đăng kýĐăng ký  Đăng NhậpĐăng Nhập  
Forum has been closed by admin.

Share | 
 

 đáp án bài tập 3<đây là cách làm của mình có gì thắc mắc comment cùng thảo luận nhá>....<ai có giải thuật nào hay thì cùng commẻnt và share cho mọi người cùng học hỏi nhá>

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
wind_and_cloud_only



Tổng số bài gửi : 18
Points : 28
Reputation : 0
Join date : 10/07/2009

Bài gửiTiêu đề: đáp án bài tập 3<đây là cách làm của mình có gì thắc mắc comment cùng thảo luận nhá>....<ai có giải thuật nào hay thì cùng commẻnt và share cho mọi người cùng học hỏi nhá>   10/7/2009, 10:51 am

Code:
import java.util.Scanner;
class PhuongTrinhBac2
{
   public static void main(String[] args)
   {
      //nh?p và in ra a,b,c//
      Scanner inputData = new Scanner(System.in);
      //inputData.nextbyte();
      int a,b,c;
      float x1,x2,Delta;
      System.out.print("\n nh?p a=");
      a= inputData.nextInt();
      System.out.printf("a=%d",a);
      System.out.print("\n nh?p b=");
      b=inputData.nextInt();
      System.out.printf("b=%d",b);
      System.out.print("\n nh?p c=");
      c=inputData.nextInt();
      System.out.printf("c=%d",c);
      //gi?i phuong trình b?c 2//
      if (a!=0)
      {
         
         Delta=(float)((b*b)-(4*a*c));
         System.out.printf("\n Delta=%f",Delta);
         
         if(Delta>0)
         {
            x1=(float)((-b+Math.sqrt(Delta))/(2*a));
            System.out.printf("\n phuong trình có 2 nghi?m x1= "+x1);
            x2=(float)((-b-Math.sqrt(Delta))/(2*a));
            System.out.printf("\n phuong trình có 2 nghi?m x2= "+x2);
            
         }
         if(Delta==0)
            
            { float x12;
                  x12=(float)(-b/(2*a));
               System.out.printf("\n phuong trình có nghi?m kép x12=x1=x2= "+x12);
            }
         else
         {
            System.out.printf("\n phuong trình vo nghiem");
         }      
      }
   if(a==0&&b!=0)
   {
      float x=(float)(-c/b);
      System.out.printf("\n phuong trinh co mot nghiem bac 1 x= "+x);
   }
      
      if(a==0&&b==0&&c==0)
      {
         System.out.print("\n phuong trình có vo so nghiem");
      }
   }
}
Về Đầu Trang Go down
Xem lý lịch thành viên
Lee87

avatar

Tổng số bài gửi : 71
Points : 107
Reputation : 5
Join date : 10/07/2009
Age : 30
Đến từ : Hà Nội

Bài gửiTiêu đề: Re: đáp án bài tập 3<đây là cách làm của mình có gì thắc mắc comment cùng thảo luận nhá>....<ai có giải thuật nào hay thì cùng commẻnt và share cho mọi người cùng học hỏi nhá>   10/7/2009, 6:03 pm

Đây là phương trình bậc 2 nên a không thế bằng 0. nến bài này xét theo điều kiện if(a==0&&b!=0) của cậu là sai rùi.
Vì nếu xét theo delta chẳng hạn, nếu như delta > 0 thì phương trình sẽ không thể tính đc nghiệm. nếu là phương trình bấc 2 mình nghĩ bạn nên xét điều kiện a== 0 thì phải báo lỗi. a bắt buộc không thể là 0.
Chúc bạn thành công. Very Happy
Về Đầu Trang Go down
Xem lý lịch thành viên
wind_and_cloud_only



Tổng số bài gửi : 18
Points : 28
Reputation : 0
Join date : 10/07/2009

Bài gửiTiêu đề: Re: đáp án bài tập 3<đây là cách làm của mình có gì thắc mắc comment cùng thảo luận nhá>....<ai có giải thuật nào hay thì cùng commẻnt và share cho mọi người cùng học hỏi nhá>   10/7/2009, 11:53 pm

Nếu chỉ giải theo a!=0 thì có thể lòng thêm vòng lặp while hay do-while gì đó để loại bỏ trường hợp a=0 khi nhập từ bàn phím...chứ nếu chỉ dùng câu lệnh if else thì pải xét đến đk a=0 nữa chứ?vì lúc nhập từ bàn phím là nhập bất kì, chứ có phải mình biết trước mà nhâp đâu?
Về Đầu Trang Go down
Xem lý lịch thành viên
Lee87

avatar

Tổng số bài gửi : 71
Points : 107
Reputation : 5
Join date : 10/07/2009
Age : 30
Đến từ : Hà Nội

Bài gửiTiêu đề: Re: đáp án bài tập 3<đây là cách làm của mình có gì thắc mắc comment cùng thảo luận nhá>....<ai có giải thuật nào hay thì cùng commẻnt và share cho mọi người cùng học hỏi nhá>   11/7/2009, 1:07 am

wind_and_cloud_only đã viết:
Nếu chỉ giải theo a!=0 thì có thể lòng thêm vòng lặp while hay do-while gì đó để loại bỏ trường hợp a=0 khi nhập từ bàn phím...chứ nếu chỉ dùng câu lệnh if else thì pải xét đến đk a=0 nữa chứ?vì lúc nhập từ bàn phím là nhập bất kì, chứ có phải mình biết trước mà nhâp đâu?
Code:



import java.util.Scanner;

public class Ex3 {
    // Tao ham Input
    static void Input(){
        float a,b,c,d;
        Scanner input = new Scanner(System.in); //Khoi tao phuong thuc nhap input
        System.out.print("Nhap a = "); a = input.nextFloat(); // Nhap a
        System.out.print("\nNhap b = "); b = input.nextFloat(); // Nhap b
        System.out.print("\nNhap c = "); c = input.nextFloat(); // Nhap c
        d = (float) (Math.pow(b, 2) - 4 * (a * c)); // Tinh delta
        if(d<0)
              System.out.println("\nPhuong trinh da cho vo nghiem.");
        else{
            if(d==0){
                System.out.println("\nPhuong trinh da cho co nghiem kep: ");
                System.out.println("X1 = X2 = "+(-b/(2*a)));
            }
            else{
                System.out.println("\nPhuong trinh da cho co 2 nghiem phan biet:");
                System.out.print("\nX1 = "+((-b+Math.sqrt(d))/(2*a))); // nghiem X1
                System.out.print("\nX2 = "+((-b-Math.sqrt(d))/(2*a))); // nghiem X2
            }
        }
    }
    // Ham chinh
    public static void main(String[] chuoi){
        Input();
    }

}

Vậy bạn chạy thử chương trình này của mình, mình không kiểm tra a, và bạn nhập vào anh chàng a = = 0 xem có hiện tượng j xảy ra nhé.
và nếu là phương trình bậc 2 bặt buộc phải có thằng delta, vậy nếu bạn tính delta xem nếu nó phù hợp thì xem nghiệm nó báo cái j nhé.
nên theo mình chỉ cần thằgn a ==0 ==>> stop ngay chương trình. không cần tính toán. :idea:
Về Đầu Trang Go down
Xem lý lịch thành viên
wind_and_cloud_only



Tổng số bài gửi : 18
Points : 28
Reputation : 0
Join date : 10/07/2009

Bài gửiTiêu đề: Re: đáp án bài tập 3<đây là cách làm của mình có gì thắc mắc comment cùng thảo luận nhá>....<ai có giải thuật nào hay thì cùng commẻnt và share cho mọi người cùng học hỏi nhá>   11/7/2009, 9:17 pm

Nếu làm được theo cách của ấy nói cũng hay, nhưng mình chạy thử chương trình ấy làm, nếu mình nhập a=0,b=0,c=1; ctrình sẽ cho kết quả là:
Phuong trinh da cho co nghiem kep:
X1 = X2 = NaN


Còn nếu mình chạy nó với:

Nhap a = 0

Nhap b = 1

Nhap c = 1

Phuong trinh da cho co 2 nghiem phan biet:

X1 = NaN
X2 = -Infinity
Process completed.
Về Đầu Trang Go down
Xem lý lịch thành viên
wind_and_cloud_only



Tổng số bài gửi : 18
Points : 28
Reputation : 0
Join date : 10/07/2009

Bài gửiTiêu đề: Re: đáp án bài tập 3<đây là cách làm của mình có gì thắc mắc comment cùng thảo luận nhá>....<ai có giải thuật nào hay thì cùng commẻnt và share cho mọi người cùng học hỏi nhá>   11/7/2009, 9:19 pm

vì thế nên mình nghĩ phải cài điều kiện cho a, để khi người nhập nhập a=0 thì chương trình yêu cầu nhập lại với a!=0
Về Đầu Trang Go down
Xem lý lịch thành viên
Lee87

avatar

Tổng số bài gửi : 71
Points : 107
Reputation : 5
Join date : 10/07/2009
Age : 30
Đến từ : Hà Nội

Bài gửiTiêu đề: Re: đáp án bài tập 3<đây là cách làm của mình có gì thắc mắc comment cùng thảo luận nhá>....<ai có giải thuật nào hay thì cùng commẻnt và share cho mọi người cùng học hỏi nhá>   12/7/2009, 9:06 am

wind_and_cloud_only đã viết:
vì thế nên mình nghĩ phải cài điều kiện cho a, để khi người nhập nhập a=0 thì chương trình yêu cầu nhập lại với a!=0
I'm agree! :lol:
Bạn có thể thêm đoạn mã này vào sau khi nhập a để kiểm tra điều kiện.
Code:

do{
      if(a==0){
                    System.out.println("Yeu cau nhap lai:");
                    System.out.print("\nNhap a = ");
                    a = input.nextFloat();
        }
      else
            break;
}while(true);
Về Đầu Trang Go down
Xem lý lịch thành viên
Sponsored content




Bài gửiTiêu đề: Re: đáp án bài tập 3<đây là cách làm của mình có gì thắc mắc comment cùng thảo luận nhá>....<ai có giải thuật nào hay thì cùng commẻnt và share cho mọi người cùng học hỏi nhá>   

Về Đầu Trang Go down
 
đáp án bài tập 3<đây là cách làm của mình có gì thắc mắc comment cùng thảo luận nhá>....<ai có giải thuật nào hay thì cùng commẻnt và share cho mọi người cùng học hỏi nhá>
Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang
 Similar topics
-
» Hướng dẫn cách Refer Friend

Permissions in this forum:Bạn không có quyền trả lời bài viết
Forum Java Ptit-Aptech :: THẢO LUẬN VỀ JAVA :: ARRAY-STRING-CLASS-
Chuyển đến 
Free forum | © phpBB | Free forum support | Report an abuse | Free blog