Giải bài tập 14 chương 1 – Java 1

http://duythanhcse.wordpress.com/2011/12/21/bai-t%E1%BA%ADp-java-1-ch%C6%B0%C6%A1ng-1/

Topic này Tôi sẽ hướng dẫn cách giải bài tập 14

Trong Topic này có 3 điểm mới nên Tôi chỉ giải thích 3 điểm này, còn các hàm với những vòng lặp for để xuất ra hình ảnh như bài tập yêu cầu thì các bạn tự suy luận.

Dưới đây là code mẫu:

Chú ý là printWildcard1 đại diện cho hình 1. printWildcard2 đại diện cho hình 2…. số 10 Tôi truyền vào thì bạn có thể yêu cầu nhập vào từ bàn phím.

public class PrintWildcard {

 

       /**

        * @param args

        */

       public static void main(String[] args) {

              // TODO Auto-generated method stub

              printWildcard1(10);

              System.out.println();

              printWildcard2(10);

              System.out.println();

              printWildcard3(10);

              System.out.println();

              printWildcard4(10);

             

       }

/**

* Hàm này dùng để xuất *

* @param n : nhập vào từ bàn phím

*/

       public static void printWildcard1(int n)

       {

              for(int i=n;i>0;i–)

              {

                     for(int j=i;j>0;j–)

                     {

                           System.out.print(“*”);

                     }

                     System.out.println();

              }

       }

       public static void printWildcard2(int n)

       {

              for(int i=0;i<n;i++)

              {

                     for(int j=i;j>=0;j–)

                     {

                           System.out.print(“*”);

                     }

                     System.out.println();

              }

       }

       public static String padRight(String s,int n)

       {

              if(n<=0)

              return“”;

              return String.format(“%1$-“+n+“s”,s);

       }

       public static String padLeft(String s, int n) {

           if(n<=0)

              return“”;

              return String.format(“%1$#” + n + “s”, s); 

       }

 

       public static void printWildcard3(int n)

       {

              for(int i=1;i<=n;i++)

              {

                     System.out.print(padLeft(” “, n-i));

                     for(int j=i;j>0;j–)

                     {

                           System.out.print(“*”);

                     }

                     System.out.println();

              }

       }

       public static void printWildcard4(int n)

       {

              for(int i=1;i<=n;i++)

              {

                     System.out.print(padLeft(” “, i-1));

                     for(int j=i;j<=n;j++)

                     {

                           System.out.print(“*”);

                     }

                     System.out.println();

              }

       }

}

———————————————————————

Điểm mới 1:

Cách ghi chú thích (Comment)

Các bạn nhìn vào hàm

/**
* Hàm này dùng để xuất *
* @param n : nhập vào từ bàn phím
*/

public static void printWildcard1(int n)

{

for(int i=n;i>0;i–)

{

for(int j=i;j>0;j–)

{

System.out.print(“*”);

}

System.out.println();

}

}

Ngay dòng đầu tiên của comment bạn để ý là /** Nhớ là có 2 dấu * ngay đằng sau dấu / Các bạn bắt buộc phải ghi chú như thế này, lý do như sau: Khi bạn gọi hàm thì Eclipse sẽ tự động đọc các thông số trong này, giúp ích cho việc lập trình nhanh hơn, các bạn xem hình ảnh Tôi chụp lại:

Bạn quan sát và thấy đây, chỉ cần di chuyển chuột tới hàm mà mình đã comment theo đúng nguyên tắc thì bạn sẽ có được hình ảnh trên.

Điểm mới 2:

Hàm padRight : return String.format(“%1$-“+n+”s”,s);

Thêm vùng đệm dữ liệu bên phải (các bạn phải nhớ công thức cài đặt trong hàm format)

Điểm mới 3:

Hàm padLeft:        return String.format(“%1$#” + n + “s”, s);

Thêm vùng đệm dữ liệu bên trái (các bạn phải nhớ công thức cài đặt trong hàm format)

Leave a Reply