Bỏ qua để đến nội dung

Bài tập lập trình - Cơ bản

Trang này tổng hợp 200 bài tập lập trình cơ bản, sắp xếp theo chủ đề từ dễ đến khó, mỗi bài có đáp án minh họa bằng nhiều ngôn ngữ lập trình khác nhau. Nếu bạn đã làm quen với các kiến thức cơ bản, hãy thử sức với các bài tập nâng cao hơn ở trang Bài tập lập trình - Nâng cao.

Mỗi bài đều có phần đáp án gợi ý ở dưới, mặc định ẩn đi - bạn nên tự làm trước, sau đó bấm vào “Xem đáp án” để đối chiếu. Đáp án chỉ là một cách giải, không phải cách duy nhất.

Bạn có thể tải file .pdf ở đây: 200 bài tập lập trình cơ bản

Xem playlist video hướng dẫn giải trên YouTube: Playlist bài giải bài tập lập trình cơ bản


Xem thêm lý thuyết: Nhập dữ liệu từ Bàn phím, In kết quả/thông tin với hàm print().

1. Hello World

Viết chương trình in ra dòng chữ Hello, World!.

Xem đáp án
print("Hello, World!")

2. Tổng hai số

Đọc vào 2 số nguyên a, b từ bàn phím (dùng input()), in ra tổng của chúng.

Xem đáp án
Đang tải lời giải…
Xem hướng dẫn giải

3. Chu vi và diện tích hình chữ nhật

Đọc vào chiều dài a và chiều rộng b. Tính chu vi (2*(a+b)) và diện tích (a*b).

Xem đáp án
Đang tải lời giải…
Xem hướng dẫn giải

4. Đổi độ C sang độ F

Đọc vào nhiệt độ theo độ C, in ra nhiệt độ tương ứng theo độ F. Công thức: F = C * 9/5 + 32.

Xem đáp án
Đang tải lời giải…
Xem hướng dẫn giải

5. Diện tích và chu vi hình tròn

Đọc vào bán kính r, tính chu vi (2×pi×r) và diện tích (pi×r2), làm tròn 2 chữ số thập phân.

Xem đáp án
Đang tải lời giải…
Xem hướng dẫn giải

6. Đổi giây thành giờ:phút:giây

Đọc vào số giây s, in ra theo định dạng Giờ:Phút:Giây, mỗi phần gồm 2 chữ số (nếu nhỏ hơn 10 thì thêm số 0 ở trước).

Ví dụ:

Input: 3665
Output: 01:01:05
Xem đáp án
Đang tải lời giải…

7. Tính lũy thừa

Đọc vào 2 số nguyên a và n, in ra a mũ n (không dùng ** hoặc pow, dùng vòng lặp).

Xem đáp án
Đang tải lời giải…

8. Điểm trung bình

Đọc vào 3 điểm số Toán, Lý, Hóa. In ra điểm trung bình, làm tròn 1 chữ số thập phân.

Xem đáp án
Đang tải lời giải…

9. Đảo ngược số có 2 chữ số

Đọc vào một số nguyên dương có 2 chữ số, in ra số đó khi đảo ngược 2 chữ số.

Ví dụ:

Input: 47
Output: 74
Xem đáp án
Đang tải lời giải…

10. Hoán đổi giá trị 2 biến

Cho 2 biến a = 5, b = 10. Hoán đổi giá trị của chúng mà không dùng biến tạm, rồi in ra kết quả.

Xem đáp án
Đang tải lời giải…

11. Tính trung bình cộng của 3 số

Đọc vào 3 số thực a, b, c từ bàn phím (dùng input()), in ra trung bình cộng của chúng.

Xem đáp án
Đang tải lời giải…

12. Tìm số lớn nhất trong 2 số

Đọc vào 2 số thực a, b từ bàn phím, in ra số lớn hơn.

Xem đáp án
Đang tải lời giải…

13. Chu vi và diện tích hình vuông

Đọc vào cạnh a của hình vuông, in ra chu vi (4a) và diện tích (a²).

Xem đáp án
Đang tải lời giải…

14. Đổi từ kilômét sang mét

Đọc vào số km, in ra số mét tương ứng (km × 1000).

Xem đáp án
Đang tải lời giải…

15. Tính tiền phải trả sau giảm giá

Đọc vào giá gốc price và phần trăm giảm giá percent, tính và in ra số tiền phải trả (price × (1 - percent/100)).

Xem đáp án
Đang tải lời giải…

16. Tính chỉ số BMI

Đọc vào cân nặng weight (kg) và chiều cao height (m), tính chỉ số BMI (weight / height²) và in kết quả làm tròn 2 chữ số thập phân.

Xem đáp án
Đang tải lời giải…

17. Tính lãi đơn khi gửi tiết kiệm

Đọc vào vốn gốc P, lãi suất năm r (%) và số năm n. Tiền lãi = P × r/100 × n. In ra tổng tiền nhận được (P + tiền lãi).

Xem đáp án
Đang tải lời giải…

18. Tính diện tích tam giác bằng công thức Heron

Đọc vào độ dài 3 cạnh a, b, c của một tam giác, tính diện tích bằng công thức Heron: nửa chu vi p = (a+b+c)/2, diện tích S = √(p(p-a)(p-b)(p-c)).

Ví dụ:

Input: a=3, b=4, c=5
Output: Diện tích: 6.0
Xem đáp án
Đang tải lời giải…

19. Kiểm tra số chia hết cho cả 3 và 5

Đọc vào số nguyên n, in ra “Có” nếu n chia hết cho cả 3 và 5, ngược lại in “Không”.

Ví dụ:

Input: 15
Output: Có
Xem đáp án
Đang tải lời giải…

20. Tính tiền cước taxi theo km (giá bậc thang)

Đọc vào số km km (có thể là số thực). Quy tắc: 2km đầu giá 15000đ/km, từ km thứ 3 trở đi giá 12000đ/km. Tính và in ra tổng tiền phải trả.

Ví dụ:

Input: 5
Output: 66000
Xem đáp án
Đang tải lời giải…

21. Kiểm tra tam giác vuông

Đọc vào 3 cạnh a, b, c (số dương), kiểm tra chúng có thỏa định lý Pythagoras không (cạnh lớn nhất bình phương bằng tổng bình phương 2 cạnh còn lại). In ra “Là tam giác vuông” hoặc “Không phải tam giác vuông”.

Ví dụ:

Input: 3, 4, 5
Output: Là tam giác vuông
Xem đáp án
Đang tải lời giải…

22. Xếp loại chỉ số BMI

Đọc vào chỉ số bmi. Phân loại: < 18.5: Thiếu cân, 18.5 - 24.9: Bình thường, 25 - 29.9: Thừa cân, >= 30: Béo phì.

Ví dụ:

Input: 22
Output: Bình thường
Xem đáp án
Đang tải lời giải…

23. Kiểm tra bội số

Đọc vào 2 số nguyên a, b (b khác 0), kiểm tra a có là bội số của b không (a % b == 0).

Ví dụ:

Input: a = 12, b = 4
Output: 12 là bội số của 4
Xem đáp án
Đang tải lời giải…

24. Tính tiền vé xem phim theo độ tuổi

Đọc vào tuổi age. Quy định giá vé: dưới 6 tuổi miễn phí (0đ), 6-12 tuổi: 50000đ, 13-59 tuổi: 100000đ, từ 60 tuổi trở lên: 50000đ. In ra giá vé.

Ví dụ:

Input: 30
Output: 100000
Xem đáp án
Đang tải lời giải…

25. Phân loại ký tự nhập vào

Đọc vào 1 ký tự ch, kiểm tra và in ra đó là “Chữ hoa”, “Chữ thường”, “Chữ số” hay “Ký tự đặc biệt”.

Ví dụ:

Input: A
Output: Chữ hoa
Xem đáp án
Đang tải lời giải…

Xem thêm lý thuyết: Cấu trúc rẽ nhánh (If-Elif-Else).

26. Kiểm tra chẵn lẻ

Đọc vào một số nguyên n, in ra "Chẵn" nếu n chẵn, "Lẻ" nếu n lẻ.

Ví dụ:

Input: 7
Output: Lẻ
Xem đáp án
Đang tải lời giải…

27. Số dương, âm hay bằng 0

Đọc vào một số n. In "Dương" nếu n > 0, "Âm" nếu n < 0, "Bằng 0" nếu n == 0.

Ví dụ:

Input: -5
Output: Âm
Xem đáp án
Đang tải lời giải…

28. Số lớn nhất trong 3 số

Đọc vào 3 số a, b, c. In ra số lớn nhất (không dùng hàm max).

Ví dụ:

Input: a=7, b=12, c=9
Output: 12
Xem đáp án
Đang tải lời giải…

29. Kiểm tra năm nhuận

Đọc vào năm N. In "Nhuận" nếu N chia hết cho 400, hoặc chia hết cho 4 nhưng không chia hết cho 100.

Ví dụ:

Input: 2024
Output: Nhuận
Xem đáp án
Đang tải lời giải…

30. Xếp loại học lực

Đọc điểm trung bình diem (0-10). Xếp loại: >= 8: Giỏi, >= 6.5: Khá, >= 5: Trung bình, còn lại: Yếu.

Ví dụ:

Input: 7.2
Output: Khá
Xem đáp án
Đang tải lời giải…

31. Kiểm tra tam giác

Đọc vào 3 số dương a, b, c. Kiểm tra 3 số đó có tạo thành tam giác hay không (tổng 2 cạnh bất kỳ phải lớn hơn cạnh còn lại).

Ví dụ:

Input: a=3, b=4, c=5
Output: Là tam giác
Xem đáp án
Đang tải lời giải…

32. Giải phương trình bậc nhất

Đọc vào 2 hệ số a, b của phương trình ax + b = 0. In ra nghiệm, hoặc thông báo phù hợp nếu vô nghiệm/vô số nghiệm.

Ví dụ:

Input: a=2, b=-4
Output: x = 2.0
Xem đáp án
Đang tải lời giải…

33. Tính tiền điện

Đọc số điện tiêu thụ kwh. Giá: 50 số đầu 1,678đ/số; 50 số tiếp theo 1,734đ/số; từ số 101 trở lên 2,014đ/số. In ra tổng tiền phải trả.

Ví dụ:

Input: 120
Output: 210880 đồng
Xem đáp án
Đang tải lời giải…

34. Phân loại tam giác theo độ dài 3 cạnh

Đọc vào độ dài 3 cạnh a, b, c. Kiểm tra đây có phải là một tam giác hợp lệ không (tổng 2 cạnh bất kỳ luôn lớn hơn cạnh còn lại). Nếu hợp lệ, phân loại: “Tam giác đều” (3 cạnh bằng nhau), “Tam giác cân” (2 cạnh bằng nhau), hoặc “Tam giác thường”.

Ví dụ:

Input: a=3, b=3, c=4
Output: Tam giác cân
Xem đáp án
Đang tải lời giải…

35. Máy tính đơn giản

Đọc vào 2 số a, b và 1 phép toán (+, -, *, /). In ra kết quả tương ứng.

Ví dụ:

Input: a=10, op=+, b=5
Output: 15.0
Xem đáp án
Đang tải lời giải…

Xem thêm lý thuyết: Vòng lặp for với hàm range(), Vòng lặp while, Break, Continue và Pass.

36. In các số từ 1 đến n

Đọc vào số nguyên n, in ra các số từ 1 đến n, mỗi số trên 1 dòng.

Xem đáp án
Đang tải lời giải…

37. Tính tổng 1 + 2 + … + n

Đọc vào n, tính tổng các số từ 1 đến n.

Xem đáp án
Đang tải lời giải…

38. Tính giai thừa

Đọc vào n, tính n! (giai thừa của n).

Xem đáp án
Đang tải lời giải…

39. Bảng cửu chương

Đọc vào số n, in ra bảng cửu chương của n (từ n x 1 đến n x 10).

Xem đáp án
Đang tải lời giải…

40. Đếm số chữ số của một số

Đọc vào một số nguyên dương, đếm xem nó có bao nhiêu chữ số.

Ví dụ:

Input: 12345
Output: 5
Xem đáp án
Đang tải lời giải…

41. Tính tổng các chữ số

Đọc vào một số nguyên dương, tính tổng các chữ số của nó.

Ví dụ:

Input: 12345
Output: 15
Xem đáp án
Đang tải lời giải…

42. Kiểm tra số nguyên tố

Đọc vào số nguyên dương n, kiểm tra n có phải số nguyên tố hay không.

Ví dụ:

Input: 17
Output: Là số nguyên tố
Xem đáp án
Đang tải lời giải…

43. In các số nguyên tố nhỏ hơn n

Đọc vào n, in ra tất cả các số nguyên tố nhỏ hơn n.

Ví dụ:

Input: 20
Output: 2 3 5 7 11 13 17 19
Xem đáp án
Đang tải lời giải…

44. Ước chung lớn nhất (ƯCLN)

Đọc vào 2 số nguyên dương a, b, tính ƯCLN của chúng (dùng thuật toán Euclid).

Ví dụ:

Input: a=48, b=18
Output: ƯCLN: 6
Xem đáp án
Đang tải lời giải…

45. Bội chung nhỏ nhất (BCNN)

Đọc vào 2 số nguyên dương a, b, tính BCNN của chúng (dựa vào ƯCLN: BCNN = a*b / ƯCLN).

Ví dụ:

Input: a=4, b=6
Output: BCNN: 12
Xem đáp án
Đang tải lời giải…

46. Dãy Fibonacci

Đọc vào n, in ra n số đầu tiên của dãy Fibonacci (0, 1, 1, 2, 3, 5, …).

Ví dụ:

Input: 7
Output: 0 1 1 2 3 5 8
Xem đáp án
Đang tải lời giải…

47. Số hoàn hảo

Một số được gọi là số hoàn hảo nếu nó bằng tổng các ước số dương nhỏ hơn nó (ví dụ: 6 = 1 + 2 + 3). In ra tất cả số hoàn hảo trong khoảng từ 1 đến n.

Ví dụ:

Input: 30
Output: 6 28
Xem đáp án
Đang tải lời giải…

48. In hình tam giác dấu sao

Đọc vào n, in ra hình tam giác vuông bằng dấu * có n dòng.

Ví dụ với n = 4:

*
**
***
****
Xem đáp án
Đang tải lời giải…

49. In hình tam giác cân dấu sao

Đọc vào n, in ra hình tam giác cân bằng dấu * có n dòng, căn giữa.

Ví dụ với n = 3:

*
***
*****
Xem đáp án
Đang tải lời giải…

50. Đếm số lần xuất hiện

Đọc vào 1 số n, dùng vòng lặp while để đếm xem cần chia n cho 2 bao nhiêu lần thì về 1 (làm tròn xuống).

Xem đáp án
Đang tải lời giải…

51. Đoán số (dùng while)

Cho trước một số bí mật secret = 42. Dùng vòng lặp while để yêu cầu người dùng nhập số cho đến khi đoán đúng, in "Đoán đúng rồi!" khi thành công.

Xem đáp án
Đang tải lời giải…

52. Số Armstrong

Một số có 3 chữ số là số Armstrong nếu tổng lập phương các chữ số của nó bằng chính nó (ví dụ: 153 = 13 + 53 + 33). Kiểm tra một số nhập vào có phải số Armstrong không.

Ví dụ:

Input: 153
Output: Là số Armstrong
Xem đáp án
Đang tải lời giải…

53. break và continue

Đọc vào n, in ra các số từ 1 đến n, bỏ qua các số chia hết cho 3, và dừng hẳn khi gặp số chia hết cho 7.

Xem đáp án
Đang tải lời giải…

54. Vòng lặp lồng nhau - in ma trận số

Đọc vào n, in ra ma trận vuông kích thước n x n chứa các số từ 1 đến n*n, theo hàng.

Ví dụ n = 3:

1 2 3
4 5 6
7 8 9
Xem đáp án
Đang tải lời giải…

55. Số nguyên tố cùng nhau

Đọc vào 2 số a, b. Kiểm tra chúng có phải là 2 số nguyên tố cùng nhau không (ƯCLN bằng 1).

Ví dụ:

Input: a=8, b=9
Output: Nguyên tố cùng nhau
Xem đáp án
Đang tải lời giải…

56. In các số chẵn từ 1 đến n

Cho n = 20, in ra tất cả các số chẵn từ 1 đến n.

Xem đáp án
Đang tải lời giải…

57. Tính tổng các số chẵn từ 1 đến n

Cho n = 20, tính tổng các số chẵn từ 1 đến n và in kết quả.

Xem đáp án
Đang tải lời giải…

58. In dãy Fibonacci có giá trị nhỏ hơn n

Cho n = 100, in ra các số trong dãy Fibonacci (0, 1, 1, 2, 3, 5, 8, …) có giá trị nhỏ hơn n.

Xem đáp án
Đang tải lời giải…

59. Tính tổng bình phương các số từ 1 đến n

Cho n = 10, tính tổng 1² + 2² + ... + n² và in kết quả.

Xem đáp án
Đang tải lời giải…

60. In hình chữ nhật bằng dấu sao

Cho rows = 4, cols = 6, in ra hình chữ nhật đặc kích thước rows x cols bằng ký tự *.

Ví dụ với rows = 4, cols = 6:

******
******
******
******
Xem đáp án
Đang tải lời giải…

61. In hình vuông rỗng bằng dấu sao

Cho n = 5, in ra hình vuông cạnh n, trong đó chỉ viền là dấu *, bên trong là khoảng trắng.

Ví dụ với n = 5:

*****
* *
* *
* *
*****
Xem đáp án
Đang tải lời giải…

62. Đếm số lượng số nguyên tố trong đoạn [a, b]

Cho a = 10, b = 50, đếm số lượng số nguyên tố trong đoạn [a, b] và in kết quả.

Xem đáp án
Đang tải lời giải…

63. Liệt kê tất cả ước số của một số n

Cho n = 36, in ra danh sách tất cả các ước số của n theo thứ tự tăng dần.

Xem đáp án
Đang tải lời giải…

64. Kiểm tra số chính phương (perfect square)

Cho n = 49, kiểm tra n có phải là bình phương của một số nguyên hay không, in kết quả.

Xem đáp án
Đang tải lời giải…

65. Tính tổng các số chia hết cho 3 hoặc 5 nhỏ hơn n

Cho n = 50, tính tổng các số từ 1 đến n - 1 chia hết cho 3 hoặc 5, in kết quả.

Xem đáp án
Đang tải lời giải…

Xem thêm lý thuyết: Chuỗi ký tự (String), Các phương thức của String.

66. Đếm số ký tự trong chuỗi

Đọc vào một chuỗi, in ra độ dài của chuỗi đó (không dùng len()).

Xem đáp án
Đang tải lời giải…

67. Đảo ngược chuỗi

Đọc vào một chuỗi, in ra chuỗi đó khi đảo ngược thứ tự ký tự.

Xem đáp án
Đang tải lời giải…

68. Kiểm tra chuỗi đối xứng (Palindrome)

Palindrome (chuỗi đối xứng) là chuỗi khi đọc xuôi và đọc ngược đều giống nhau, ví dụ level, radar, hay madam. Đọc vào một chuỗi, kiểm tra chuỗi đó có phải là palindrome hay không.

Ví dụ:

Input: level
Output: Là palindrome
Xem đáp án
Đang tải lời giải…

69. Đếm số nguyên âm và phụ âm

Đọc vào một chuỗi, đếm số lượng nguyên âm (a, e, i, o, u) có trong chuỗi (không phân biệt hoa thường).

Ví dụ:

Input: Hello World
Output: 3
Xem đáp án
Đang tải lời giải…

70. Viết hoa chữ cái đầu mỗi từ

Đọc vào một câu, in ra câu đó với chữ cái đầu mỗi từ được viết hoa (không dùng .title()).

Ví dụ:

Input: toi yeu python
Output: Toi Yeu Python
Xem đáp án
Đang tải lời giải…

71. Đếm số lần xuất hiện của 1 ký tự

Đọc vào một chuỗi và một ký tự, đếm xem ký tự đó xuất hiện bao nhiêu lần trong chuỗi.

Ví dụ:

Input: s=banana, c=a
Output: 3
Xem đáp án
Đang tải lời giải…

72. Loại bỏ khoảng trắng thừa

Đọc vào một chuỗi có nhiều khoảng trắng liên tiếp, in ra chuỗi chỉ còn 1 khoảng trắng giữa các từ.

Ví dụ:

Input: " hello world "
Output: "hello world"
Xem đáp án
Đang tải lời giải…

73. Kiểm tra Anagram

Anagram là 2 chuỗi được tạo từ cùng một tập ký tự nhưng sắp xếp theo thứ tự khác nhau, ví dụ listen và silent. Đọc vào 2 chuỗi, kiểm tra chúng có phải là anagram của nhau không.

Ví dụ:

Input: s1=listen, s2=silent
Output: Là anagram
Xem đáp án
Đang tải lời giải…

74. Tìm từ dài nhất trong câu

Đọc vào một câu, in ra từ dài nhất trong câu đó.

Ví dụ:

Input: Hoc lap trinh rat thu vi
Output: trinh
Xem đáp án
Đang tải lời giải…

75. Thay thế ký tự trong chuỗi

Đọc vào một chuỗi, thay tất cả các ký tự "a" bằng "@" (không dùng .replace()).

Ví dụ:

Input: banana
Output: b@n@n@
Xem đáp án
Đang tải lời giải…

76. Nối chuỗi từ danh sách

Cho một list các từ, ví dụ ["Toi", "yeu", "Python"]. In ra thành một câu, các từ cách nhau bởi dấu cách.

Xem đáp án
Đang tải lời giải…

77. Đếm số từ trong câu

Đọc vào một câu, đếm số lượng từ trong câu đó.

Ví dụ:

Input: Toi dang hoc Python
Output: 4
Xem đáp án
Đang tải lời giải…

78. Kiểm tra chuỗi con

Đọc vào chuỗi s và chuỗi sub. Kiểm tra sub có phải là chuỗi con của s hay không.

Ví dụ:

Input: s=hello world, sub=lo wo
Output: Có chứa
Xem đáp án
Đang tải lời giải…

79. Chuyển đổi hoa/thường

Đọc vào một chuỗi, in ra chuỗi đó với mọi ký tự thường thành hoa và ngược lại (không dùng .swapcase()).

Ví dụ:

Input: Hello World 123
Output: hELLO wORLD 123
Xem đáp án
Đang tải lời giải…

80. Mã hóa Caesar đơn giản

Đọc vào một chuỗi chỉ gồm chữ thường và một số k. Mã hóa chuỗi bằng cách dịch mỗi ký tự đi k vị trí trong bảng chữ cái (chỉ xử lý 26 chữ cái a-z, có vòng lại từ đầu).

Ví dụ:

Input: s=abc, k=3
Output: def
Xem đáp án
Đang tải lời giải…

81. Kiểm tra chuỗi có phải biểu diễn của một số hay không

Cho vài chuỗi mẫu như "12345", "12a45", "-123", kiểm tra từng ký tự trong chuỗi có phải là chữ số hay không, in kết quả Có/Không cho từng chuỗi.

Xem đáp án
Đang tải lời giải…

82. Đếm số từ trong câu bắt đầu bằng một chữ cái cho trước

Cho câu "Con cao con thap con o giua" và chữ cái 'c', đếm số từ trong câu bắt đầu bằng chữ cái đó (không phân biệt hoa thường).

Xem đáp án
Đang tải lời giải…

83. Loại bỏ các ký tự không phải chữ và số khỏi chuỗi

Cho chuỗi "Hello, World! 123@#", loại bỏ các ký tự không phải chữ cái hoặc chữ số, in ra chuỗi kết quả.

Xem đáp án
Đang tải lời giải…

84. Tìm ký tự xuất hiện nhiều nhất trong chuỗi

Cho chuỗi mẫu "chuoi vi du de tim ky tu xuat hien nhieu nhat", bỏ qua khoảng trắng, tìm và in ra ký tự xuất hiện nhiều nhất cùng số lần xuất hiện.

Xem đáp án
Đang tải lời giải…

85. Đếm số lượng chữ số, chữ cái và khoảng trắng trong chuỗi

Cho chuỗi "Hello 123 World 456", đếm và in ra số lượng chữ số, chữ cái và khoảng trắng có trong chuỗi.

Xem đáp án
Đang tải lời giải…

86. Sắp xếp các từ trong câu theo thứ tự bảng chữ cái

Cho câu mẫu "chuoi vi du sap xep tu theo alphabet", tách thành các từ, sắp xếp theo thứ tự bảng chữ cái rồi in ra câu mới.

Xem đáp án
Đang tải lời giải…

87. Đếm số lần xuất hiện của một từ trong câu (không phân biệt hoa thường)

Cho câu "Con meo ngoi tren tham con meo ngu con meo kieu" và từ cần đếm "meo", đếm số lần từ đó xuất hiện trong câu.

Xem đáp án
Đang tải lời giải…

88. Ghép xen kẽ hai chuỗi theo từng ký tự

Cho hai chuỗi "abc" và "123" có cùng độ dài, ghép xen kẽ ký tự của hai chuỗi (kết quả "a1b2c3"), in ra chuỗi kết quả.

Xem đáp án
Đang tải lời giải…

89. Kiểm tra hai chuỗi có phải là hoán vị của nhau hay không

Cho hai chuỗi mẫu "listen" và "silent", kiểm tra xem hai chuỗi có chứa đúng cùng tập ký tự và số lượng (hoán vị/anagram) của nhau hay không.

Xem đáp án
Đang tải lời giải…

90. Tính tổng các chữ số xuất hiện trong một chuỗi

Cho chuỗi "a1b2c3d4", duyệt qua từng ký tự, cộng dồn các ký tự là chữ số rồi in ra tổng.

Xem đáp án
Đang tải lời giải…

Xem thêm lý thuyết: Danh sách (List).

91. Tính tổng và trung bình cộng của list

Cho một list số, tính tổng và trung bình cộng các phần tử.

Xem đáp án
Đang tải lời giải…

92. Tìm số lớn nhất, nhỏ nhất trong list

Cho một list số, tìm giá trị lớn nhất và nhỏ nhất (không dùng max(), min()).

Ví dụ:

Input: [4, 8, 15, 16, 23, 42]
Output: Lớn nhất: 42, Nhỏ nhất: 4
Xem đáp án
Đang tải lời giải…

93. Đảo ngược list

Cho một list, in ra list đó theo thứ tự đảo ngược (không dùng .reverse() hoặc [::-1]).

Xem đáp án
Đang tải lời giải…

94. Loại bỏ phần tử trùng lặp

Cho một list có phần tử trùng lặp, tạo ra một list mới không có phần tử trùng, giữ nguyên thứ tự xuất hiện đầu tiên.

Ví dụ:

Input: [1, 2, 2, 3, 4, 4, 4, 5]
Output: [1, 2, 3, 4, 5]
Xem đáp án
Đang tải lời giải…

95. Tìm số chẵn/lẻ trong list

Cho một list số nguyên, tạo ra 2 list mới chứa các số chẵn và các số lẻ.

Ví dụ:

Input: [1, 2, 3, 4, 5, 6, 7, 8]
Output: Số chẵn: [2, 4, 6, 8], Số lẻ: [1, 3, 5, 7]
Xem đáp án
Đang tải lời giải…

96. Sắp xếp list (Bubble Sort)

Bubble sort (sắp xếp nổi bọt) là thuật toán sắp xếp đơn giản: lặp lại việc so sánh 2 phần tử liền kề, nếu sai thứ tự thì đổi chỗ cho nhau, cứ thế đến khi không còn cặp nào cần đổi chỗ (giống bong bóng nổi dần lên trên). Cho một list số, sắp xếp tăng dần bằng thuật toán này, không dùng .sort().

Ví dụ:

Input: [5, 2, 9, 1, 5, 6]
Output: [1, 2, 5, 5, 6, 9]
Xem đáp án
Đang tải lời giải…

97. Tìm kiếm tuần tự (Linear Search)

Cho một list và một giá trị cần tìm, trả về vị trí (index) của giá trị đó trong list, hoặc -1 nếu không tìm thấy.

Ví dụ:

Input: numbers=[10, 25, 3, 47, 8], target=47
Output: 3
Xem đáp án
Đang tải lời giải…

98. Tính tổng 2 ma trận

Cho 2 ma trận (list 2 chiều) cùng kích thước, tính ma trận tổng.

Ví dụ:

Input: a=[[1,2],[3,4]], b=[[5,6],[7,8]]
Output: [[6, 8], [10, 12]]
Xem đáp án
Đang tải lời giải…

99. Làm phẳng list lồng nhau

Cho một list chứa các list con, ví dụ [[1, 2], [3, 4], [5]]. In ra một list phẳng chứa tất cả phần tử.

Ví dụ:

Input: [[1, 2], [3, 4], [5]]
Output: [1, 2, 3, 4, 5]
Xem đáp án
Đang tải lời giải…

100. Trộn 2 list đã sắp xếp

Cho 2 list đã sắp xếp tăng dần, trộn chúng thành 1 list mới cũng tăng dần (không dùng sorted()).

Ví dụ:

Input: a=[1, 3, 5, 7], b=[2, 4, 6, 8, 10]
Output: [1, 2, 3, 4, 5, 6, 7, 8, 10]
Xem đáp án
Đang tải lời giải…

101. Tìm phần tử xuất hiện nhiều nhất

Cho một list, tìm phần tử xuất hiện nhiều lần nhất trong list đó.

Ví dụ:

Input: [1, 3, 2, 3, 4, 3, 2]
Output: 3
Xem đáp án
Đang tải lời giải…

102. Xoay list

Cho một list và một số k, xoay list sang phải k vị trí. Ví dụ [1,2,3,4,5] xoay 2 vị trí thành [4,5,1,2,3].

Ví dụ:

Input: numbers=[1, 2, 3, 4, 5], k=2
Output: [4, 5, 1, 2, 3]
Xem đáp án
Đang tải lời giải…

103. Kiểm tra list con

Cho 2 list a và b, kiểm tra tất cả phần tử của b có nằm trong a không.

Ví dụ:

Input: a=[1, 2, 3, 4, 5], b=[2, 4]
Output: True
Xem đáp án
Đang tải lời giải…

104. Tính tổng đường chéo ma trận

Cho một ma trận vuông, tính tổng các phần tử trên đường chéo chính.

Ví dụ:

Input: [[1,2,3],[4,5,6],[7,8,9]]
Output: 15
Xem đáp án
Đang tải lời giải…

105. Chia list thành các nhóm nhỏ

Cho một list và một số n, chia list thành các nhóm con có tối đa n phần tử.

Ví dụ:

Input: numbers=[1,2,3,4,5,6,7], n=3
Output: [[1, 2, 3], [4, 5, 6], [7]]
Xem đáp án
Đang tải lời giải…

106. Sắp xếp chọn (Selection Sort)

Cho một list số chưa sắp xếp, tự cài đặt thuật toán sắp xếp chọn (Selection Sort) để sắp xếp tăng dần, sau đó in kết quả.

Xem đáp án
Đang tải lời giải…

107. Sắp xếp chèn (Insertion Sort)

Cho một list số chưa sắp xếp, tự cài đặt thuật toán sắp xếp chèn (Insertion Sort) để sắp xếp tăng dần, sau đó in kết quả.

Xem đáp án
Đang tải lời giải…

108. Tìm kiếm nhị phân (Binary Search)

Cho một list số ĐÃ sắp xếp tăng dần và một giá trị target, tự cài đặt thuật toán tìm kiếm nhị phân để tìm chỉ số của target trong list (trả về -1 nếu không tìm thấy).

Xem đáp án
Đang tải lời giải…

109. Tổng các phần tử dương và tổng các phần tử âm

Cho một list số có cả giá trị dương và âm, tính riêng tổng các phần tử dương và tổng các phần tử âm, sau đó in cả hai kết quả.

Xem đáp án
Đang tải lời giải…

110. Tìm phần tử lớn thứ hai trong list

Cho một list số (không có phần tử trùng nhau), tìm phần tử lớn thứ hai bằng cách duyệt qua list (không dùng sort() rồi lấy phần tử cuối thứ 2).

Xem đáp án
Đang tải lời giải…

111. Xóa các phần tử trùng lặp, giữ nguyên thứ tự xuất hiện

Cho một list có phần tử trùng lặp, tạo list mới chỉ chứa các phần tử xuất hiện lần đầu, giữ nguyên thứ tự xuất hiện ban đầu.

Xem đáp án
Đang tải lời giải…

112. Kiểm tra list có đang sắp xếp tăng dần hay không

Cho một list số, kiểm tra xem list đó có đang được sắp xếp tăng dần hay không.

Xem đáp án
Đang tải lời giải…

113. Tính hiệu của hai list

Cho hai list A và B, tìm các phần tử có trong A nhưng không có trong B.

Xem đáp án
Đang tải lời giải…

114. Trộn hai list và loại bỏ phần tử trùng lặp

Cho hai list A và B, trộn hai list lại rồi loại bỏ các phần tử trùng lặp trong kết quả, sau đó in ra list đã sắp xếp.

Xem đáp án
Đang tải lời giải…

115. Vị trí xuất hiện đầu tiên và cuối cùng của một phần tử

Cho một list có phần tử lặp lại nhiều lần và một giá trị target, tìm vị trí xuất hiện đầu tiên và cuối cùng của target trong list.

Xem đáp án
Đang tải lời giải…

116. Tính trung vị (median) của một list số

Cho một list số, sắp xếp rồi tính trung vị (median): nếu số phần tử lẻ, trung vị là phần tử ở giữa; nếu chẵn, trung vị là trung bình cộng của hai phần tử ở giữa.

Xem đáp án
Đang tải lời giải…

117. Xoay ma trận vuông 90 độ theo chiều kim đồng hồ

Cho một ma trận vuông (list 2 chiều), xoay ma trận 90 độ theo chiều kim đồng hồ rồi in kết quả.

Xem đáp án
Đang tải lời giải…

Xem thêm lý thuyết: Tuple, Từ điển (Dictionary), Tập hợp (Set).

118. Đổi list thành tuple và ngược lại

Cho một list, chuyển thành tuple; sau đó chuyển tuple đó ngược lại thành list.

Xem đáp án
Đang tải lời giải…

119. Đếm số lần xuất hiện của từ (dictionary)

Đọc vào một câu, đếm số lần xuất hiện của mỗi từ, lưu vào dictionary.

Ví dụ:

Input: "con meo con cho con meo"
Output: {'con': 3, 'meo': 2, 'cho': 1}
Xem đáp án
Đang tải lời giải…

120. Gộp 2 dictionary

Cho 2 dictionary, gộp chúng thành 1 dictionary mới. Nếu trùng key, lấy giá trị của dictionary thứ 2.

Ví dụ:

Input: a={"x": 1, "y": 2}, b={"y": 3, "z": 4}
Output: {'x': 1, 'y': 3, 'z': 4}
Xem đáp án
Đang tải lời giải…

121. Tìm key có giá trị lớn nhất trong dictionary

Cho một dictionary điểm số học sinh, ví dụ {"An": 8, "Binh": 9, "Chi": 7}. Tìm ra học sinh có điểm cao nhất.

Ví dụ:

Input: {"An": 8, "Binh": 9, "Chi": 7}
Output: Binh 9
Xem đáp án
Đang tải lời giải…

122. Đảo ngược key-value của dictionary

Cho một dictionary, tạo ra dictionary mới với key và value bị đảo ngược cho nhau.

Ví dụ:

Input: {"a": 1, "b": 2, "c": 3}
Output: {1: 'a', 2: 'b', 3: 'c'}
Xem đáp án
Đang tải lời giải…

123. Giao và hợp của 2 set

Cho 2 set số nguyên, tìm giao (phần tử chung) và hợp (tất cả phần tử) của chúng.

Ví dụ:

Input: a={1,2,3,4}, b={3,4,5,6}
Output: Giao: {3, 4}, Hợp: {1, 2, 3, 4, 5, 6}
Xem đáp án
Đang tải lời giải…

124. Loại bỏ trùng lặp bằng set

Cho một list có phần tử trùng lặp, dùng set để loại bỏ trùng lặp, sau đó in ra dưới dạng list đã sắp xếp.

Ví dụ:

Input: [3, 1, 2, 3, 4, 1, 5]
Output: [1, 2, 3, 4, 5]
Xem đáp án
Đang tải lời giải…

125. Danh bạ điện thoại đơn giản

Tạo một dictionary contacts lưu tên và số điện thoại. Viết chương trình cho phép thêm 1 người mới và in ra toàn bộ danh bạ.

Xem đáp án
Đang tải lời giải…

126. Kiểm tra 2 tập hợp rời nhau

Cho 2 set, kiểm tra chúng có phần tử chung hay không (rời nhau nghĩa là không có phần tử chung).

Ví dụ:

Input: a={1,2,3}, b={4,5,6}
Output: True
Xem đáp án
Đang tải lời giải…

127. Nhóm học sinh theo xếp loại (dictionary of list)

Cho một dictionary điểm học sinh, nhóm học sinh vào các loại “Giỏi” (>=8), “Khá” (>=6.5), “Trung bình” (còn lại).

Ví dụ:

Input: {"An": 9, "Binh": 7, "Chi": 5, "Dat": 6.8}
Output: {'Gioi': ['An'], 'Kha': ['Dat'], 'Trung binh': ['Binh', 'Chi']}
Xem đáp án
Đang tải lời giải…

128. Sắp xếp dictionary theo giá trị tăng dần

Cho dictionary prices chứa tên sản phẩm và giá tiền, sắp xếp dictionary theo giá tăng dần và in kết quả.

Xem đáp án
Đang tải lời giải…

129. Kiểm tra tuple có phần tử trùng lặp hay không

Viết hàm kiểm tra một tuple có chứa phần tử trùng lặp hay không, thử với hai tuple mẫu.

Xem đáp án
Đang tải lời giải…

130. Tính hiệu và hiệu đối xứng của hai set

Cho hai set số A và B, tính A - B, B - A và hiệu đối xứng (symmetric difference) giữa chúng.

Xem đáp án
Đang tải lời giải…

131. Đếm tần suất xuất hiện của từng ký tự trong chuỗi

Cho một chuỗi s, đếm tần suất xuất hiện của từng ký tự (bỏ qua khoảng trắng) và lưu vào dictionary.

Xem đáp án
Đang tải lời giải…

132. Tạo dictionary từ hai list song song

Cho hai list keys và values cùng độ dài, ghép chúng thành một dictionary và in kết quả.

Xem đáp án
Đang tải lời giải…

133. Tìm phần tử chung của nhiều list bằng set

Cho ba list số, tìm các phần tử xuất hiện chung trong cả ba list bằng cách sử dụng set.

Xem đáp án
Đang tải lời giải…

134. Sắp xếp list các tuple theo phần tử thứ hai

Cho list các tuple (tên, điểm), sắp xếp danh sách theo điểm giảm dần.

Xem đáp án
Đang tải lời giải…

135. Kiểm tra dictionary có phải là tập con của dictionary khác

Viết hàm kiểm tra dictionary A có phải là “tập con” của dictionary B hay không (mọi cặp key-value của A đều tồn tại đúng trong B).

Xem đáp án
Đang tải lời giải…

Xem thêm lý thuyết: Định nghĩa và tạo một hàm, Tham số và Đối số, Giá trị trả về (return).

136. Hàm kiểm tra số nguyên tố

Viết hàm is_prime(n) trả về True/False cho biết n có phải số nguyên tố không.

Xem đáp án
Đang tải lời giải…

137. Hàm tính giai thừa

Viết hàm factorial(n) trả về giai thừa của n.

Xem đáp án
Đang tải lời giải…

138. Hàm với tham số mặc định

Viết hàm introduce(name, age=18) in ra câu giới thiệu, nếu không truyền age thì mặc định là 18.

Xem đáp án
Đang tải lời giải…

*139. Hàm với số lượng tham số bất kỳ (args)

*args cho phép một hàm nhận vào số lượng tham số không giới hạn (xem thêm: *args và **kwargs). Viết hàm total(*num) nhận vào số lượng tham số bất kỳ và trả về tổng của chúng.

Xem đáp án
Đang tải lời giải…

140. Hàm trả về nhiều giá trị

Viết hàm get_stats(numbers) trả về đồng thời giá trị nhỏ nhất, lớn nhất và trung bình cộng của một list số.

Xem đáp án
Đang tải lời giải…

141. Hàm lambda

Lambda là cách viết một hàm ngắn gọn trên 1 dòng, không cần đặt tên bằng def (xem thêm: Lambda Function). Dùng lambda để viết một hàm bình phương một số, và một hàm kiểm tra số chẵn.

Xem đáp án
Đang tải lời giải…

142. Dùng map, filter với lambda

filter(hàm, list) giữ lại các phần tử mà hàm trả về True; map(hàm, list) áp dụng hàm lên từng phần tử và trả về kết quả mới. Cho list số [1, 2, 3, 4, 5, 6]. Dùng filter để lấy các số chẵn, dùng map để bình phương từng số chẵn đó.

Xem đáp án
Đang tải lời giải…

143. Hàm chuyển đổi nhiệt độ

Viết 2 hàm c_to_f(c) và f_to_c(f) để chuyển đổi qua lại giữa độ C và độ F.

Xem đáp án
Đang tải lời giải…

144. Hàm kiểm tra chuỗi Palindrome

Viết hàm is_palindrome(s) kiểm tra chuỗi s có phải là palindrome không, bỏ qua khoảng trắng và không phân biệt hoa/thường.

Xem đáp án
Đang tải lời giải…

145. Hàm đệ quy tính giai thừa

Viết hàm factorial(n) tính giai thừa bằng đệ quy (hàm tự gọi lại chính nó).

Xem đáp án
Đang tải lời giải…

146. Kiểm tra số hoàn hảo (perfect number)

Viết hàm is_perfect(n) kiểm tra một số có phải là số hoàn hảo hay không (tổng các ước số thực sự bằng chính nó, ví dụ 6 = 1 + 2 + 3).

Xem đáp án
Đang tải lời giải…

147. Tính đồng thời ƯCLN và BCNN của hai số

Viết hàm gcd_lcm(a, b) trả về đồng thời ƯCLN và BCNN của hai số.

Xem đáp án
Đang tải lời giải…

148. Hàm với tham số từ khóa tùy ý

Viết hàm in thông tin một người với số lượng thuộc tính tùy ý, sử dụng **kwargs ở Python (các ngôn ngữ khác mô phỏng bằng Map/Dictionary).

Xem đáp án
Đang tải lời giải…

149. Hàm tính diện tích hình theo tên hình

Viết hàm calc_area(shape, ...) nhận tên hình (hình tròn, hình vuông, hình chữ nhật) cùng các tham số tương ứng và trả về diện tích.

Xem đáp án
Đang tải lời giải…

150. Hàm đệ quy tính tổng các chữ số

Viết hàm đệ quy sum_digits(n) tính tổng các chữ số của một số nguyên dương.

Xem đáp án
Đang tải lời giải…

151. Sắp xếp list theo tiêu chí tùy chỉnh

Cho list các cặp (tên, giá), sắp xếp danh sách theo giá tăng dần bằng key function/comparator.

Xem đáp án
Đang tải lời giải…

152. Kiểm tra dãy số tăng dần chặt

Viết hàm is_strictly_increasing(numbers) kiểm tra một list có phải là dãy tăng dần chặt hay không (mỗi phần tử sau lớn hơn phần tử trước).

Xem đáp án
Đang tải lời giải…

153. Hàm nhận hàm khác làm tham số

Viết hàm apply_operation(a, b, op) nhận vào 2 số a, b và một hàm op, áp dụng op(a, b) và trả về kết quả. Test với một hàm cộng và một hàm nhân.

Xem đáp án
Đang tải lời giải…

Đệ quy là kỹ thuật một hàm tự gọi lại chính nó để giải quyết bài toán nhỏ hơn, cho đến khi gặp điều kiện dừng (base case). Xem thêm lý thuyết: Đệ quy (Recursion).

154. Đệ quy tính tổng 1 đến n

Viết hàm đệ quy tong(n) tính tổng các số từ 1 đến n.

Xem đáp án
Đang tải lời giải…

155. Đệ quy tính số Fibonacci thứ n

Viết hàm đệ quy fib(n) trả về số Fibonacci thứ n (bắt đầu từ fib(0) = 0, fib(1) = 1).

Xem đáp án
Đang tải lời giải…

156. Đệ quy đảo ngược chuỗi

Viết hàm đệ quy reverse(s) trả về chuỗi s bị đảo ngược, không dùng s[::-1].

Xem đáp án
Đang tải lời giải…

157. Đệ quy tính ƯCLN

Viết hàm đệ quy gcd(a, b) tính ước chung lớn nhất của a và b.

Xem đáp án
Đang tải lời giải…

158. Đệ quy đếm số chữ số

Viết hàm đệ quy count_digits(n) đếm số lượng chữ số của số nguyên dương n.

Xem đáp án
Đang tải lời giải…

159. Đệ quy tính lũy thừa x^n

Viết hàm đệ quy power(x, n) tính giá trị x mũ n (với n là số nguyên không âm).

Xem đáp án
Đang tải lời giải…

160. Đệ quy kiểm tra chuỗi Palindrome

Viết hàm đệ quy is_palindrome(s) kiểm tra chuỗi s có phải là chuỗi đối xứng (palindrome) hay không, bằng cách so sánh ký tự đầu và ký tự cuối rồi đệ quy phần giữa.

Xem đáp án
Đang tải lời giải…

161. Đệ quy tính tổng các phần tử trong list

Viết hàm đệ quy sum_list(numbers) tính tổng các phần tử trong một danh sách số.

Xem đáp án
Đang tải lời giải…

162. Đệ quy tìm giá trị lớn nhất trong list

Viết hàm đệ quy find_max(numbers) tìm giá trị lớn nhất trong một danh sách số.

Xem đáp án
Đang tải lời giải…

163. Đệ quy chuyển đổi số nguyên thập phân sang nhị phân

Viết hàm đệ quy to_binary(n) chuyển một số nguyên không âm n sang chuỗi biểu diễn nhị phân của nó.

Xem đáp án
Đang tải lời giải…

Xem thêm lý thuyết: Đọc và Ghi File, Exception Handling (Try/Except).

164. Ghi và đọc file văn bản

Ghi danh sách 3 câu vào file data.txt (mỗi câu 1 dòng), sau đó đọc lại và in ra từng dòng.

Xem đáp án
Đang tải lời giải…

165. Đếm số dòng, số từ trong file

Cho một file văn bản, đếm số dòng và tổng số từ có trong file đó.

Xem đáp án
Đang tải lời giải…

166. Xử lý lỗi chia cho 0

Viết chương trình đọc vào 2 số và chia chúng cho nhau, dùng try/except để xử lý trường hợp chia cho 0.

Xem đáp án
Đang tải lời giải…

167. Xử lý lỗi nhập liệu sai định dạng

Viết chương trình yêu cầu người dùng nhập một số nguyên, dùng try/except để bắt lỗi nếu người dùng nhập chữ thay vì số.

Xem đáp án
Đang tải lời giải…

168. Tự định nghĩa Exception

Viết một class exception tùy chỉnh NegativeNumberError. Viết hàm check_positive(n) ném ra exception này nếu n âm.

Xem đáp án
Đang tải lời giải…

169. Đọc nội dung file văn bản và đếm số lần xuất hiện của một từ cụ thể

Viết chương trình ghi ra file một đoạn văn bản mẫu, sau đó đọc lại nội dung file và đếm số lần xuất hiện của một từ khóa cho trước (không phân biệt hoa thường). Dùng try/except để xử lý nếu file không mở được.

Xem đáp án
Đang tải lời giải…

170. Ghi một danh sách số ra file, mỗi số một dòng

Viết chương trình ghi ra file numbers.txt một danh sách số nguyên, mỗi số trên một dòng, sau đó đọc lại nội dung file và in ra để xác nhận.

Xem đáp án
Đang tải lời giải…

171. Xử lý lỗi khi mở một file không tồn tại

Viết chương trình thử mở một file không có thật, bắt lỗi phát sinh và in ra thông báo lỗi thân thiện.

Xem đáp án
Đang tải lời giải…

172. Dùng try/except/else/finally để xử lý đồng thời nhiều loại lỗi khi nhập số

Viết chương trình nhập hai số a, b rồi thực hiện phép chia a / b. Xử lý cả lỗi sai định dạng số lẫn lỗi chia cho 0, dùng đầy đủ try/except/else/finally (hoặc try/catch/finally tương đương): khối else in kết quả nếu không có lỗi, khối finally luôn in ra “Hoan tat”.

Xem đáp án
Đang tải lời giải…

173. Xử lý lỗi khi truy cập phần tử ngoài phạm vi của list

Viết chương trình hardcode một danh sách và một chỉ số vượt phạm vi, bắt lỗi truy cập ngoài phạm vi (IndexError hoặc tương đương) và in ra thông báo lỗi thân thiện.

Xem đáp án
Đang tải lời giải…

Nhóm 10: Lập trình hướng đối tượng cơ bản (OOP)

Phần tiêu đề “Nhóm 10: Lập trình hướng đối tượng cơ bản (OOP)”

Xem thêm lý thuyết: Class và Object, Kế thừa (Inheritance), Đóng gói (Encapsulation).

174. Class Person (Người)

Định nghĩa class Person với thuộc tính name, age và phương thức introduce() in ra câu giới thiệu bản thân. Tạo một object và gọi phương thức.

Xem đáp án
Đang tải lời giải…

175. Class Book (Sách)

Định nghĩa class Book với thuộc tính title, author, price và phương thức display_info() in đầy đủ thông tin. Tạo một object mẫu và gọi phương thức.

Xem đáp án
Đang tải lời giải…

176. Class Rectangle (Hình chữ nhật)

Định nghĩa class Rectangle với thuộc tính width, height và hai phương thức area() (tính diện tích), perimeter() (tính chu vi). Tạo một object và gọi cả hai phương thức.

Xem đáp án
Đang tải lời giải…

177. Class Student (Sinh viên) xếp loại học lực

Định nghĩa class Student quản lý điểm số các môn (scores) và phương thức classify() xếp loại học lực dựa trên điểm trung bình: >= 8 Giỏi, >= 6.5 Khá, >= 5 Trung bình, còn lại Yếu. Tạo một object mẫu và in ra xếp loại.

Xem đáp án
Đang tải lời giải…

178. Kế thừa (Inheritance) — Animal, Dog, Cat

Định nghĩa class Animal với phương thức speak(). Viết hai lớp con Dog, Cat kế thừa Animal và ghi đè (override) phương thức speak() để in tiếng kêu riêng. Tạo object Dog, Cat và gọi speak().

Xem đáp án
Đang tải lời giải…

179. Đóng gói (Encapsulation) — class Account

Định nghĩa class Account với số dư balance là thuộc tính private, có getter get_balance() và phương thức deposit(amount) chỉ cộng tiền vào số dư khi amount dương. Minh họa gọi thử với một giá trị hợp lệ và một giá trị âm.

Xem đáp án
Đang tải lời giải…

180. Class BankAccount (Tài khoản ngân hàng)

Định nghĩa class BankAccount với phương thức deposit(amount) (nạp tiền), withdraw(amount) (rút tiền, chỉ cho rút khi đủ số dư) và get_balance() (xem số dư). Minh họa nạp tiền, rút tiền hợp lệ, rút tiền vượt quá số dư rồi in số dư cuối cùng.

Xem đáp án
Đang tải lời giải…

181. Ghi đè phương thức (method overriding) — Shape, Circle, Square

Định nghĩa class Shape với phương thức area() trả về 0 mặc định. Viết hai lớp con Circle (thuộc tính radius) và Square (thuộc tính side) ghi đè area() theo công thức riêng. Tạo một object mỗi loại và in diện tích.

Xem đáp án
Đang tải lời giải…

182. Class quản lý danh sách sản phẩm

Định nghĩa class ProductManager quản lý danh sách sản phẩm (mỗi sản phẩm có name, price) với các phương thức add_product(name, price) (thêm), remove_product(name) (xóa theo tên) và show_products() (hiển thị danh sách). Minh họa thêm vài sản phẩm, xóa một sản phẩm rồi hiển thị danh sách còn lại.

Xem đáp án
Đang tải lời giải…

183. So sánh hai đối tượng cùng class — Point

Định nghĩa class Point với thuộc tính x, y. Viết cách kiểm tra hai điểm có trùng tọa độ hay không (toán tử == nếu ngôn ngữ hỗ trợ, hoặc hàm so sánh riêng). Tạo vài object Point, so sánh và in kết quả.

Xem đáp án
Đang tải lời giải…

Nhóm 11: Ma trận và mảng 2 chiều cơ bản

Phần tiêu đề “Nhóm 11: Ma trận và mảng 2 chiều cơ bản”

Xem thêm lý thuyết: Danh sách (List).

184. Nhập và in ma trận 2 chiều

Cho một ma trận (list 2 chiều) kích thước 3x3 được khai báo sẵn, in ra từng dòng của ma trận.

Xem đáp án
Đang tải lời giải…

185. Tính tổng các phần tử trên đường chéo chính và đường chéo phụ của ma trận vuông

Cho một ma trận vuông 3x3, tính tổng các phần tử trên đường chéo chính (matrix[i][i]) và đường chéo phụ (matrix[i][n-1-i]), sau đó in kết quả.

Xem đáp án
Đang tải lời giải…

186. Tìm phần tử lớn nhất và nhỏ nhất trong ma trận

Cho một ma trận 2 chiều, duyệt qua tất cả phần tử để tìm giá trị lớn nhất và nhỏ nhất, sau đó in kết quả.

Xem đáp án
Đang tải lời giải…

187. Tính tổng từng hàng và tổng từng cột của ma trận

Cho một ma trận 2 chiều, tính tổng các phần tử trên từng hàng và từng cột, in kết quả ra màn hình.

Xem đáp án
Đang tải lời giải…

188. Chuyển vị ma trận (transpose)

Cho một ma trận kích thước 2x3, tạo ma trận chuyển vị (transpose) kích thước 3x2 bằng cách hoán đổi hàng và cột, in kết quả.

Xem đáp án
Đang tải lời giải…

189. Kiểm tra ma trận vuông có đối xứng hay không

Cho một ma trận vuông, kiểm tra xem nó có đối xứng qua đường chéo chính hay không, tức là matrix[i][j] == matrix[j][i] với mọi i, j.

Xem đáp án
Đang tải lời giải…

190. Nhân từng phần tử ma trận với một số

Cho một ma trận và một hệ số k, nhân từng phần tử của ma trận với k, in ma trận kết quả.

Xem đáp án
Đang tải lời giải…

191. Đếm số lượng số chẵn và số lẻ trong ma trận

Cho một ma trận 2 chiều, duyệt qua tất cả các phần tử để đếm số lượng số chẵn và số lẻ, in kết quả.

Xem đáp án
Đang tải lời giải…

Nhóm 12: Ngày giờ, định dạng và số ngẫu nhiên cơ bản

Phần tiêu đề “Nhóm 12: Ngày giờ, định dạng và số ngẫu nhiên cơ bản”

Xem thêm lý thuyết: Xử lý ngày giờ (datetime), Math và Random.

192. Lấy và hiển thị ngày giờ hiện tại của hệ thống

Sử dụng thư viện ngày giờ chuẩn của ngôn ngữ để lấy và in ra ngày giờ hiện tại của hệ thống.

Xem đáp án
Đang tải lời giải…

193. Tính số ngày giữa hai ngày cho trước

Cho hai ngày cố định 2024-01-01 và 2024-06-15, sử dụng thư viện ngày giờ chuẩn để tính số ngày chênh lệch giữa hai ngày, in kết quả.

Xem đáp án
Đang tải lời giải…

194. Kiểm tra một bộ ngày/tháng/năm có hợp lệ hay không

Cho vài bộ (ngày, tháng, năm) mẫu, kiểm tra xem tháng có nằm trong khoảng 1-12 và ngày có phù hợp với số ngày tối đa của tháng đó hay không (có xét năm nhuận cho tháng 2), in kết quả hợp lệ hoặc không hợp lệ cho từng bộ.

Xem đáp án
Đang tải lời giải…

195. Định dạng một số nguyên lớn với dấu phẩy phân cách hàng nghìn

Cho số nguyên 1234567, sử dụng tính năng định dạng số có sẵn của ngôn ngữ để in ra dạng có dấu phẩy phân cách hàng nghìn, ví dụ 1,234,567.

Xem đáp án
Đang tải lời giải…

196. Làm tròn một số thập phân đến n chữ số sau dấu phẩy

Cho số thực 3.14159 và n = 2, làm tròn số này đến n chữ số sau dấu phẩy, in kết quả.

Xem đáp án
Đang tải lời giải…

197. Sinh một số nguyên ngẫu nhiên trong khoảng [a, b] cho trước

Cho a = 1 và b = 100, sử dụng thư viện random chuẩn của ngôn ngữ để sinh và in một số nguyên ngẫu nhiên trong khoảng [a, b].

Xem đáp án
Đang tải lời giải…

198. Lấy ngẫu nhiên một phần tử từ một list cho trước

Cho một list các loại trái cây, sử dụng thư viện random chuẩn để chọn và in ra một phần tử ngẫu nhiên từ list đó.

Xem đáp án
Đang tải lời giải…

199. Xáo trộn ngẫu nhiên thứ tự các phần tử trong một list

Cho một list số nguyên, sử dụng hàm shuffle chuẩn của ngôn ngữ để xáo trộn ngẫu nhiên thứ tự các phần tử, in list sau khi xáo trộn.

Xem đáp án
Đang tải lời giải…

200. Tạo một chuỗi mật khẩu ngẫu nhiên gồm chữ và số với độ dài cho trước

Cho độ dài length = 10, sinh ngẫu nhiên các ký tự từ tập chữ cái (hoa và thường) và chữ số để tạo thành một chuỗi mật khẩu, in kết quả.

Xem đáp án
Đang tải lời giải…

Làm xong 200 bài này rồi? Tiếp tục với các bài khó hơn ở trang Bài tập lập trình - Nâng cao.