Lệnh đơn là thành phần cơ bản nhất trong chương trình Java, diễn đạt một thao tác riêng lẻ phải làm, được kết thúc bằng dấu chấm phẩy
Nhiều câu lệnh đơn có thể nhóm lại thành một câu lệnh phức hợp gọi là khối lệnh. Khối lệnh được mở đầu bằng dấu { và kết thúc bằng dấu }, có thể đặt trong một khối lệnh khác
Nhập tháng, năm và in ra số ngày trong tháng, biết rằng tháng 1, 3, 5, 7, 8, 10, 12 : số ngày trong tháng là 31, tháng 4, 6, 9, 11 : số ngày trong tháng là 30, tháng 2 : năm nhuận : số ngày là 29, năm không nhuận : số ngày là 28. Năm nhuận là năm chia hết cho 400, hay năm chia hết cho 4 và không chia hết cho 100
e. Cấu trúc lặp
Cấu trúc for
Cú pháp:
for ( Initialization-Expressions; Boolean-Expression; Increment-Expressions )
Statement;
Statement: lệnh đơn, khối lệnh, hay cấu trúc điều khiển
Initialization-Expressions: phần khởi tạo là các biểu thức khởi tạo trị biến điều khiển vòng lặp, cách nhau dấu phẩy
Boolean-Expression: biểu thức điều kiện kiểu logic, thường là biểu thức so sánh giá trị của biến điều khiển với giá trị kết thúc vòng lặp
Increment-Expressions: phần tăng là các biểu thức tăng giảm giá trị biến điều khiển vòng lặp, cách nhau dấu phẩy
Khi lệnh lặp For bắt đầu, phần khởi tạo được thực hiện trước, và thực hiện duy nhất một lần, sau đó biểu thức điều kiện được kiểm tra, nếu biểu thức đúng thì lệnh sẽ được thực hiện, tiếp theo thực hiện phần tăng của vòng lặp và quá trình kiểm tra biểu thức điều kiện, thực hiện lệnh, và thực hiện phần tăng sẽ lặp đi lặp lại cho đến khi biểu thức điều kiện sai
Ví dụ :
Trăm trâu trăm cỏ
Trâu đứng ăn năm
Trâu nằm ăn ba
Ba trâu già ăn một
Hỏi số trâu mỗi loại
class SoTrau {
public static void main(String[] args) {
System.out.println("Trau dung Trau nam Trau gia");
int td=100/5;
for (int d=1;d<=td;d++) {
int tn=(100-d*5)/3;
for (int n=1;n<=tn;n++) {
int g = 100 - d - n;
if (d*5+n*3+(double)g/3==100)
System.out.println("\t"+d+"\t"+n+"\t"+g);
}
}
}}
Cấu trúc while
Cú pháp: while (Boolean-Expression)
Statement;
Statement: có thể là lệnh đơn, khối lệnh, hay cấu trúc điều khiển
Boolean-Expression: là biểu thức điều kiện có kiểu logic
Ý nghĩa: Kiểm tra chừng nào biểu thức điều kiện còn thoả mãn thì còn thực hiện lệnh.
Ví dụ: Tìm ước số chung lớn nhất của 2 số x, y
Phân tích: nếu x = y thì USCLN của x và y là x,
nếu x > y thì USCLN của x, y cũng là USCLN của x-y và y.
Cú pháp: do
Statement;
while (Boolean-Expression);
Statement: có thể là lệnh đơn, khối lệnh, hay cấu trúc điều khiển
Boolean-Expression: là biểu thức điều kiện có kiểu logic
Ý nghĩa: Đầu tiên sẽ thực hiện lệnh, sau đó kiểm tra biểu thức điều kiện, nếu biểu thức đúng, thì vòng lặp tiếp tục, nếu biểu thức sai thì thoát vòng lặp
Ví dụ 1: Lặp chương trình nhiều lần
while (true) {
…..
InputStreamReader kbd = new InputStreamReader(System.in);
System.out.println(“Ban co muon tiep tuc khong”);
char c = (char) kbd.read();
if (c!=’Y’ && c!=’y’) break;
}
Hoặc là:
char c;
do {
…..
InputStreamReader kbd = new nputStreamReader(System.in);
System.out.println(“Ban co muon tiep tuc khong”);
char c = (char) kbd.read();
}
while (c=’y’ || c==’Y’);
Ví dụ 2: Cho biết số nguyên dương n có phải là số nguyên tố không
Phân tích: n là số nguyên tố khi n chia không chẵn cho bất kỳ số nào từ 2 đến căn bậc hai của n, vì vậy lần lượt xét n có chia hết cho các số từ 2 đến căn bậc hai của n, cho đến khi xét hết hay tìm được một số mà n chia hết
class NguyenTo {
public static void main(String[] args) {
int n = 7;
double k = Math.sqrt(n);
int i = 1;
do
i++;
while (i <= k && n % i != 0);
if (i > k) System.out.println(n+" la so nguyen to");
else System.out.println(n+" khong la so nguyen to");
}
}
Bài tập Thực hành:
-- If else --
1. So sánh 1 số nguyên nhập từ bàn phím với số 5 và hiển thị kết quả.
2. Nhập điểm 2 môn học, so sánh điếm của 2 môn đó và hiển thị kết quả
3. Nhập vào 1 năm bất kỳ và kiểm tra năm đó có phải là năm nhuận hay không.
Hướng dẫn: Cách xác định năm nhuận:
Một năm được coi là năm nhuận nếu năm đó chia hết cho 4 và không chia hết cho 100.
Mặt khác, những năm chia hết cho 100 sẽ được goi là năm nhuận nếu năm đó cũng chia hết cho 400.
4. Nhập vào điểm một môn học của sinh viên và xếp loại kết quả môn học của sinh viên đó.
iết chương trình xếp loại điểm môn học của một sinh viên. Chương trình yêu cầu người dùng nhập vào 3 cột điểm một môn học của sinh viên (bao gồm điểm chuyên cần, điểm kiểm tra và điểm thi học kỳ). Kết quả xếp loại được phân chia như sau:
Nếu điểm trung bình >= 8.5 thì xếp loại A.
Nếu điểm trung bình >= 7 và nhỏ hơn 8.5 thì xếp loại B.
Nếu điểm trung bình >= 5.5 và nhỏ hơn 7 thì xếp loại C.
Nếu điểm trung bình >= 4 và nhỏ hơn 5.5 thì xếp loại D.
Nếu điểm trung bình < 4 thì xếp loại F.
Lưu ý: Điểm trung bình của môn học làm tròn đến 1 chữ số thập phân.
5. Tính và hiển thị chu vi của một tam giác thường.
Viết chương trình nhập vào 3 số thực từ bàn phím là số đo 3 đoạn thẳng. Yêu cầu: Kiểm tra xem số đo 3 đoạn thẳng vừa nhập có thỏa mãn là độ dài 3 cạnh của một tam giác thường không? Nếu thỏa mãn tạo thành tam giác thì tính và in ra màn hình chu vi của tam giác đó. Nếu không thỏa mãn thì thông báo "Không tồn tại tam giác".
Hướng dẫn: Trong toán học, chúng ta có định lý Bất đẳng thức tam giác được mô tả như sau: "Trong một tam giác, tổng độ dài hai cạnh bất kỳ bao giờ cũng lớn hơn cạnh còn lại". Vậy để kiểm tra số đo 3 đoạn thẳng vừa nhập có tạo thành một tam giác thường không thì chúng ta sẽ tính độ dài của hai cạnh bất kỳ và so sánh với cạnh còn lại, nếu kết quả là lớn hơn thì 3 đoạn thẳng vừa nhập sẽ tạo thành một tam giác.
Để tính chu vi của một tam giác khi biết số đo 3 cạnh ta tính theo công thức Hê-rông như sau:
Chu vi = A + B + C (trong đó A, B, C là số đo 3 cạnh của tam giác).
6. Xác định vị trí của một điểm so với đường tròn và hiển thị thông báo.
Viết chương trình nhập vào tọa độ điểm O (XO,YO) là tâm của một đường tròn, tọa độ điểm M (XM,YM) và bán kính R của đường tròn. Xác định và thông báo lên màn hình điểm M nằm trong, trên hay ngoài đường tròn đó.
Hướng dẫn: Để biết được điểm M nằm trong, trên hay ngoài 1 đường tròn thì chúng ta sẽ tính khoảng cách từ điểm M tới tâm O của đường tròn. Sau đó xét 3 trường hợp sau đây:
Nếu bình phương khoảng cách từ điểm M tới tâm O nhỏ hơn bình phương bán kính R thì điểm M nằm trong đường tròn.
Nếu bình phương khoảng cách từ điểm M tới tâm O bằng bình phương bán kính R thì điểm M nằm trên đường tròn.
Nếu bình phương khoảng cách từ điểm M tới tâm O lớn hơn bình phương bán kính R thì điểm M nằm ngoài đường tròn.
7. Giải phương trình bậc một ax + b = 0
8. Xác định nhóm tuổi của một người với năm sinh nhập từ bàn phím.
Viết chương trình nhập vào tên và một số tương ứng là năm. Sau đó xuất ra nhóm tuổi của người đó như sau:
Nếu tuổi người đó < 16 thì hiện thông báo "Bạn [Tên] ở độ tuổi vị thành niên".
Nếu tuổi người đó >= 16 và nhỏ hơn 18 thì hiện thông báo "Bạn [Tên] ở độ tuổi trưởng thành".
Nếu tuổi người đó >= 18 thì hiện thông báo "Bạn [Tên] đã già".
-- Switch Case --
9. Xác định thứ tương ứng với số nhập vào từ bàn phím.
Nhập vào số tương ứng từ 1 đến 7 sau đó hiển thị ra màn hình thứ tương ứng với số đó, trong đó:
Số 1: Chủ nhật.
Số 2: Thứ 2.
...
Số 7: Thứ 7.
Nếu nhập số ngoài phạm vi này thì hiển thị thông báo "Nhập số không hợp lệ".
10. Kiểm tra ký tự thường nhập vào là nguyên âm hay phụ âm.
11. Tính năm âm lịch từ năm dương lịch.
Hướng dẫn thuật toán tính năm âm lịch:
Năm âm lịch = Can + Chi. Vì vậy để tính năm âm lịch từ năm dương lịch ta cần xác định được Can và Chi rồi sau đó ghép lại là xong.
Để xác định được Can ta tìm phần dư của phép chia năm dương lịch cho 10 rồi tra theo bảng sau:
Kết quả năm dương lịch % 10 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|
Can tương ứng | Canh | Tân | Nhâm | Quý | Giáp | Ất | Bính | Đinh | Mậu | Kỷ |
Để xác định được Chi ta tìm phần dư của phép chia năm dương lịch cho 12 rồi tra theo bảng sau:
Kết quả năm dương lịch % 12 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
---|
Chi tương ứng | Thân | Dậu | Tuất | Hợi | Tý | Sửu | Dần | Mẹo | Thìn | Tỵ | Ngọ | Mùi |
12. Thực hiện các phép tính cộng, trừ, nhân, chia 2 số nguyên.
13. Nhập vào một tháng và hiển thị ngày tương ứng của tháng đó.
14. Viết chương trình cho phép người dùng chọn đáp án đúng.
Viết chương trình cho phép người dùng chọn 1 trong 4 đáp án a, b, c, d cho câu hỏi dưới đây. Nếu người dùng chọn đúng thì thông báo "Kết quả đúng!", nếu người dùng chon sai thì thông báo "Bạn chọn không đúng!", còn nếu người dùng nhập câu trả lời ngoài 4 đáp án a, b, c, d thì thông báo "Câu trả lời phải nằm trong 4 lựa chọn a, b, c hoặc d".
Sau đây là câu hỏi:
Cách nào cho phép người dùng khai báo 1 giá trị boolean trong 4 đáp án sau?
a. boolean bool1 = true;
b. boolean bool2 = "true";
c. boolean bool3 = "1";
d. boolean bool4 = 1;
--VÒNG LẶP--
15. Viết chương trình in ra các số chẵn nhỏ hơn hoặc bằng 20.
16. Tìm ước số chung lớn nhất và bội số chung nhỏ nhất của 2 số nguyên dương.
Giải thích hoạt động của chương trình trên: Trong chương trình này, tôi nhập vào hai số 8 và 16 thì trình biên dịch sẽ thực hiện các bước như sau:
Bước 1: Kiểm tra thấy hai số này thỏa mãn điều kiện là số nguyên dương nên bỏ qua phần kiểm tra while ((firstNumber <= 0) || (secondNumber <= 0)) và thực hiện các lệnh bên dưới.
Bước 2: Gán giá trị biến temp1 = 16 và temp2 = 56.
Bước 3: Kiểm tra điều kiện bên trong while: Vì 16 != 56 nên sẽ thực thi lệnh bên trong while. Lúc này 16 < 56 nên lệnh bên trong else sẽ được thực hiện và lúc này biến temp2 = 40.
Bước 4: Quay lại bước 3, vì 16 != 40 nên sẽ thực thi lệnh bên trong while. Lúc này 16 < 40 nên lệnh bên trong else sẽ được thực hiện và lúc này biến temp2 = 24 .
Bước 5: Quay lại bước 3, vì 16 != 24 nên sẽ thực thi lệnh bên trong while. Lúc này 16 < 24 nên lệnh bên trong else sẽ được thực hiện và lúc này biến temp2 = 8 .
Bước 5: Quay lại bước 3, vì 16 != 8 nên sẽ thực thi lệnh bên trong while. Lúc này 16 > 8 nên lệnh bên trong if sẽ được thực hiện và lúc này biến temp2 = 8 .
Bước 6: Quay lại bước 3, lúc này while (temp1 != temp2) sẽ trả về kết quả là sai. Lúc này vòng lặp kết thúc và ước số chung lớn nhất của 2 số này sẽ bằng 8.
17. Tính giai thừa của một số nguyên dương bất kỳ.
18. Viết chương trình tính tổng của bình phương các số.
19. Bài tập tính tiền taxi
Viết hàm tính tiền đi taxi Mai Linh với số km đi được nhập từ bàn phím, biết:
Giá mở cửa: 14.000đ/ 0.8km.
Tiếp theo đến 25km: 16.300đ/ km.
Từ km thứ 26: 13.300đ/ km.
20. Tính tổng các chữ số của một số nguyên.
21. Đếm số chữ số của một số nguyên dương.
22. Tính giá trị của biểu thức P = 1.3.5...(2n+1) với n >= 0.
23. Tính giá trị của biểu thức S = 1 + 3 + 5 + n + ... + (2n + 1) (n >= 0).
24. Tính giá trị của biểu thức S = 1 - 2 + 3 - 4 + 5 + ... + ((-1)^(n+1)) * n (n > 0).
25. Tính giá trị của biểu thức S = 1 + 1.2 + 1.2.3 + ... + 1.2.3.n (n > 0).
26. Tính giá trị của biểu thức T = 1^2 + 2^2 + 3^2 +... + n^2 (n > 0).
27. Tính giá trị của biểu thức Q = 1 + 1/2 + 1/3 + ... + 1/n (n > 0).
28. Tính giá trị của biểu thức R = 1 + 2^2 + 3^3 + ... + n^n (n > 0).
29. Tính giá trị của biểu thức U = 1/2 + 2/3 + 3/4 + ... + n/(n+1) (n > 0).
30. Tính giá trị của biểu thức K = 1 + 1/2! + 1/3! + ... + 1/n! (n > 0).
31. Tính giá trị của biểu thức M = 1 + (1+2)/2! + (1+2+3)/3! + ... + (1+2+3+...+n)/n! (n > 0).