Chào, Khách!
  1. integer
    Offline
    integer   [1.695/1.313]
    Vào thời điểm này các bạn khóa 3 nắm bắt được ngôn ngữ C hoặc C++ rồi. để kiến thức đó đi vào thực tế, các bạn hãy cùng tham gia trò chơi sau:


    - điều kiện tham gia: nắm được ngôn ngữ C hoặc C++, 1 phần quà nào đó có giá trị như đĩa CD/DVD phần mềm, mì tôm, kẹo mút...

    - yêu cầu: người ra đề phải nắm vững bài giải, phải có phần thưởng cho người giải được

    - người trả lời sẽ post bài ngay sau đó, nếu đúng sẽ nhận được phần thưởng từ người ra đề.

    - cuối mỗi tuần bạn nào tham gia trả lời đúng nhiều câu hỏi nhất sẽ nhận được danh hiệu: " VH top coder" hoặc "đệ nhất võ lâm".

    thể lệ đã xong. mình demo:
    //-------------------------------------------------------------------------
    ngôn ngữ: C
    viết chương trình nhập vào danh sách sinh viên theo struct sau:
    Mã:
    typedef struct
    {
        char masv[20];
        char ten[20];
        int tuoi;
        float diem;
    } sinhvien;
    nhập rồi thì xuất, yêu cầu xuất ra:
    Mã:
    ten     |       masv     |      tuoi       |       diem
    a        |   JHG566      |       19       |       10
    ...
    //-----------------------------------------------------------------
    hết.

    Phần thưởng cho bạn là 1 đĩa Open disc và 3 cây kẹo mút. đến nhận tại phòng 103 B1 - gặp integer.
    chúc các bạn vui vẻ, tiếp tục ra đề và giải đề nhé !
  2. withyou
    Offline
    withyou   [99/30]
    3 cây kẹo mút có 3k mà bạn hiền.
    Opendisc là cái gì thế, biết phần thưởng mới trả lời.. :D
  3. hoekaka
    Offline
    hoekaka   [359/114]
    sao giống bài thầy ra về nhà vậy bác :">

    Mã:
    #include<conio.h>
    #include<string.h>
    #include<iostream.h>
    #include<stdio.h>
    #define maxl 255
    
    //-----Khai Bao CTDL-------------
    typedef struct
        {    char masv[10];
             char hoten[30];
             float diem;
        } sv;
    
    sv a[maxl];
    int n=0;
    
    
    //-----Ham Nhap Du Lieu Sinh Vien--------
    void input(sv a[],int &n)
        {     cout<<"Nhap so luong SV: ";cin>>n;
               for(int i=1;i<=n;i++)
                  {    cout<<"\nNhap ma sv"<<i<<":  ";gets(a[i].masv);
                        cout<<"Nhap ho ten: ";gets(a[i].hoten);
                        cout<<"Nhap diem: ";cin>>a[i].diem;
                  }
           }
    
    //----Ham in danh sach du lieu-------------
    void print(sv a[],int n)
        {      for(int i=1;i<=n;i++)
               cout<<"\nMaSV: "<<a[i].masv<<"  Ten:  "<<a[i].hoten<<"  Diem:  "<<a[i].diem;
         }
    
    void main()
        {    clrscr();
              input(a,n);
              print(a,n);
              getch();
        }
    Không in ra kiểu như bác .. mất thẩm mĩ :))
    CTDL SV thiếu 1 trường ;))

    Cái đó là tập hợp phần mềm mã nguồn mở chạy trên windows bạn

    P/S: Nói chung thì quà của bác chả có j hấp dẫn ;))
    lebinhvhit03a thích bài này.
  4. integer
    Offline
    integer   [1.695/1.313]
    miễn đáp ứng được yêu cầu đề ra là được :D
    bài này demo thôi mà.
    Opendisc là cái này: http://2mit.org/forum/showthread.ph...em-nguon-mo-chay-tren-windows-Open-Disc-10-09
  5. hoekaka
    Offline
    hoekaka   [359/114]
    kẹo đâu :)) .. 10 char
  6. integer
    Offline
    integer   [1.695/1.313]
    hơ, demo mà chưa chi mất kẹo rồi, vậy không lấy Opendisc hả, thứ 2 học HTML đây đưa cho.
  7. hoekaka
    Offline
    hoekaka   [359/114]
    open disc lấy về cũng có dùng đâu .. lấy làm j .. có thực mới vực được đạp :">
  8. integer
    Offline
    integer   [1.695/1.313]
    các bạn ra đề tiếp đi. khó hơn 1 chút
  9. minhtam
    Offline
    minhtam   [460/177]
    ra đề: Viết 1 chương trình tạo ra cây nhập từ bàn phím, phải nhập được theo thứ từ là giữa -> trái-> phải, (ví dụ trái là NULL thì nhập nhỏ hơn 0 hoặc j đó nó sẽ là ko có giá trị, ko có nút trái và nút phải), và chèn 1 nút vào cây tại vị trí k tùy ý( ví dụ vị trí nút NULL nào đó, có thể hỏi là có chèn nữa hay ko và cho chèn và nút trái hoặc phải tiếp theo)
    phần quà: 1 chầu cafe (1 người)
  10. takechij
    Offline
    takechij   [386/165]
    oh shit, tui có ý kiếnnnnnnnnnnnnnnnnnnnnnnnnnnn: mấy cái này các bạn có tham gia thì hok lấy bài trên internet xuống nhé, hãy tự suy nghĩ và đưa ra câu trả lời thì hay hơn :045:
  11. takechij
    Offline
    takechij   [386/165]
    u có thể giải thik lại đề ra dùm hok, đọc hok hiểu chi hết trơn.
    "tạo ra cây nhập từ bàn phím" là gì?
    ....
    nói chung là hok hiểu từ a --> z :018:
  12. Vitamin.A
    Offline
    Vitamin.A   [645/213]
    thế cái bàn phím bạn dùng để làm gì[IMG]
  13. withyou
    Offline
    withyou   [99/30]
    ngoài ngôn ngữ ra còn cần giải thuật nữa. mà cái này là CTDL, thiệt hại cho mí bạn chưa học rùi. bài của minhtam giống bài thầy ra quá.
  14. TruTra
    Offline
    TruTra   [499/200]
    Cho mình làm trọng tài được không nhỉ
  15. minhtam
    Offline
    minhtam   [460/177]
    sao toàn spam , ko thấy ai giải hết vậy?
    @withyou: thầy ko yêu cầu giống mình, của thầy đơn giản là nhập dãy số để sắp xếp vào cây, nếu nhỏ hơn root thì qua 1 bên và lớn hơn root thì qua bên kia
    ko ai định giành phần thưởng hả ???
  16. clandn.angel
    Offline
    clandn.angel   [655/361]
    có hiểu mô tê chi mà trả lời mi. Phải đưa ra hình ảnh kết quả như t` Nguyên ấy kìa, trừu tượng quá, nói ai ko nói đc. Mi mà đưa ra kết quả hình ảnh đảm bảo mất chầu cafe ngay =))
  17. integer
    Offline
    integer   [1.695/1.313]
    bài của bạn tâm đây.
    Mã:
    #include<stdio.h>
    #include<iostream>
    #include<conio.h>
    #include<stdlib.h>
    #include<string.h>
    using namespace std;
    //---------------
    typedef struct node
    {
        int pt;
        node *left;
        node *right;
    } cay;
    //---------------
    void make(cay **T)
    {
        *T=NULL;
    }
    //-- duyet Giua - Trai - Phai
    void preorder(cay *T)
    {
        cay *P;
        P=T;
        if(P!=NULL)
        {
            printf("%d ",P->pt);
            preorder(P->left);
            preorder(P->right);
        }
    
    }
    //- Duyet Trai - Giua - Phai
    void inorder(cay *T)
    {
        cay *P;
        P=T;
        if(P!=NULL)
        {
            inorder(P->left);
            printf("%d ",P->pt);
            inorder(P->right);
        }
    }
    //- Duyet Trai - Phai - Giua
    void posorder(cay *T)
    {
        cay *P;
        P=T;
        if(P!=NULL)
        {
            posorder(P->left);
            posorder(P->right);
            printf("%d ",P->pt);
        }
    }
    // dem so la---------------
    int leaf(cay *T)
    {
        if(T==NULL)
            return 0;
        if(T->left==NULL && T->right==NULL)
            return 1;
        return leaf(T->left) + leaf(T->right);
    }
    // nhap cay ----------------------
    void chen(cay **T,int x)
    {
        cay *tmp;
        tmp=*T;
        if(tmp==NULL)
        {
            tmp=new cay;
            tmp->pt=x;
            tmp->left=tmp->right=NULL;
            (*T)=tmp;
        }
        else if(x<(*T)->pt)
            chen(&(*T)->left,x);
        else if(x>(*T)->pt)
            chen(&(*T)->right,x);
        else
            printf("\nNut da ton tai !");
    }
    main()
    {
        cay *T,*l,*r;
        make(&T);
        int x;
        char y;
        int dk=1;
        printf("\nNhap phan tu, nhan y --> [Enter]de nhap tiep !");
        while(dk==1)
        {
            printf("\nNhap phan tu: ");
            cin>>x;
            chen(&T,x);
            printf("\nNhap tiep y/n: ");
            cin>>y;
            if(y=='y')
                dk=1;
            else
                dk=0;
        }
        printf("\ntien to\n");
        preorder(T);
        printf("\ntrung to\n");
        inorder(T);
        printf("\nhau to\n");
        posorder(T);
        printf("\nSo la: %d",leaf(T));
    }
    
    
    nhập cây như sau: nhập vào nút giữa, nhỏ hơn nhập sang trái nút, lớn hơn nhập sang phải.
    Moon thích bài này.
  18. minhtam
    Offline
    minhtam   [460/177]
    chèn 1 nút vào cây tại vị trí k tùy ý( ví dụ vị trí nút NULL nào đó, có thể hỏi là có chèn nữa hay ko và cho chèn và nút trái hoặc phải tiếp theo) nữa nguyên ơi!
  19. integer
    Offline
    integer   [1.695/1.313]
    như vậy bạn sẽ tốn thời gian cho việc đẩy các nút phía sau cây lên 1 đơn vị ???.
    còn chèn vào bên trái hay bên phải là tùy thích, mình làm như trên để khỏi phải quan tâm khi nhập thì chọn bên trái hay bên phải thôi. dùng đoạn này:
    Mã:
    else if(x<(*T)->pt)
            chen(&(*T)->left,x);
        else if(x>(*T)->pt)
            chen(&(*T)->right,x)
    
    OK, 1 chầu cafe nhé.;))
    tuần 1 sắp kết thúc....
  20. thanhnguyen
    Offline
    thanhnguyen   [475/151]
    thằng Tuấn takechj kia, mày chỉ được cái chém gió là tài:))