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 : 1848 | Chuyên mục : Java

Trong bài học kinh nghiệm tiên phong này, mình sẽ tổng hợp cho những bạn một số ít 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, những lệnh vào ra cơ bản, biến hằng và những kiểu tài liệu, những cấu trúc điều khiển và tinh chỉnh …

Bài 1. In ra màn hình dòng chữ “Hello Word”

Ở bài này, những 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, tất cả 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 tác dụng ra màn hình hiển thị :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ư như bài trên, chỉ khác là tất cả 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 tất cả chúng ta sẽ xử dụng cấu trúc rẽ nhánh switch - case để in ra thứ tương ứngCode 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, những 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, tất cả chúng ta cần tối thiểu 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 những ký tự, số lượng, 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 tất cả chúng ta sẽ vẽ riêng 2 hình và cứ vận dụng cách vẽ một hình tam giác thường thì vào. Mỗi hình tam giác lại chia thành 3 phần để vẽ, ở đầu cuối sẽ có được hình như đề mong ước .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, những bạn cần xem kỹ hình mẫu và đưa ra nhận xét chung về những số lượng tạo nên hình. Dễ thấy rằng mỗi hàng sẽ có 1 dãy những số giống nhau, số số lượng mỗi dòng tăng dần .Để vẽ một hình tam giác bất kể, tất cả chúng ta cần tối thiểu 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 những số lượng 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, những số được in ra từ 1 đến số lớn nhất ở cuối dòng đó .Để vẽ một hình tam giác, tất cả chúng ta cần tối thiểu 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 những ký tự, số lượng 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 thuần, mình chỉ liệt kê mỗi dạng một vài bài để những bạn biết cách vận dụng, những bài khác những bạn làm tương tự như nhé .