Từ 1 tới 9 trên tổng số 9 kết quả

Đề tài: 2 bài tập: Tối giản phân số, giải phương trình bậc 2

  1. #1
    Ngày gia nhập
    11 2008
    Bài viết
    10

    Mặc định 2 bài tập: Tối giản phân số, giải phương trình bậc 2

    1. Fraction Simplifier
    Your company has been asked to write a fraction calculator. Your group has been assigned the task of simplifying fractions.
    Main Program
    Design and code a program that simplifies fractions. Your program prompts for and accepts the numerator and denominator of a fraction and displays the fraction in simplified form. To calculate the simplified numerator and denominator, your program calls the simplify function described below.
    The output from your program looks something like

    Fraction Simplifier
    ===================
    Numerator: 4
    Denominator: 16

    4 / 16 = 1 / 4

    simplify Function
    Design and code a function named simplify that simplifies the numerator and denominator of a fraction. The function receives the addresses of two int variables. The variables themselves holds the numerator and denominator respectively. The function resets those variables to the simplified numerator and denominator values, if simplification was possible. The function does not return any value itself. The header of your function looks something like:

    void simplify(int *numerator, int *denominator)

    Include negative as well as zero values in your test cases.

    2. roots Function
    Design and code a C function named roots that calculates the roots of a quadratic equation. Your function receives three doubles that hold the coefficients of the quadratic equation and returns through two other double parameters the real roots of the equation. The function returns the number of real roots as the return value of the function itself. The header for your function looks something like

    int roots(double a, double b, double c, double *x1, double *x2)

    Consider the quadratic equation:
    f(x) = a * x2 + b * x + c

    where a, b and c are constant coefficients. This equation may have up to 2 real roots. The roots are the values of x for which
    a * x2 + b * x + c = 0

    The roots are given by the equations
    x1 = ( - b + sqrt( D ) ) / ( 2 * a )
    x2 = ( - b - sqrt( D ) ) / ( 2 * a )
    where D is the discriminant
    D = b2 - 4 * a * c
    If D is positive-valued, there are 2 real roots. If D is zero-valued, there is one real root. If D is negative-valued, there are no real roots.
    If there is one real root, set x1 to its value and leave x2 unchanged. If there are no real roots, leave x1 and x2 unchanged.

    Đây là Code demo ...........
    Attached Files Attached Files

  2. #2
    Ngày gia nhập
    11 2008
    Bài viết
    203

    Rốt cục bạn muốn hỏi gì đây? Có code rồi mà còn hỏi gì nữa. Có gì khó nói thì cứ PM cho mình.
    Tôi tin rằng: giải thuật thì có thể tìm trong hàng trăm GB ebook, hoặc Google nhưng code chạy thì chưa chắc! Hãy post code để chứng tỏ giải thuật của bạn là đúng!
    Giải thuật là bản thiết kế của ngôi nhà, code là phần xây dựng. Nếu chỉ xây nhà trên giấy thì ta sống chả khác nào người nguyên thủy.

  3. #3
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    Rốt cục bạn muốn hỏi gì đây? Có code rồi mà còn hỏi gì nữa. Có gì khó nói thì cứ PM cho mình.
    đây
    Cac bac lam ho em voi ...12h trua nay nop roi
    Nó chỉ đơn giản là 1 bài rút gọn phân số, một bài giải phương trình bậc 2 nhưng lười không chịu làm, lên đây xin code, sao tiến bộ được.

    Code thì trên diễn đàn không thiếu, hướng làm thì như sau:

    - Bài 1 viết thêm một hàm tính UCLN của 2 số nguyên a, b để đảm bảo đúng đắn cho cả số âm khi rút gọn phân số, bạn dùng thuật toán nếu u là UCLN của a và b thì u là UCLN của a%b và b (với a>b). Hoàn thành cái hàm rút gọn phân số bằng cách chia cả tử và mẫu cho UCLN của chúng.

    - Bài 2 hẳn bạn đã học giải và biện luận phương trình bậc 2 trong toán, hãy viết code bám sát vào đó. Dùng các điều kiện của delta D mà kết luận nghiệm.

    * Còn nếu lý do không làm được là đọc đề không hiểu thì pm lại để dịch.

  4. #4
    Ngày gia nhập
    11 2008
    Bài viết
    203

    Bài 1: Làm gần giống yêu cầu. Ai giúp mình edit cho đúng với yêu cầu cái.
    Thanks!
    PHP Code:
    #include<stdio.h>
    #include<conio.h>

    int LCM(int,int);
    void simplify(int& ,int&);
    int main()
    {
        
    int tumau;
        
    printf("Nhap tu so: ");
        
    scanf("%d",&tu);
        do
        {
            
    printf("Nhap mau so: ");
            
    scanf("%d",&mau);
        }while(
    mau==0);
        
    printf("Phan so vua nhap: %d/%d",tu,mau);
        
    simplify(tu,mau);
        
    printf("\nPhan so toi gian: %d/%d",tu,mau);
        
    getch();
        return 
    0;    
    }

    int LCM(int aint b)
    {
        
        if(
    a==0)
            return 
    b;    
        if(
    b==0)
            return 
    a;
        
    int c;
        if(
    a<0)
            
    a=-a;
        if(
    b<0)
            
    b=-b;
        do
        {
            
    c=a%b;
            
    a=b;
            
    b=c;        
        }while(
    b>0);
        return 
    a;
        
    }
    void simplify(int &aint &b)
    {
        
    int c=LCM(a,b);
        
    a/=c;
        
    b/=c;    

    Bài 2:
    Code không chạy, post lên nhờ các bạn sửa giúp.
    PHP Code:
    #include<stdio.h>
    #include<conio.h>
    #include<math.h>
    int roots(doubledoubledoubledouble &, double &);
    int main()
    {
        
    double abcx1=0.0,x2=0.0;
        
        
    printf("Nhap vao he so a: ");
        
    scanf("%lf",&a);
        
    printf("Nhap vao he so b: ");
        
    scanf("%lf",&b);
        
    printf("Nhap vao he so c: ");
        
    scanf("%lf",&c);
        
    printf("\n%lf %lf %lf",a,b,c);
        
    roots(abcx1x2);
        
    printf("\n%lf %lf",x1x2);
        
    getch();
        return 
    0;    
    }

    int roots(double adouble bdouble cdouble &x1double &x2)
    {
        
    double D=b*b-4*a*c;
        if(
    D<0)
            return 
    0;
        if(
    D==0)
        {
            
    x1=-b/2*a;
            
    x2=-b/2*a;    
            return 
    1;
        }
        if(
    D>0)
        {
            
    x1=(-b+sqrt(D))/2*a;
            
    x1=(-b-sqrt(D))/2*a;
            return 
    2;
        }

    Đã được chỉnh sửa lần cuối bởi Loveanygirls : 11-06-2009 lúc 10:49 AM.
    Tôi tin rằng: giải thuật thì có thể tìm trong hàng trăm GB ebook, hoặc Google nhưng code chạy thì chưa chắc! Hãy post code để chứng tỏ giải thuật của bạn là đúng!
    Giải thuật là bản thiết kế của ngôi nhà, code là phần xây dựng. Nếu chỉ xây nhà trên giấy thì ta sống chả khác nào người nguyên thủy.

  5. #5
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    Demo thôi nhé, khi nhập phân số phải check điều kiện mẫu khác 0;
    C Code:
    1. /**
    2.   **/
    3. #include<stdio.h>
    4. /*
    5. */
    6. void simplify(int *numerator, int *denominator)
    7. {
    8.     int a = *numerator, b = *denominator, ucln = a;
    9.     while (b)
    10.     {
    11.         ucln = b;
    12.         b = a%b;
    13.         a = ucln;
    14.     }
    15.     printf("%d\n",ucln);
    16.     *numerator /= ucln;
    17.     *denominator /= ucln;
    18. }
    19.  
    20. int main()
    21. {
    22.     int nume = 8, dino = -6;
    23.     simplify(&nume,&dino);
    24.     printf("%d/%d",nume,dino);
    25. }
    với TH tử bằng 0, kết quả là 0/1, tuy hơi lạ nhưng không sai. Còn lại có vẻ ổn.

    @Loveanygirls: cố gắng khi làm C thì dùng đúng chuẩn của C, không truyền tham chiếu vào hàm (vì không có khái niệm đó, C++ mới có), cần truyền dưới dạng con trỏ như đầu bài chuẩn ở trên.

    @Edit: Thêm code bài 2. Server quá tải giờ mới vào đc,nản.
    C Code:
    1. /**
    2.   **/
    3. #include<stdio.h>
    4. #include<math.h>
    5. /*
    6. */
    7. int roots(double a, double b, double c, double *x1, double *x2);
    8.  
    9. int main()
    10. {
    11.     double a, b, c, x1, x2;
    12.  
    13.     printf("Nhap vao he so a: ");
    14.     scanf("%lf",&a);
    15.     printf("Nhap vao he so b: ");
    16.     scanf("%lf",&b);
    17.     printf("Nhap vao he so c: ");
    18.     scanf("%lf",&c);
    19.     printf("\n%lf %lf %lf\n",a,b,c);
    20.  
    21.     int r = roots(a, b, c, &x1, &x2);
    22.     if (!r) printf(" -> Phuong trinh vo nghiem.");
    23.     else if (r==1) printf(" -> Phuong trinh co nghiem kep x = %f",x1);
    24.     else  printf(" -> Phuong trinh co 2 nghiem pb: \n\tx1 = %f \n\tx2 = %f",x1,x2);
    25.  
    26.     return 0;
    27. }
    28.  
    29. int roots(double a, double b, double c, double *x1, double *x2)
    30. {
    31.     double D=b*b-4*a*c;
    32.     if (D<0)
    33.         return 0;
    34.     if (D==0)
    35.     {
    36.         *x1 = -b/2*a;
    37.         return 1;
    38.     }
    39.     if (D>0)
    40.     {
    41.         *x1 = (-b+sqrt(D))/(2*a);
    42.         *x2 = (-b-sqrt(D))/(2*a);
    43.         return 2;
    44.     }
    45. }
    Đã được chỉnh sửa lần cuối bởi QuangHoang : 11-06-2009 lúc 10:43 AM.

  6. #6
    Ngày gia nhập
    11 2008
    Bài viết
    203

    Mặc định 2 bài tập: Tối giản phân số, giải phương trình bậc 2

    Mình và chủ thớt cám ơn QuangHoang nhiều lắm!
    Tôi tin rằng: giải thuật thì có thể tìm trong hàng trăm GB ebook, hoặc Google nhưng code chạy thì chưa chắc! Hãy post code để chứng tỏ giải thuật của bạn là đúng!
    Giải thuật là bản thiết kế của ngôi nhà, code là phần xây dựng. Nếu chỉ xây nhà trên giấy thì ta sống chả khác nào người nguyên thủy.

  7. #7
    Ngày gia nhập
    06 2009
    Bài viết
    1

    có ai biết thuật toán sau là như thế nào không;
    nhập 1 danh sách họ tên
    sau đó sắp xếp danh sách theo họ tên là sao nhỉ?
    làm ơn nói giúp mình với nha
    2 ngày nữa là thi rồi
    hiuhu

  8. #8
    Ngày gia nhập
    11 2008
    Bài viết
    203

    Giải thuật đã thành code này:
    PHP Code:
    #include<stdio.h>
    #include<conio.h>
    #include<string.h>

    int main()
    {
        
        
    charmang5contro[5];
        
    char  danhsachhoten[5][100];//5 ho ten, moi ho ten khong qua 100 ki tu
        //NHAP DANH SACH HO TEN
        
    for(int i=0;i<5;i++)
        {
            
    printf("Nhap vao mot ho ten: ");
            
    scanf("%s",danhsachhoten[i]);
            
    mang5contro[i]=danhsachhoten[i];    
            
        }
        
    printf("\nDanh sach nhap vao:\n");
        for(
    int i=0;i<5;i++)
        {
            
    printf("\n%s",mang5contro[i]);
            
        }
        
        
    //SAP XEP
        
    for(int i=0;i<4;i++)
        {
            for(
    int j=0;j<5;j++)
            {
                if(
    strcmp(danhsachhoten[i],danhsachhoten[j])>0)
                {
                    
    chartemp;
                    
    temp=mang5contro[i];
                    
    mang5contro[i]=mang5contro[j];
                    
    mang5contro[j]=temp;                
                    
                }    
                
            }    
        
        }
        
    //HIEN THI
        
    printf("\nDanh sach sau khi sap xep tang dan:\n");
        for(
    int i=0;i<5;i++)
        {
            
    printf("\n%s",mang5contro[i]);
            
        }
        
    getch();
        return 
    0;
        

    Tôi tin rằng: giải thuật thì có thể tìm trong hàng trăm GB ebook, hoặc Google nhưng code chạy thì chưa chắc! Hãy post code để chứng tỏ giải thuật của bạn là đúng!
    Giải thuật là bản thiết kế của ngôi nhà, code là phần xây dựng. Nếu chỉ xây nhà trên giấy thì ta sống chả khác nào người nguyên thủy.

  9. #9
    Ngày gia nhập
    12 2008
    Bài viết
    235

    Nếu mà sắp xếp đúng thì phải tách tên ra.Sắp xếp theo tên ấy. Toàn bài trên lớp mà lên xin code. Chẳng hiểu các bạn đã học chút nào cho kì thi chưa nữa

Các đề tài tương tự

  1. Cung cấp giấy ik plus, Paper One, Plus A+, Double A, Giấy Thái Lan, Giấy Bãi Bằng, bìa màu, băng dính, mica các loại
    Gửi bởi dungptvietthanh trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 07-06-2013, 04:05 PM
  2. Chung cư Đại Thanh giảm sốc 10tr/vnđ cho các căn hộ. giảm và liên tục giảm…!!
    Gửi bởi lanthanh91 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 09-10-2012, 10:27 AM
  3. Trả lời: 0
    Bài viết cuối: 06-08-2012, 07:01 PM
  4. Trả lời: 0
    Bài viết cuối: 04-08-2012, 03:08 PM
  5. Trả lời: 0
    Bài viết cuối: 24-05-2012, 04:04 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn