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

Đề tài: [C]bài tập về thập phân và nhị phân

  1. #1
    No Avatar
    sonic33 Khách

    Mặc định [C]bài tập về thập phân và nhị phân

    giờ mình muốn ghép 2 bài này lại thành 1 nhưng mình ko biết cách ghép bân nào biết xin chỉ cho mình, mình cám ơn nhiều.

    NHỊ PHÂN SANG THẬP PHÂN:

    #include<iostream.h>
    #include<conio.h>
    #include<math.h>
    char y;
    int i,k,x,n,e,m;
    float tong;
    int a[20];
    main()
    {
    clrscr();
    cout<<"\nNhap m=: ";
    cin>>m;
    cout<<"\nNhap vao cac so nhi phan: ";
    for(i=1;i<=m;i++)
    cin>>a[i];
    i=1;
    k=1;
    while(k!=m)
    {
    n=a[i];
    if((n==1)||(n==0))
    {
    tong=tong+n*(pow(2,m-i));
    i=i+1;
    k=k+1;
    }
    else
    {
    cout<<"\nSo nhap khong phai la so nhi phan ";
    k=k+1;
    goto y;

    }
    }
    cout<<"\nSo nhi phan nhap vao la: ";
    cout<<"\nSo thap phan la: "<<tong;y :;
    for(i=1;i<=m;i++)
    cout<<a[i]<<" ";

    getch();
    }


    THẬP PHÂN SANG NHỊ PHÂN:

    #include<iostream.h>
    #include<conio.h>
    #include<math.h>
    int i,n,q,e,m;
    float tong;
    int a[100];
    main()
    {
    clrscr();
    cout<<"Nhap so thap phan: ";
    cin>>q;
    m=q;
    i=1;
    while(q!=0)
    {
    a[i]=q%2;
    q=q/2;
    i=i+1;
    n=n+1;
    }
    cout<<"\nSo thap phan la: "<<m<<"\So nhi phan: ";
    for(i=n;i>=1;i--)
    cout<<a[i]<<" ";
    getch();
    }

  2. #2
    Ngày gia nhập
    01 2007
    Bài viết
    412

    Bạn ơi, sao bạn không lập 2 hàm đổi thập phân sang nhị phân và ngược lại nhỉ, như thế bạn có thể dễ dàng làm 2 thao tác này trong 1 chương trình rồi.

  3. #3
    No Avatar
    sonic33 Khách

    mình ko biết cách viết như vậy bạn có thể giúp đỡ mình chứ

  4. #4
    Ngày gia nhập
    01 2007
    Bài viết
    412

    hix hix, đại ý là như thế này nè:
    void main()
    {
    nhập vào số nhị phân;
    nhập vào số thập phân;
    Dec2Bin(...) // hàm này dùng để chuyển đổi nhị phân sang thập phân
    Bin2Dec(...) // hàm này dùng để chuyển đổi thập phân sang nhị phân
    getch();
    }

    Với 2 hàm trên, bạn chỉ việc truyền vào các đối số tương ứng + thêm thuật toán bạn đã làm ở 2 bài riêng lẻ ở trên. Chúc bạn thành công!

  5. #5
    No Avatar
    sonic33 Khách

    mình ko muốn dùng hàm có sẵn đê chuyển sang.

  6. #6
    No Avatar
    Mr Cool Khách

    Mặc định [C]bài tập về thập phân và nhị phân

    Trích dẫn Nguyên bản được gửi bởi sonic33 Xem bài viết
    mình ko muốn dùng hàm có sẵn đê chuyển sang.
    Ý là bạn tổ chức thành 2 trương trình con Dec2Bin(...) ,Bin2Dec(...)
    Cía này là do bạn viết chứ không phải hàm sẵn ^^

  7. #7
    No Avatar
    sonic33 Khách

    mấy bạn ko hiểu ý mình rồi, mình ko muốn sử dụng hàm dec2bin(..) >_<

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

    Cái đoạn code trong hàm main thứ 1 bạn để vào 1 cái hàm, cái đoạn code trong ham main thứ 2 bạn để vào 1 cái hàm, muốn gọi nó lúc nào thì gọi.
    Bạn hãy giải thích rõ ràng: ghép 2 bài đó lại thành 1 để làm gì, cái chương trình cuối cùng mà bạn muốn nó thể hiện ra làm sao, nói 1 câu ghép ko thì chưa đủ, bao nhiêu người vào cho ý kiến bạn cũng ko chịu, sao ko nói rõ ràng cho người ta hiểu, bạn rắc rối thật.

  9. #9
    Ngày gia nhập
    02 2007
    Nơi ở
    TP.HCM - dưới cầu SG
    Bài viết
    12

    Chắc là bạn muốn gộp 2 chương trình thành 1 theo dạng: 1 chương trình làm 2 công việc phải ko. Nếu đúng thì quá đơn giản.
    Code:
    // gộp các thư viện lại
    #include<iostream.h>
    #include<conio.h>
    #include<math.h>
    
    // gộp các biến lại, nếu biến nào trùng thì phải đổi tên biến
    // để khi chạy, chúng ko bị chương trình dịch hiểu là một.
    // giữ lại các biến của đoạn 1
    char y;
    int i,k,x,n,e,m;
    float tong;
    int a[20];
    // biến của đoạn 2
    int j,r,q,f,s; // i cũ thay bằng j, n<->r,e<->f,m<->s  
    float tong1; // tong <-> tong1
    int b[100];// a[100] <-> b[100]
    
    // nhập 2 đoạn main lại với nhau, chỗ nào của đoạn 2 
    // có sử dụng những biến cũ thì ta thay bằng các biến mới
    main()
    {
      clrscr();
      cout<<"\nNhap m=: ";
      cin>>m;
      cout<<"\nNhap vao cac so nhi phan: ";
      for(i=1;i<=m;i++)
      cin>>a[i];
      i=1;
      k=1;
      while(k!=m)
      {
         n=a[i];
         if((n==1)||(n==0))
        {
           tong=tong+n*(pow(2,m-i));
           i=i+1;
           k=k+1;
         }
         else
        { 
           cout<<"\nSo nhap khong phai la so nhi phan ";
           k=k+1;
           goto y;
         }
       }
      cout<<"\nSo nhi phan nhap vao la: ";
      cout<<"\nSo thap phan la: "<<tong;
    y :;
      for(i=1;i<=m;i++)
         cout<<a[i]<<" ";
    getch();
    
    // đoạn chương trình 2 được gộp thêm vào
      clrscr();
      cout<<"Nhap so thap phan: ";
      cin>>q;
      s=q; // m đã được thay bằng s
      j=1; // i đã được thay bằng j
      while(q!=0)
     {
        b[j]=q%2; // a<-> b, i <-> j
        q=q/2;
        j=j+1;
        r=r+1;
      }
      cout<<"\nSo thap phan la: "<<s<<"\So nhi phan: ";
      for(j=r;j>=1;j--)
        cout<<b[j]<<" ";
      getch();
    }
    Tuy nhiên mình ko đảm bảo nó đúng đâu nha, chỉ đảm bảo là nếu 2 đoạn chương trình bạn đưa ra là đúng thì chương trình mình sửa lại cũng đúng. Thân!
    Nơi nào khiến anh dừng bước, nơi đó có em.

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