Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Trang 2 trên tổng số 3 Đầu tiênĐầu tiên 123 Cuối cùngCuối cùng
Từ 11 tới 20 trên tổng số 22 kết quả

Đề tài: Những bài tập đau đầu ^^

  1. #11
    Ngày gia nhập
    06 2007
    Nơi ở
    một nơi xa xăm...
    Bài viết
    127

    Mặc định Những bài tập đau đầu ^^

    Viết một phương thức kết xuất ra màn hình như thế này:

    Code:
    ------
    / \
    / \
    \ /
    \ /
    ------

    \ /
    \ /
    ------
    +--------+

    ------
    / \
    / \
    | STOP |
    \ /
    \ /
    ------

    ------
    / \
    / \
    +--------+__________________
    Em viết như thế này có được không anh.
    [QUOTE]
    Code:
    #include<stdio.h>
    #include<conio.h>
    void ve(char *ctren,char *cduoi,char *cgiua,int t,int d,int g,int l)
    {
    	printf("%s\n",ctren);
    	if (l==1)
    	{
    		printf("\n\n");
    	}
    	if(t==1) 
    	{
    		printf("/ \\ \n");
    		printf("/ \\ \n");
    	}
    	if(g==1) printf("%s\n", cgiua);
    	if(d==1)
    	{
    		printf("\\ / \n");
    		printf("\\ / \n");
    	}
    	printf("%s\n",cduoi);
    	}
    void main()
    {
    	clrscr();
    	char *ctren="------",*cduoi="------",*cgiua="| STOP |";
    	int t=1,d=1,g=0,l=0;
    	ve(ctren,cduoi,cgiua,t,d,g,l);
    
    	ctren=" ";
    	t=0;
    	l=1;
    	ve(ctren,cduoi,cgiua,t,d,g,l);
    
    	cduoi="+--------+";
    	t=0;
    	d=0;
    	l=0;
    	ve(ctren,cduoi,cgiua,t,d,g,l);
    
    	printf("\n\n");
    	ctren="------";
    	cduoi="------";
    	t=1;
    	d=1;
    	g=1;
    	l=0;
    	ve(ctren,cduoi,cgiua,t,d,g,l);
    
    	printf("\n\n");
    	cduoi="+--------+__________________ ";
    	t=1;
    	d=0;
    	g=0;
    	l=0;
    	ve(ctren,cduoi,cgiua,t,d,g,l);
    	getch();
    }
    Lưu ý code phải để trong thẻ.[ c o d e ] [ / c o d e ] iamvtn
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    Đã được chỉnh sửa lần cuối bởi iamvtn : 03-10-2007 lúc 03:14 PM.

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

    Nhìn lại cái hình 1 lần nữa nhé Alviss:
    Code:
      ------
     /      \
    /        \
    \        /
     \      /
      ------
    
    \        /
     \      /
      ------
    +--------+
    
      ------
     /      \
    /        \
    |  STOP  |
    \        /
     \      /
      ------
    
      ------
     /      \
    /        \
    +--------+
    Bài làm của em chưa xuất ra giống dạng yêu cầu, còn bị lỗi khi xử lý xuất (quên xuống dòng). Ngoài ra, ngôn ngữ em viết ở đây là C (em nên viết C++ sẽ tốt hơn) thì anh ko biết khai báo thế này trong C có chấp nhận hay ko nữa:
    [code]char *ctren="------",*cduoi="------",*cgiua="| STOP |"; [code]
    Theo anh nghĩ thì chắc là em dùng pointer nên khai báo thế này được chấp nhận.
    Anh nghĩ là nên dùng string thì tốt hơn.
    Cái góp ý nữa là em nên tách ra làm 4 hàm và đưa câu lệnh if vào hàm main.
    Lời khuyên khi thiết kế hàm (thiết kế theo hướng đối tượng):
    Mỗi hàm chỉ thực thi 1 công việc đơn giản.
    Hàm càng ngắn gọn càng tốt (thậm chí 1 hàm chỉ có 1 câu lệnh).
    Cách viết code của em chưa được đẹp lắm ^^, em thử sửa lại bài này cho tối ưu hơn.

  3. #13
    Ngày gia nhập
    06 2007
    Nơi ở
    một nơi xa xăm...
    Bài viết
    127

    Em sửa lại như sau.Anh xem có được không nhé :
    Code:
    #include "iostream.h"
    #include "conio.h"
    void sl(char s[])
    {
        cout<<s<<endl;
    }
    void st()
    {
        cout<<" /      \\\n";
        cout<<"/        \\\n";
    }
    void sd()
    {
        cout<<"\\        /\n";
        cout<<" \\      /\n";
    
    }
    void main()
    {
        char *s;
        s="  ------";
        sl(s);
        st();
        sd();
        sl(s);
        
        cout<<endl<<endl;
        sd();
        sl(s);
        s="+--------+";
        sl(s);
        
        cout<<endl<<endl;
        s="  ------";
        sl(s);
        st();
        s="|  STOP  |";
        sl(s);
        s="  ------";
        sd();
        sl(s);
        
        cout<<endl<<endl;
        sl(s);
        st();
        s="+--------+";
        sl(s);
        getch();
    }

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

    Hix, chẳng hiểu sao forum bị overload suốt, đến hôm nay mới vào được.
    Thx Alviss đã quan tâm đến bài toán này, có 1 vài điểm anh góp ý với em nhé.
    Code:
    #include "iostream.h"
    #include "conio.h"
    Khi khai báo 1 thư viện chuẩn thì em nên sử dụng là #include <iostream>
    Cách khai báo trên thì em nên dùng cho thư viện tự định nghĩa.
    Khá hay khi em tách ra được làm 3 hàm nhưng hàm main của em vẫn còn khá dài.
    Hàm main em ko nên dùng void mà nên dùng int:
    Code:
    int main()
    {
        <state.>;
        return 0;
    }
    Em xem thử chương trình của anh nhé ^^
    Code:
    #include <iostream>
    using namespace std;
    void DrawTop();
    void DrawBottom();
    void DrawEgg();
    void DrawTeaCup();
    void DrawStopSign();
    void DrawHat();
    void DrawLine();
    int main()
    {
        DrawEgg();
        cout <<endl;
        DrawTeaCup();
        cout <<endl;
        DrawStopSign();
        cout <<endl;
        DrawHat();
        system("pause");
        return 0;
    }    
    void DrawTop()
    {
         cout <<"  ______\n";
         cout <<" /      \\\n";
         cout <<"/        \\\n";
    }
    void DrawBottom()
    {
         cout <<"\\        /\n";
         cout <<" \\______/\n";
    }  
    void DrawEgg() 
    {
         DrawTop();
         DrawBottom();
    }
    void DrawLine()
    {
         cout <<"+--------+\n";
    }
    void DrawTeaCup() 
    {
         DrawBottom();
         DrawLine();
        }    
    void DrawStopSign() 
    {
         DrawTop();
         cout <<"|  STOP  |\n";
         DrawBottom();
    }
    void DrawHat() 
    {
         DrawTop();
         DrawLine();
    }

  5. #15
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Làm gì mà đã ra đáp án sớm thế...Ít ra cũng phải để 1 tuần chứ ...T_T
    None!

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

    Mặc định Những bài tập đau đầu ^^

    Làm gì mà đã ra đáp án sớm thế...Ít ra cũng phải để 1 tuần chứ ...T_T
    Alviss đã giải ra chính xác rồi, thì tớ cũng đưa ra đáp án để mọi người xem tham khảo thêm.
    Các bài tập khác vẫn đang đợi các bạn giải.

  7. #17
    Ngày gia nhập
    06 2007
    Nơi ở
    một nơi xa xăm...
    Bài viết
    127

    Khi khai báo 1 thư viện chuẩn thì em nên sử dụng là #include <iostream>
    Cách khai báo trên thì em nên dùng cho thư viện tự định nghĩa.
    Khá hay khi em tách ra được làm 3 hàm nhưng hàm main của em vẫn còn khá dài.
    Hàm main em ko nên dùng void mà nên dùng int
    cảm ơn anh rất nhiều vì đã góp ý cho em.Nếu chẳng tham gia diễn đàn chắc em chẳng bao giờ viết code khá hơn.Cảm ơn anh lần nữa ^^

  8. #18
    Ngày gia nhập
    09 2007
    Bài viết
    17

    Sao ta không có thêm biến n ta, có như vậy mới thấy hay chứ nhỉ ?

    Tùy vào n mà hình sẽ có độ rộng cũng như chiều cao khác nhau .

    Cái này tớ viết rồi nhưng không biết tại sao bị del. Như thế mà anh em cũng cho là spam thì khó thật đấy.

  9. #19
    Ngày gia nhập
    09 2007
    Bài viết
    17

    Ke ke thế là ko bị xóa . Spam tiếp nào anh em .

    Giờ tớ có đoạn code này nhé:
    PHP Code:
    int a[]={1,2,3,4,5,6,7};
    int *a;
    cout<<*(p+1); 

    PHP Code:
    int a[]={1,2,3,4,5,6,7};
    int *a;
    cout<<*(++p); 
    Rồi sau khi thi hành thì 2 hàm trên khác và giống nhau như thế nào ?

  10. #20
    Ngày gia nhập
    06 2007
    Nơi ở
    một nơi xa xăm...
    Bài viết
    127

    Okie ! Spam tý nhé...
    +Giống nhau : 2 hàm cùng in ra màn hình giá trị của a[1] tức là 2
    +Khác nhau : hàm trên thì con trỏ p->a[0];còn hàm dưới thì p->a[1];(sau khi thi hành)
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

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

  1. Cách làm những chiếc gối tựa xinh từ vải vụn
    Gửi bởi timkiemvn002 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: 28-12-2012, 09:47 AM
  2. C++0x Tutorial Những tính năng mới của C++ 11 ( C++ 0x )
    Gửi bởi luc13aka47 trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 16-10-2012, 11:19 AM
  3. Những status yahoo cực hay cho pà con đây
    Gửi bởi thuhu0900x trong diễn đàn Software (Phần mềm) | Ebooks
    Trả lời: 0
    Bài viết cuối: 20-09-2012, 04:20 PM
  4. Tính tổng những phần tử của mảng là ước số của một số cho trước
    Gửi bởi thanhthuy9880 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 6
    Bài viết cuối: 02-09-2010, 02:55 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