Follow us on...
Follow us on Twitter Follow us on Facebook Watch us on YouTube

Mời tài trợ sinh nhật diễn đàn 8 năm

Tìm HD - Phần mềm tìm và xem phim HD miễn phí

Đăng ký tham gia offline VN-Zoom 8 năm tại HCM

Chiêm ngưỡng BaoMoi đẹp "tuyệt diệu" trên Windows Phone

Tài trợ VNZ Siêu phẩm Tân Kiếm Thế chibi 3D mới

Tuyển BQT VN-Zoom
kết quả từ 1 tới 12 trên 12
  1. #1
    hainova's Avatar
    hainova vẫn chưa có mặt trong diễn đàn Búa Gỗ
    Tham gia
    Jun 2010
    Bài
    22
    Cảm ơn
    1
    Điểm
    4/4 bài viết
    VR power
    0

    Default Giup minh lam bai tap C++ voi

    C++ co kieu du lieu nguyen lon nhat la long hoac longlong(32/64)bit tuy trinh bien dich va he dieu hanh.
    hay viet chuong trinh cho phep tinh toan so nguyen voi luong chu so bat ky(cong , tru, nhan, chia nguyen,
    chia du). dung truct/class.A e nao biet chi dum. thanks nhieu

  2. #2
    linux87's Avatar
    linux87 vẫn chưa có mặt trong diễn đàn Rìu Bạc Đôi
    Tham gia
    Apr 2008
    Bài
    474
    Cảm ơn
    2
    Điểm
    71/63 bài viết
    VR power
    0

    Default

    Trích hainova View Post
    C++ co kieu du lieu nguyen lon nhat la long hoac longlong(32/64)bit tuy trinh bien dich va he dieu hanh.
    hay viet chuong trinh cho phep tinh toan so nguyen voi luong chu so bat ky(cong , tru, nhan, chia nguyen,
    chia du). dung truct/class.A e nao biet chi dum. thanks nhieu
    cấu trúc ở đây là lưu số dưới dạng mạng hoặc xâu, 1 phần tử của mảng là một chữ số

    về các phép toán cộng trừ nhân chia thì thực hiện y như hồi học cấp 1 ý (không biết thì có thể hỏi các em ý)

  3. #3
    dienkt's Avatar
    dienkt vẫn chưa có mặt trong diễn đàn Búa Gỗ Đôi
    Tham gia
    Jun 2008
    Đến từ
    Đà Nẵng
    Bài
    31
    Cảm ơn
    8
    Điểm
    70/6 bài viết
    VR power
    0

    Default

    Trích linux87 View Post
    cấu trúc ở đây là lưu số dưới dạng mạng hoặc xâu, 1 phần tử của mảng là một chữ số

    về các phép toán cộng trừ nhân chia thì thực hiện y như hồi học cấp 1 ý (không biết thì có thể hỏi các em ý)
    Giúp thì chẳng giúp mà nói thế này ai biết đường mà làm

  4. #4
    hainova's Avatar
    hainova vẫn chưa có mặt trong diễn đàn Búa Gỗ
    Tham gia
    Jun 2010
    Bài
    22
    Cảm ơn
    1
    Điểm
    4/4 bài viết
    VR power
    0

    Default

    Trích linux87 View Post
    cấu trúc ở đây là lưu số dưới dạng mạng hoặc xâu, 1 phần tử của mảng là một chữ số

    về các phép toán cộng trừ nhân chia thì thực hiện y như hồi học cấp 1 ý (không biết thì có thể hỏi các em ý)
    ban co the noi ro hon duoc khong

  5. #5
    liema222's Avatar
    liema222 vẫn chưa có mặt trong diễn đàn Búa Đá Đôi
    Tham gia
    Mar 2008
    Bài
    88
    Cảm ơn
    117
    Điểm
    19/13 bài viết
    VR power
    0

    Default

    Trích hainova View Post
    C++ co kieu du lieu nguyen lon nhat la long hoac longlong(32/64)bit tuy trinh bien dich va he dieu hanh.
    hay viet chuong trinh cho phep tinh toan so nguyen voi luong chu so bat ky(cong , tru, nhan, chia nguyen,
    chia du). dung truct/class.A e nao biet chi dum. thanks nhieu
    Viết tiếng việt có dấu đê, "luong chu so bat ky" nghĩa là gì? nghĩa là số đó có thể có bao nhiêu chữ số tùy ý ko bị giới hạn hay là gì.

  6. #6
    gacon712's Avatar
    gacon712 vẫn chưa có mặt trong diễn đàn Rìu Bạc Đôi
    Tham gia
    Mar 2009
    Đến từ
    http://laptrinhs2.com/
    Bài
    617
    Cảm ơn
    45
    Điểm
    247/102 bài viết
    VR power
    0

    Default

    cộng trừ các số rất lớn ak bạn :s

  7. #7
    hainova's Avatar
    hainova vẫn chưa có mặt trong diễn đàn Búa Gỗ
    Tham gia
    Jun 2010
    Bài
    22
    Cảm ơn
    1
    Điểm
    4/4 bài viết
    VR power
    0

    Default

    đúng rồi đó bạn tính toán trên số nguyên lớn thật lớn có thể lên tới hàng trăm chữ số. mình mới học nên cũng không rành lắm mong các bạn giúp đỡ.

    ---------- Post added at 10:50 ---------- Previous post was at 10:45 ----------

    đúng rồi bao nhiêu chữ số cũng được

  8. #8
    shinkurei's Avatar
    shinkurei vẫn chưa có mặt trong diễn đàn Rìu Sắt Đôi
    Tham gia
    Dec 2007
    Bài
    211
    Cảm ơn
    145
    Điểm
    40/30 bài viết
    VR power
    0

    Default

    bạn biết tạo danh sách liên kết đôi không?? dùng nó để chứa số nguyên vô định!
    còn về phép cộng thì bạn phải tạo 3 danh sách chứa các số: sử dụng hàm while để duyệt
    a+b=c
    thao tác là cho nó duyệt tứng phần tử cuối ds a+ cuối phần tử ds b,
    tạo 1 biến : nhớ=nhớ+(a+b);//
    x=nhớ%10;
    chèn phần tử x vào ds c: inserthead(c,x)///hàm da tạo trong ds lk
    nhớ=nhớ/10;
    .......
    if(nho>0) inserthead(c.nho)

  9. #9
    shinkurei's Avatar
    shinkurei vẫn chưa có mặt trong diễn đàn Rìu Sắt Đôi
    Tham gia
    Dec 2007
    Bài
    211
    Cảm ơn
    145
    Điểm
    40/30 bài viết
    VR power
    0

    Default

    (cái này st nhe)
    Dùng xâu ký tự để diễn số nguyên lớn với cấu trúc như sau: Các chữ số được viết theo chiều ngược lại. Nếu số nguyên có n chữ số thì xâu
    tương ứng có n+2 byte (phía cuối thêm 2 byte, byte thứ nhất chứa dấu '-' nếu đó là số âm, hoặc null nếu số dương, byte cuối cùng là null). Ví dụ, số a = 12345678901234567890 được biểu diễn bởi xâu xa = "09876543210987654321"nulnul, còn b = -12345678901234567890 được biểu diễn bởi xâu xb = "09876543210987654321-"nul. Để xác định số -a ta chỉ việc thay null đầu tiên bởi '-' , và –b nhận được bằng cách thay '-' bởi null.
    Việc biểu diễn ngược đó thuận tiện trong các thao tác về cộng, trù, nhân chia mà không phải chèn thêm '0' (leading zero). Sau đây là một số giải thuật về cộng, trù, nhân chia các số không âm (Các số âm sẽ được nói sau). Trước hết, ta cần định nghĩa:
    #define zero '0'
    typedef char* pchar;
    //Một số hàm liên quan đến cộng, trừ, nhân hai ký tự biểu thị số:
    int val(char chr) {return chr-zero;} // Giá trị tương ứng với ký tự chr biểu thị số
    char chr(int num) {return num + zero;} // Ký tự tương ứng với giá trị num
    int strlen(const pchar a) // Độ dài của xâu
    { pchar p = a; while (*p) p++; return p-a;}
    ///////////////////////////////////*Giải thuật cộng: Thông thường, khi cộng hai số có nhiều chữ số, chúng ta thực hiện từ phải qua trái. Với mỗi lần cộng, kết quả của nó còn được cộng với giá trị nhớ của lần trước đó và đồng thời cũng xác định giá trị nhớ mới. Ở đây, vì các số được lưu theo chiều ngược lại nên chúng ta thực hiện từ trái qua phải, tức là từ đầu đến cuối xâu. Do đó code có thể là: */
    char chradd(char a, char b, int &carry) // Cộng hai chữ số
    {
    int temp = val(a) + val(b) + carry;
    carry = temp/10;
    return chr(temp %10);
    }
    pchar stradd (const pchar a, const pchar b, const pchar c) // Cộng hai số có nhiều chữ số
    {
    int i = 0, carry = 0; //Ban đầu, nhớ bằng 0
    while(a[i] && b[i]) c[i++] = chradd(a[i],b[i],carry); // Cộng lần lượt từ đầu đến cuối
    if(a[i]) // Nếu xâu a dài hơn xâu b
    while (a[i]) c[i++] = chradd(a[i],zero,carry); // Cộng tiếp a[i] với 0
    else // Nếu xâu b dài hơn
    while (b[i]) c[i++] = chradd(b[i],zero,carry); // Cộng tiếp b[i] với 0
    if (carry) c[i++] = chr(carry); //Nếu cuối cùng mà nhớ khác 0
    c[i] = 0; // Đặt null vào cuối
    return c;
    }

    ---------- Post added at 22:40 ---------- Previous post was at 22:38 ----------

    Giải thuật trừ: Giống như cộng, chúng ta cũng thực hiện từ phải qua trái. Với mỗi lần trừ, đề phòng chữ số của số bị trừ nhỏ hơn nên ta cứ vay tạm một chục. Nếu lần trước đã vay rồi thì lần này phải trừ đi. Nhưng chỉ đáng vay nếu kết quả sau khi trừ là bé hơn 10, còn lớn hơn 10 là không phải vay.
    Dưới đây ta xem rằng a >= b:
    char chrsub(char a, char b, int &carry)
    {
    int temp = 10 + val(a) - val(b) - carry; // Cứ vay 10 rồi trừ đi (kể cả cho nhớ cũ)
    carry = 1 - temp/10; // Nếu sau trừ mà >= 10 thì không phải vay
    return chr(temp %10);
    }
    pchar strsub (const pchar a, const pchar b, const pchar c) // Trừ số có nhiều chữ số
    {
    int i = 0, carry = 0;
    while (a[i] && b[i]) c[i++] = chrsub(a[i],b[i],carry);
    while (a[i]) c[i++] = chrsub(a[i],zero,carry);
    while (i > 0 && c[--i] == zero);
    c[++i]=0;
    return c;
    }

    Như chúng ta vẫn làm, kết quả của a – b với a < b chính là –(b – a), vì vậy cần viết hàm so sánh. Số nào có nhiều chữ số thì số đó lớn hơn. Khi hai số có số các chữ số khác nhau thì sự so sánh này được thực hiện từ phải qua trái do chúng ta lưu ngược lại.
    int strrcmp(const pchar a, const pchar b)
    {
    int aj = strlen(a), bj = strlen(b);
    while (aj && a[--aj]== zero); //Bỏ qua các '0' ở cuối của a
    while (bj && b[--bj]== zero); //Bỏ qua các '0' ở cuối của b
    if (aj > bj) return 1; //Nếu xâu a dài hơn thì a > b
    if (aj < bj) return -1; //Nếu xâu a ngắn hơn thì a < b
    while (aj && a[aj]==b[aj])aj--; // Nếu độ dài như nhau thì tìm đến chữ số khác nhau đầu tiên
    return a[aj] - b[aj]; // So sánh hai chữ số đó, cùng lắm thì so các chữ số đầu tiên.
    }

    /////
    pchar strcpy (const pchar dest, const pchar src) // Sao chép src vào dest
    {
    int k = 0;
    while (src[k]) dest[k] = src[k++];
    dest[k] = 0;
    return dest;
    }
    pchar strrev( const pchar src, const pchar dest) //Hàm trỏ tới xâu dest, là đảo ngược của xâu src
    {
    strcpy(dest,src); // Khi dest trùng với src vẫn dùng được
    int len = strlen(src);
    for (int k = 0; k < len/2; k++)
    {
    char temp = dest[k];
    dest[k] = dest[len-k-1];
    dest[len-k-1] = temp;
    }
    return dest;
    }
    Thay đổi nội dung bởi shinkurei; 25-06-2010 lúc 22:42. Lý do: lỗi

  10. #10
    2509028's Avatar
    2509028 vẫn chưa có mặt trong diễn đàn Rìu Sắt Đôi
    Tham gia
    Dec 2007
    Bài
    233
    Cảm ơn
    69
    Điểm
    221/58 bài viết
    VR power
    0

    Default

    không hiểu gì về lập trình.chắc sang năm học vài khóa mới dc

  11. #11
    hainova's Avatar
    hainova vẫn chưa có mặt trong diễn đàn Búa Gỗ
    Tham gia
    Jun 2010
    Bài
    22
    Cảm ơn
    1
    Điểm
    4/4 bài viết
    VR power
    0

    Default

    thanks shinkurei nhiều nhé

  12. #12
    cerci's Avatar
    cerci vẫn chưa có mặt trong diễn đàn Gà Con
    Tham gia
    Dec 2007
    Bài
    8
    Cảm ơn
    1
    Điểm: 1/1 bài viết
    VR power
    0

    Default

    Cho mình ké tí nhe, không hiểu sao mình post bài mới kô đc
    Hiện giờ mình có bài tập này cần làm mà không viết được full code chỉ viết đc tí, pro nào giúp mình giải với nha, thanks.

    Tập hợp số hữu tỉ
    Cho An là tập hợp n số hữu tỉ, hãy viết chương trình cho phép nhập hoặc phát sinh ngẫu nhiên
    các phần tử của tập hợp và thực hiện các phép tính trên tập hợp số này. Các phép tính bao
    gồm: Hội 2 tập hợp, giao 2 tập hợp, trừ 2 tập hợp, xác định mối quan hệ giữa hai tập hợp (chacon,
    bằng), tìm max, tìm min
    Hướng dẫn
    Dùng struct/class để biễu diễn số hữu tỉ:
    typedef struct{
    iTu, iMau;
    } Phanso;
    Dùng struct/class kết hợp mảng các Phanso để biểu diễn tập hợp
    typedef struct{
    int iN; // Số lượng phần tử trong tập hợp
    Phanso *pPhantu;
    } TaphopHuuti;

 

 

Quyền sử dụng

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