Bài 1: Bài tập làm quen với Java - Tổng hợp Bài tập Java có lời giải

Đăng bởi: Admin | Lượt xem: 3848 | Chuyên mục: Java


Trong bài học đầu tiên này, mình sẽ tổng hợp cho các bạn một số bài tập Java cơ bản nhất, giúp bạn làm quen với cấu trúc chương trình Java, các lệnh vào ra cơ bản, biến hằng và các kiểu dữ liệu, các cấu trúc điều khiển...
Bài 1. In ra màn hình dòng chữ "Hello Word"
Ở bài này, các bạn tạo một Project mới, tạo file Main.java và viết hàm main(), hàm main() là hàm thực thi của một chương trình Java. 
Để in một đoạn văn bản ra màn hình thì chúng ta sử dụng System.out.println là hàm vào ra cơ bản trong Java
Code mẫu:
package vn.vncoder

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello world");
    }
}
Kết quả:
Hello world
Bài 2. In ra màn hình các số tự nhiên từ 1 đến 100 chia hết cho 3
Ở bài này, chúng ta sẽ tạo một vòng for với biến đếm i chạy từ 1 đến 100. Sau đó với mỗi giá trị của i ta kiểm tra xem i có chia hết cho 3 hay không, nếu có thì in kết quả ra màn hình:
Code mẫu:
package vn.vncoder;

public class Main {
    
    public static void main(String[] args) {
        // Dem cac so tu 1 den 100
        for(int i = 1; i <= 100; i++){
            // Kiem tra neu chia het cho 3 thi in ra man hinh
            if(i%3 == 0){
                System.out.print(i + " ");
            }
        }
    }
    
}
Kết quả:
3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72 75 78 81 84 87 90 93 96 99
Bài 3. Nhập vào một số tự nhiên N từ bàn phím và in  ra màn hình các số tự nhiên từ 1đến N chia hết cho 3
Bài này tương tự như bài trên, chỉ khác là chúng ta sẽ sử dụng Scanner để nhập giá trị từ bàn phím.
Code mẫu:
package vn.vncoder;

import java.util.Scanner;

public class Main {
    
    public static void main(String[] args) {
        
        // Tao doi tuong scanner xy ly vao ra
        Scanner scanner = new Scanner(System.in);
        
        // Nhap so N tu ban phim 
        System.out.print("Nhap so N: ");
        int n = scanner.nextInt();
        
        // Dem cac so tu 1 den 100
        for(int i = 1; i <= n; i++){
            // Kiem tra neu chia het cho 3 thi in ra man hinh
            if(i%3 == 0){
                System.out.print(i + " ");
            }
        }
    }
    
}
Kết quả:
Nhap so N: 56
3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54
Bài 4Nhập vào một số từ 1 đến 7 và in ra thứ tương ứng trong tuần, với 1 là Chủ Nhật
Ở bài này chúng ta sẽ xử dụng cấu trúc rẽ nhánh switch - case để in ra thứ tương ứng
Code mẫu:
package vn.vncoder;

import java.util.Scanner;

public class Main {
    
    public static void main(String[] args) {
        
        // Tao doi tuong scanner xy ly vao ra
        Scanner scanner = new Scanner(System.in);
        
        // Nhap thu trong tuan
        System.out.print("Nhap thu trong tuan: ");
        int n = scanner.nextInt();
        
        String thu = "Khong xac dinh";
        // Kiem tra va in ra thu
        switch (n) {
            case 1 : thu = "Chu Nhat" ;break;
            case 2 : thu = "Thu Hat" ; break;
            case 3 : thu = "Thu Ba" ;  break;
            case 4 : thu = "Thu Tu" ;  break;
            case 5 : thu = "Thu Nam" ; break;
            case 6 : thu = "Thu Sau" ; break;
            case 7 : thu = "Thu Bay" ; break;
            default : thu = "Khong biet";
        }
        
        // In ra thu
         System.out.println(thu);
           
    }
    
}
Kết quả:
Nhap thu trong tuan: 4
Thu Tu
Bài 5. Vẽ tam giác đặc bằng dấu sao như hình bên dưới
Để vẽ được hình này, các bạn cần nắm rõ cách vẽ chung của một hình tam giác bất kỳ.
“Để vẽ một hình tam giác, chúng ta cần ít nhất 2 vòng lặp for: 1 vòng lặp ngoài để in ký tự xuống dòng, 1 hoặc nhiều vòng lặp con bên trong dùng để in các ký tự, con số, dấu sao hoặc dấu cách.”
Quay lại với hình mẫu, khi nhìn vào hình mình có nhận xét chung như thế này: Hình được tạo bởi 2 hình (hình tam giác ngược và hình tam giác khuyết đỉnh). Vậy chúng ta sẽ vẽ riêng 2 hình và cứ áp dụng cách vẽ một hình tam giác thông thường vào. Mỗi hình tam giác lại chia thành 3 phần để vẽ, cuối cùng sẽ có được hình như đề mong muốn.
Code mẫu:
package vn.vncoder;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        int num, n;
        Scanner sc = new Scanner(System.in);
        System.out.print("Nhập n: ");
        num = sc.nextInt();
        System.out.println();
        n = num;
        // vẽ phần tam giác ngược
        for (int r = 1; r <= num; r++) {
            // phần 1
            for (int sp = 1; sp <= r; sp++) {
                System.out.print(" ");
            }
            // phần 2
            for (int c = 1; c <= n; c++) {
                System.out.print("*");
            }
            // phần 3
            for (int c = num - r; c >= 1; c--) {
                System.out.print("*");
            }
            n--;
            System.out.println();
        }

        // vẽ tam giác khuyết đỉnh
        for (int r = 2; r <= num; r++) {
            // phần 1
            for (int sp = num - r + 1; sp >= 1; sp--) {
                System.out.print(" ");
            }
            // phần 2
            for (int c = 1; c <= r; c++) {
                System.out.print("*");
            }
            // phần 3
            for (int c = r - 1; c >= 1; c--) {
                System.out.print("*");
            }
            System.out.println();
        }

    }
}
Kết quả:
Nhập n: 6

 ***********
  *********
   *******
    *****
     ***
      *
     ***
    *****
   *******
  *********
 ***********
Bài 6Vẽ tam giác đặc bằng số (như hình minh hoạ), độ cao của tam giác được nhập từ bàn phím
Trước tiên, các bạn cần xem kỹ hình mẫu và đưa ra nhận xét chung về các con số tạo nên hình. Dễ thấy rằng mỗi hàng sẽ có 1 dãy các số giống nhau, số con số mỗi dòng tăng dần.
Để vẽ một hình tam giác bất kỳ, chúng ta cần ít nhất 2 vòng lặp for: 1 vòng lặp ngoài để in ký tự xuống dòng, 1 hoặc nhiều vòng lặp bên trong để in các con số và dấu cách.
Bài này mình sẽ chia hình thành 3 phần theo chiều từ trái sang phải để vẽ, 3 phần đó mình sẽ dùng 3 vòng lặp for (xem code mẫu bên dưới để rõ hơn bạn nhé)
Code mẫu:
package vn.vncoder;


import java.util.Scanner;
 
public class Main {
	public static void main(String[] args) {
            // Nhap so dong
            int num;
            System.out.print("Số dòng: ");
            Scanner input = new Scanner(System.in);
            num = input.nextInt();

            for (int r = 1; r <= num; r++) {

                // in dau cach ben trai
                for (int sp = num - r; sp > 0; sp--) {
                        System.out.print(" ");
                }

                // in nua ben trai
                for (int c = 1; c <= r; c++) {
                        System.out.print(r);
                }

                // in nua ben phai
                for (int k = 2; k <= r; k++) {
                        System.out.print(r);
                }

                // in dau xuong dong
                System.out.println();
            }
	}
}
Kết quả:
Số dòng: 6
     1
    222
   33333
  4444444
 555555555
66666666666
Bài 7Vẽ tam giác đặc bằng số, mỗi hàng là một dãy số tăng dần (như hình minh hoạ)
Nhìn vào hình bạn sẽ thấy rằng số lớn nhất được in ra cuối mỗi dòng của dãy số là số lẻ. Và trên 1 dòng, các số được in ra từ 1 đến số lớn nhất ở cuối dòng đó.
Để vẽ một hình tam giác, chúng ta cần ít nhất 2 vòng lặp for: 1 vòng lặp ngoài để in ký tự xuống dòng, 1 hoặc nhiều vòng lặp con bên trong dùng để in các ký tự, con số hoặc dấu cách.
Mình sẽ chia hình thành 2 phần theo chiều từ trái sang phải để vẽ, 2 phần mình sẽ dùng 2 vòng lặp for con (xem code mẫu bên dưới để rõ hơn). Vòng for con thứ 1 sẽ in các dấu cách trước hình tam giác và vòng lặp for con thứ 2 sẽ dùng để in ra các số của hình tam giác.
Code mẫu:
package vn.vncoder;


import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        int num;
        System.out.print("Nhập số dòng của hình: ");
        Scanner sc = new Scanner(System.in);
        num = sc.nextInt();
        for (int r = 1; r <= num; r++) {
                for (int sp = 1; sp <= num - r; sp++) {
                        System.out.print("  ");
                }
                for (int c = 1; c <= 2 * r - 1; c++) {
                        System.out.print(" " + c);
                }
                System.out.println();
        }
    }
}
Kết quả:
Nhập số dòng của hình: 5
         1
       1 2 3
     1 2 3 4 5
   1 2 3 4 5 6 7
 1 2 3 4 5 6 7 8 9
Bài này khá đơn giản, mình chỉ liệt kê mỗi dạng một vài bài để các bạn biết cách vận dụng, các bài khác các bạn làm tương tự nhé.
Bài tiếp theo: Bài tập Java Toán, Số học >>
vncoder logo

Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!