Việt Hàn Coder - Tuần 1

Thảo luận trong 'C/C++' bắt đầu bởi integer, 18 Tháng mười một 2010.

  1. Offline

    integer

    • Tiếu Ngạo Giang Hồ

    • :-?
    Số bài viết:
    1.695
    Đã được thích:
    1.313
    Điểm thành tích:
    900
    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. Offline

    withyou

    • Windows 3.0

    Số bài viết:
    99
    Đã được thích:
    30
    Điểm thành tích:
    40
    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. Offline

    hoekaka

    • Windows 95

    Số bài viết:
    359
    Đã được thích:
    114
    Điểm thành tích:
    90
    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. Offline

    integer

    • Tiếu Ngạo Giang Hồ

    • :-?
    Số bài viết:
    1.695
    Đã được thích:
    1.313
    Điểm thành tích:
    900
    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. Offline

    hoekaka

    • Windows 95

    Số bài viết:
    359
    Đã được thích:
    114
    Điểm thành tích:
    90
    kẹo đâu :)) .. 10 char
  6. Offline

    integer

    • Tiếu Ngạo Giang Hồ

    • :-?
    Số bài viết:
    1.695
    Đã được thích:
    1.313
    Điểm thành tích:
    900
    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. Offline

    hoekaka

    • Windows 95

    Số bài viết:
    359
    Đã được thích:
    114
    Điểm thành tích:
    90
    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. Offline

    integer

    • Tiếu Ngạo Giang Hồ

    • :-?
    Số bài viết:
    1.695
    Đã được thích:
    1.313
    Điểm thành tích:
    900
    các bạn ra đề tiếp đi. khó hơn 1 chút
  9. Offline

    minhtam

    • Windows 98

    Số bài viết:
    460
    Đã được thích:
    177
    Điểm thành tích:
    140
    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. Offline

    takechij

    • Windows 98

    • Try so hard
    Số bài viết:
    386
    Đã được thích:
    165
    Điểm thành tích:
    140
    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. Offline

    takechij

    • Windows 98

    • Try so hard
    Số bài viết:
    386
    Đã được thích:
    165
    Điểm thành tích:
    140
    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. Offline

    Vitamin.A

    • Semi Late

    • À ha À Há À HÁ HÁ...
    Số bài viết:
    645
    Đã được thích:
    213
    Điểm thành tích:
    320
    thế cái bàn phím bạn dùng để làm gì[IMG]
  13. Offline

    withyou

    • Windows 3.0

    Số bài viết:
    99
    Đã được thích:
    30
    Điểm thành tích:
    40
    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. Offline

    TruTra

    • Friends

    • Oi vua giong face, vua giong yahoo= mang xha roi :D
    Số bài viết:
    499
    Đã được thích:
    200
    Điểm thành tích:
    140
    Cho mình làm trọng tài được không nhỉ
  15. Offline

    minhtam

    • Windows 98

    Số bài viết:
    460
    Đã được thích:
    177
    Điểm thành tích:
    140
    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. Offline

    clandn.angel

    • friend

    Số bài viết:
    655
    Đã được thích:
    361
    Điểm thành tích:
    450
    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. Offline

    integer

    • Tiếu Ngạo Giang Hồ

    • :-?
    Số bài viết:
    1.695
    Đã được thích:
    1.313
    Điểm thành tích:
    900
    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. Offline

    minhtam

    • Windows 98

    Số bài viết:
    460
    Đã được thích:
    177
    Điểm thành tích:
    140
    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. Offline

    integer

    • Tiếu Ngạo Giang Hồ

    • :-?
    Số bài viết:
    1.695
    Đã được thích:
    1.313
    Điểm thành tích:
    900
    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. Offline

    thanhnguyen

    • Windows 98

    Số bài viết:
    475
    Đã được thích:
    151
    Điểm thành tích:
    140
    thằng Tuấn takechj kia, mày chỉ được cái chém gió là tài:))

Chia sẻ trang này

Advertising: Linux system admin | nukeviet | nukeviet 4 | Upload ảnh miễn phí