Bài tập nâng cao khả năng code java năm 2024
Mình nghĩ rằng đã đến lúc chúng ta đi đến việc quan trọng nhất, áp dụng lý thuyết đó vào thực hành để giải những bài tập Java. Show
Ban đầu có thể các bạn sẽ thấy những bài tập này nó khá là … đơn giản. Nhưng thực sự mà nói thì nó rất là quan trọng trong việc học lập trình. Khi làm thật nhiều những bài tập nhỏ, cơ bản thế này, bạn sẽ được tiếp cận vấn đề một cách cơ sở nhất, từ đó hiểu rõ bản chất vấn đề. Luyện tập những bài tập đơn giản đến độ thuần thục cho phép bạn có khả năng đọc từng phần nhỏ của chương trình lớn và ghép nối chúng lại dễ dàng để hiểu được bức tranh lớn. "CHƯƠNG TRÌNH LỚN CŨNG ĐƯỢC TẠO THÀNH TỪ CHƯƠNG TRÌNH NHỎ MÀ THÔI" Vậy nên đừng thấy nó nhỏ mà bỏ qua nhé, chúng ta sẽ góp gió thành bão, tích tiểu thành đại. Trước tiên, hãy tự thử sức mình với 20 bài tập Java cơ bản sau đây (đừng vội xem đáp án bên dưới nhé). 20 bài tập Java cơ bản Sau đó, khi làm xong hãy thử tham khảo thêm cách làm (đáp án) của mình. Lưu ý, nếu thực sự không thể tự mình làm được thì mới xem ấp án nhé. \> Nếu bạn tham gia KHÓA HỌC JAVA tại NIIT - ICT Hà Nội thì bạn sẽ được thử sức với số lượng bài tập được thiết kế tỉ mỉ theo lộ trình bài bản. Hoàn thành hết là tương đương năng lực của Junior Dev. Còn bây giờ, bắt đầu thử làm bài tập Java thôi nào. Đề bài: 20 bài tập Java cơ bảnPhần 1: 5 Bài tập Java cơ bản với câu điều kiệnBài tập 1:
Bài tập 2:
Bài tập 3:
Bài tập 4:
Bài tập 5*:
\> Nếu thấy những bài tập trên khó, đó là do kiến thức Java ăn bản của bạn chưa vững. Ôn tập thêm tại Hướng dẫn tự học Java. \> Và học thêm một ít về thuật toán bạn nhé. Phần 2: 5 Bài tập Java cơ bản với vòng lặpBài tập 6:
Bài tập 7:
Bài tập 8:
Bài tập 9:
Bài tập 10*:
\> Phần này sẽ làm việc nhiều với vòng lặp nên nếu bạn chưa thực sự quen thì nên luyện tập thêm tại bài Vòng lặp trong Java. Phần 3: 5 Bài tập Java cơ bản với MảngBài tập 11:
Bài tập 12:
Bài tập 13:
Bài tập 14:
Bài tập 15(*):
Phần 4: 5 Bài tập Java cơ bản với chuỗiBài tập 16:
Bài tập 17:
Bài tập 18:
Bài tập 19:
Bài tập 20*:
Đáp án: 20 bài tập Java cơ bảnĐáp án: 5 Bài tập Java cơ bản với câu điều kiệnĐáp án bài tập 1: import java.util.Scanner; public class BaiTapJavaCoBan1 { public static void main(String[] args) { int n; System.out.println("Nhap vao mot so nguyen:"); Scanner sc \= new Scanner(System.in); n = sc.nextInt(); if (n >= 0){ System.out.println("Đây là một số nguyên dương"); } else { System.out.println("Đây là số nguyên âm"); } } } Đáp án bài tập 2: import java.util.Scanner; public class BaiTapJavaCoBan2 { public static void main(String[] args) { int n; System.out.println("Nhap vao mot so nguyen:"); Scanner sc \= new Scanner(System.in); n = sc.nextInt(); switch (n) { case 0: System.out.println("Không"); break; case 1: System.out.println("Một"); break; case 2: System.out.println("Hai"); break; case 3: System.out.println("Ba"); break; case 4: System.out.println("Bốn"); break; case 5: System.out.println("Năm"); break; case 6: System.out.println("Sáu"); break; case 7: System.out.println("Bảy"); break; case 8: System.out.println("Tám"); break; case 9: System.out.println("Chín"); break; default: System.out.println("Chỉ có 0 - 9 thôi :D"); break; } } } Đáp án bài tập 3: import java.util.Scanner; public class BaiTapJavaCoBan3 { public static void main(String[] args) { float a, b, c; System.out.println("Nhập vào 3 số:"); Scanner sc \= new Scanner(System.in); a = sc.nextFloat(); b = sc.nextFloat(); c = sc.nextFloat(); if(a+b>c && b+c>a && c+a>b) System.out.println("Ba số đúng là 3 cạnh của 1 tam giác"); else System.out.println("Ba số không phải là 3 cạnh của 1 tam giác"); } } Đáp án bài tập 4: import java.util.Scanner; public class BaiTapJavaCoBan4 { public static void main(String[] args) { float a, b, c; System.out.println("Nhập vào 3 số:"); Scanner sc \= new Scanner(System.in); a = sc.nextFloat(); b = sc.nextFloat(); c = sc.nextFloat(); if(a*a+b*b==c*c || b*b+c*c==a*a || c*c+a*a==b*b) System.out.println("Ba số đúng là 3 cạnh của 1 tam giác vuông"); else System.out.println("Ba số không phải là cạnh của 1 tam giác vuông"); } } Đáp án bài tập 5: import java.util.Scanner; public class BaiTapJavaCoBan5 { public static void main(String[] args) { String MSSV; System.out.println("Nhập vào MSSV:"); Scanner sc \= new Scanner(System.in); MSSV = sc.nextLine(); // Nhận vào 1 chuỗi từ bàn phím if (MSSV.matches("B\\d{7}")) //Kiểm tra bằng biểu thức chính quy System.out.println("Phù hợp"); else System.out.println("Không phù hợp"); // Bài này nâng cao là vì có sử dụng biểu thức chính quy // các bạn có thể tra Google để biết thêm về nó } } Đáp án: 5 Bài tập Java cơ bản với vòng lặpĐáp án bài tập 6: import java.util.Scanner; public class BaiTapJavaCoBan6 { public static void main(String[] args) { int n; int sum \= 0; System.out.println("Nhập vào số nguyên:"); Scanner sc \= new Scanner(System.in); n = sc.nextInt(); for (int i \= 0; i <= n; i++) // duyệt tất cả phần tử từ 0-n if (i % 2 \== 0) // nếu nó là số chẵn sum += i; // Cộng vào tổng. System.out.println(sum); } } Đáp án bài tập 7: import java.util.Scanner; public class BaiTapJavaCoBan7 { public static void main(String[] args) { int n; int sum \= 0; System.out.println("Nhập vào số nguyên:"); Scanner sc \= new Scanner(System.in); n = sc.nextInt(); for (int i \= 1; i <= 20; i++) // duyệt tất cả phần tử từ 1-20 { System.out.println(n + " x " + i + " = " + n*i); } } } Đáp án bài tập 8: import java.util.Scanner; public class BaiTapJavaCoBan8 { public static void main(String[] args) { int n; boolean soNguyenTo \= false; System.out.println("Nhập vào số nguyên:"); Scanner sc \= new Scanner(System.in); n = sc.nextInt(); // 1, 2 là 2 số nguyên tố mặc nhiên, không cần xét. System.out.print("1 2 "); for (int i \= 3; i <= n; i++) // duyệt tất cả phần tử từ 1-20 { /** * Gán cho soNguyenTo đúng * Nếu sau khi ra khỏi vòng lặp j * mà nó vẫn còn là true thì số này là số nguyên tố */ soNguyenTo = true; for (int j \= 2; j < i; j++) { if (i % j == 0) /** * Gán cho soNguyenTo là false * khi nó chia hết nó bất cứ số nào nhỏ hơn * nó trong khoảng từ 3 - n */ soNguyenTo = false; } if (soNguyenTo == true) System.out.print(i + " "); } } } Đáp án bài tập 9: import java.util.Scanner; public class Fibonacci { public int CalculateFi(int n) { if (n == 0 || n == 1){ return 1; } return CalculateFi(n-1) + CalculateFi(n-2); } } public class HelloWorld { public static void main(String[] args) { int n; int Fi; System.out.println("Nhập vào số nguyên:"); Scanner sc \= new Scanner(System.in); n = sc.nextInt(); Fibonacci fibonacci \= new Fibonacci(); Fi = fibonacci.CalculateFi(n); System.out.println("Fi(" + n + ") = " + Fi); } } Đáp án bài tập 10: import java.util.Scanner; public class BaiTapJavaCoBan10 { public static void main(String[] args) { String[] MSSV \= new String[5]; Scanner sc \= new Scanner(System.in); for (int i \= 0; i < 5; i++) { System.out.println("Nhập vào MSSV thứ " + (i+1) + ":"); MSSV[i] = sc.nextLine(); } for (int i \= 0; i < 5; i++) { if (!MSSV[i].matches("B170[1-9]{4}")) System.out.println("MSSV thứ " + (i+1) + " sai định dạng!"); } } } Đáp án: 5 Bài tập Java cơ bản với MảngĐáp án bài tập 11: import java.util.Scanner; public class BaiTapJavaCoBan11 { public static void main(String[] args) { int n; int[] soNguyen; float ketQua \= 0; Scanner sc \= new Scanner(System.in); System.out.println("Nhập vào n:"); n = sc.nextInt(); soNguyen = new int[n]; for (int i \= 0; i < n; i++) { System.out.println("Nhập vào số nguyên:"); soNguyen[i] = sc.nextInt(); } for (int i \= 0; i < n; i++) ketQua += soNguyen[i]; ketQua = ketQua/n; System.out.println("Trung bình cộng của các số nguyên là: " + ketQua); } } Đáp án bài tập 12: import java.util.Scanner; public class BaiTapJavaCoBan12 { public static void main(String[] args) { int n; int[] soNguyen; int max \= 0; Scanner sc \= new Scanner(System.in); System.out.println("Nhập vào n:"); n = sc.nextInt(); soNguyen = new int[n]; for (int i \= 0; i < n; i++) { System.out.println("Nhập vào số nguyên:"); soNguyen[i] = sc.nextInt(); } for (int i \= 0; i < n; i++) { if(soNguyen[i] > max) max = soNguyen[i]; } System.out.println("Phần tử có giá trị lớn nhất là: " + max); } } Đáp án bài tập 13: import java.util.Scanner; public class BaiTapJavaCoBan13 { public static void main(String[] args) { int n; int[] soNguyen; int min \= 0; Scanner sc \= new Scanner(System.in); System.out.println("Nhập vào n:"); n = sc.nextInt(); soNguyen = new int[n]; for (int i \= 0; i < n; i++) { System.out.println("Nhập vào số nguyên:"); soNguyen[i] = sc.nextInt(); } min = soNguyen[0]; for (int i \= 0; i < n; i++) { if(soNguyen[i] < min) min = soNguyen[i]; } System.out.println("Phần tử có giá trị nhỏ nhất là: " + min); } } Đáp án bài tập 14: import java.util.Scanner; public class BaiTapJavaCoBan14 { public static void main(String[] args) { //Khai báo các biến cần thiết int n; int[] soNguyen; Scanner sc \= new Scanner(System.in); //Nhập dữ liệu System.out.println("Nhập vào n:"); n = sc.nextInt(); soNguyen = new int[n]; for (int i \= 0; i < n; i++) { System.out.println("Nhập vào số nguyên:"); soNguyen[i] = sc.nextInt(); } //In ra mảng ban đầu System.out.println("Mảng trước khi đảo ngược: "); for (int i \= 0; i < n; i++) System.out.print(soNguyen[i] + " "); //Đảo ngược mảng for (int i \= 0; i < n/2; i++) { int empty; empty = soNguyen[i]; soNguyen[i] = soNguyen[n-i-1]; soNguyen[n-i-1] = empty; } //In ra mảng sau khi đảo ngược System.out.println("\nMảng sau khi đảo ngược: "); for (int i \= 0; i < n; i++) System.out.print(soNguyen[i] + " "); } } Đáp án bài tập 15: import java.util.Scanner; public class BaiTapJavaCoBan15 { public static void main(String[] args) { String[] code \= new String[5]; Scanner sc \= new Scanner(System.in); for (int i \= 0; i < 5; i++) { System.out.println("Nhập vào mã thứ " + (i+1)); code[i] = sc.nextLine(); if(!code[i].matches("00[2-5]L\\d{4}")) { System.out.println("Sai rồi!"); return; } } System.out.println("Đúng rồi!"); } } Đáp án: 5 Bài tập Java cơ bản với chuỗiĐáp án bài tập 16: import java.util.Scanner; public class BaiTapJavaCoBan16 { public static void main(String[] args) { String chuoi; char kiTu; boolean tonTai \= false; Scanner sc \= new Scanner(System.in); System.out.println("Nhập vào một chuỗi: "); chuoi = sc.nextLine(); System.out.println("Nhập vào ký tự muốn kiểm tra:"); kiTu = sc.nextLine().charAt(0); char mangKiTu[] = chuoi.toCharArray(); for (int i \= 0; i < mangKiTu.length; i++) { if (kiTu == mangKiTu[i]) { System.out.println("Có"); tonTai = true; } } if(tonTai == false) System.out.println("Không"); } } Đáp án bài tập 17: import java.util.Scanner; public class BaiTapJavaCoBan17 { public static void main(String[] args) { String chuoi; char kiTu; boolean tonTai \= false; Scanner sc \= new Scanner(System.in); System.out.println("Nhập vào một chuỗi: "); chuoi = sc.nextLine(); System.out.println("Nhập vào ký tự muốn kiểm tra:"); kiTu = sc.nextLine().charAt(0); char mangKiTu[] = chuoi.toCharArray(); for (int i \= 0; i < mangKiTu.length; i++) { if (kiTu == mangKiTu[i]) { System.out.println((i+1)); tonTai = true; } } if(tonTai == false) System.out.println("Không tồn tại trong chuỗi"); } } Đáp án bài tập 18: import java.util.Scanner; public class BaiTapJavaCoBan18 { public static void main(String[] args) { String chuoi; Scanner sc \= new Scanner(System.in); System.out.println("Nhập vào một chuỗi: "); chuoi = sc.nextLine(); if (chuoi.matches(".*\\d.*")) System.out.println("Có"); else System.out.println("Không"); } } Đáp án bài tập 19: import java.util.Scanner; public class BaiTapJavaCoBan19 { public static void main(String[] args) { String chuoi; int soLan \= 0; Scanner sc \= new Scanner(System.in); System.out.println("Nhập vào một chuỗi: "); chuoi = sc.nextLine(); char mangKiTu[] = chuoi.toCharArray(); for (int i \= 0; i < mangKiTu.length; i++) { if ('a' \== mangKiTu[i]) { soLan++; } } System.out.println(soLan); } } Đáp án bài tập 20: import java.util.Scanner; public class BaiTapJavaCoBan20 { public static void main(String[] args) { String chuoi; Scanner sc \= new Scanner(System.in); System.out.println("Nhập vào một chuỗi: "); chuoi = sc.nextLine(); if(chuoi.matches("[A-Z][\\s]{0,18}\\d$")) System.out.println("Duyệt"); else System.out.println("Không duyệt"); } } Tổng kếtNhư vậy là chúng ta vừa cùng nhau hoàn thành 20 bài tập Java. Trong đó mình đã có giới thiệu đến các bạn một khái niệm rất hay trong Java đó là biểu thức chính quy, thường thì biểu thức chính quy được áp dụng nhiều trong việc ràng buộc dữ liệu nhập vào của người dùng (định dạng của email, số điện thoại,...) và được sử dụng rất nhiều trong lập trình. Cùng với một số bài tập Java cơ bản cho các bạn hiểu rõ hơn về rẽ nhánh, mảng, vòng lặp, chuỗi. Hãy nhớ luyện tập thật nhiều đều đặn, phản xạ xử lý chương trình ngay trong suy nghĩ để có thể chinh phục ngôn ngữ Java tốt hơn bạn nhé. \>>> 10 Project Java miễn phí dành cho người mới học --- HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI Học Lập trình chất lượng cao (Since 2002). Học thực tế + Tuyển dụng ngay! Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội SĐT: 02435574074 - 0383.180086 Email: [email protected] Fanpage: https://facebook.com/NIIT.ICT/ niiticthanoiniithanoi niiticthanoihoclaptrinhkhoahoclaptrinhhoclaptrinhjavahoclaptrinhphpjavaphppython |