Kiểm tra câu lệnh biểu thức điều kiện quyết định sẽ thực hiện hay khơng một khối lệnh thỏa điều kiện.
Cú pháp lệnh:
Ý nghĩa
Kết quả của điều kiện phải là đúng (0) hoặc sai (=0)
Nếu điều kiện đúng thì thực hiện khối lệnh và thốt khỏi if, ngược lại khơng
if (điều kiện) từ khĩa phải viết bằng chữ thường
KHOA CƠNG NGHỆ THƠNG TIN Trang 31 Nếu khối lệnh bao gồm từ 2 lệnh trở lên thì phải đặt trong dấu { }
Lưu ý:
- Khơng đặt dấu chấm phẩy sau câu lệnh if. Ví dụ: if(điều kiện);
- Trình biên dịch khơng báo lỗi nhưng khối lệnh khơng được thực hiện cho dù điều kiện đúng hay sai.
Ví dụ 1: Viết chương trình nhập vào 2 số nguyên a, b. Tìm và in ra số lớn nhất.
a. Ý tưởnglời giải
- Trước tiên ta gán a là giá trị lớn.
- Sau đĩ so sánh b với a, nếu b lớn hơn a ta gán b cho max
- Cuối cùng ta được kết quả max là giá trị lớn nhất.
KHOA CƠNG NGHỆ THƠNG TIN Trang 32
c. Viết chương trình
Hình 4: Màn hình giải ví dụ 1 mục 3.2.1.1
KHOA CƠNG NGHỆ THƠNG TIN Trang 33
Hình 5: Kết quả chương trình chạy ví dụ 1 mục 3.2.1.1
Ví dụ 2: Viết chương trình nhập vào 2 số nguyên a, b. Nếu a lớn hơn b thì hốn đổi giá trị a và b, ngược lại khơng hốn đổi. In ra giá trị a, b.
a. Ý tưởng lời giải
- Nếu giá trị a lớn hơn giá trị b, bạn phải hốn chuyển 2 giá trị này cho nhau - Ta sẽ tạo một biến tạm cùng kiểu dữ liệu với a và gán biến tạm cho giá trị là a. - Sau đĩ gán giá trị b cho a và cuối cùng gán giá trị biến tạm cho b, rồi in giá trị a, b ra cho người dùng xem.
b. Mơ tả bằng lưu đồ thuật giải
d. Viết chương trình a > b Đúng Bắt đầu Nhập a, b Sai In a, b Kết thúc tam = a a = b b = tam
KHOA CƠNG NGHỆ THƠNG TIN Trang 34
Hình 6: Màn hình giải ví dụ 2 mục 3.2.1.1
Kết quả in ra màn hình
Hình 7: Kết quả chương trình chạy ví dụ 2 mục 3.2.1.1 3.2.1.2 Dạng 2 (if … else)
Câu lệnh if dạng 2 được thực hiện 1 trong 2 khối lệnh. Cú pháp lệnh
Ý nghĩa
Từ khĩa if, else phải viết bằng chữ thường
if (Điều kiện) Khối lệnh 1; else
KHOA CƠNG NGHỆ THƠNG TIN Trang 35 Lưu ý
Nếu khối lệnh 1, khối lệnh 2 bao gồm từ 2 lệnh trở lên thì phải đặt trong dấu { }
Ví dụ 3: Viết chương trình nhập vào 2 số nguyên a, b. In ra thơng báo "a bằng b" nếu a = b, ngược lại in ra thơng báo "a khác b".
a. Ý tưởng lời giải
Nhập dữ liệu vào và so sánh a với b
Nếu a bằng b thì in ra câu thơng báo "a bằng b" Ngược lại in ra thơng báo "a khác b".
KHOA CƠNG NGHỆ THƠNG TIN Trang 36
d. Viết chương trình
Hình 8: Màn hình giải ví dụ 3 mục 3.2.1.2
KHOA CƠNG NGHỆ THƠNG TIN Trang 37
Hình 9: Kết quả chương trình chạy ví dụ 3 mục 3.2.1.2
Lưu ý:
- Sau else khơng cĩ dấu chấm phẩy Ví dụ: else; printf(“a khac b\n”);
- Trình biên dịch khơng báo lỗi, lệnh printf(“a khac b\n”); khơng thuộc else
Ví dụ 4: Viết chương trình nhập vào kí tự c. Kiểm tra xem nếu kí tự nhập vào là kí tự thường trong khoảng từ 'a' đến 'z' thì đổi sang chữ in hoa và in ra, ngược lại in ra thơng báo "Kí tự bạn vừa nhập là: c".
a. Ý tưởng lời giải
- Trước tiên bạn phải kiểm tra xem nếu kí tự c thuộc khoảng 'a' và 'z'
- Đổi kí tự c thành chữ in hoa bằng cách lấy kí tự c – 32 rồi gán lại cho chính nĩ (vì giữa kí tự thường và in hoa trong bảng mã ASCII cách nhau 32, sau khi đổi xong bạn in kí tự c ra.
- Ngược lại, in câu thơng báo "Kí tự bạn vừa nhập là: c". b. Mơ tả bằng lưu đồ thuật giải
KHOA CƠNG NGHỆ THƠNG TIN Trang 38
c. Viết chương trình
Hình 10: Màn hình giải ví dụ 4 mục 3.2.1.2
KHOA CƠNG NGHỆ THƠNG TIN Trang 39
Hình 11: Kết quả chương trình chạy ví dụ 4 mục 3.2.1.2 3.2.1.3 Cấu trúc else if
Sẽ kiểm tra điều kiện và thực hiện 1 trong n khối lệnh cho trước. Cú pháp
Ý nghĩa
- Từ khĩa if, else if, else phải viết bằng chữ thường - Kết quả của điều kiện 1, 2..n phải là
đúng (# 0) hoặc sai (= 0)
- Nếu khối lệnh 1, 2…n bao gồm từ 2 lệnh trở lên thì phải đặt trong dấu { }
Lưu đồ
if (Điều kiện 1)
khối lệnh 1; else if (Điều kiện 2)
khối lệnh 2; …
else if (Điều kiện n-1) Nếu khối lệnh 1, 2…n bao gồm từ 2 lệnh
khối lệnh n-1; trở lên thì phải đặt trong dấu { }
else
KHOA CƠNG NGHỆ THƠNG TIN Trang 40
Ví dụ 5: Viết chương trình nhập vào 2 số nguyên a, b. In ra thơng báo "a lớn hơn b" nếu a>b, in ra thơng báo "a nhỏ hơn b" nếu a<b, in ra thơng báo "a bằng b" nếu a=b.
a. Ý tưởng lời giải
- Trước tiên so sánh a với b.
- Nếu a > b thì in ra thơng báo "a lớn hơn b", ngược lại nếu a < b thì in ra thơng báo "a nhỏ hơn b"
- Ngược với 2 trường hợp trên thì in ra thơng báo "a bằng b".
b. Mơ tả bằng lưu đồ thuật giải
c. Viết chương trình
a > b Sai Bắt đầu
Nhập a, b
"a lon hon b"
a < b
Kết thúc Đúng
"a nho hon b" "a bang b" Sai
KHOA CƠNG NGHỆ THƠNG TIN Trang 41
Hình 12: Màn hình giải ví dụ 5 mục 3.2.1.3
Kết quả in ra màn hình
Hình 13: Kết quả chương trình chạy ví dụ 5 mục 3.2.1.3
Ví dụ 6: Viết chương trình nhập 3 số a, b, c là kiểu số nguyên. Tìm số lớn nhất trong 3 số vừa nhập.
a. Ý tưởng lời giải
- So sánh giá trị a vừa nhập lớn hơn với giá trị của b, nếu đúng
- So sánh giá trị a lớn hơn giá trị c thì số lớn nhất là a, ngược lại với điều kiện a lớn hơn c thì giá trị lớn nhất sẽ là c.
- Nếu điều kiện giá trị a lớn hơn giá trị b là sai (Ngược lại với điều kiện ban đầu) - So sánh nếu giá trị b lớn hơn giá trị c thì số lớn nhất là b, ngược lại (b>c) thì số lớn nhất là c.
KHOA CƠNG NGHỆ THƠNG TIN Trang 42
KHOA CƠNG NGHỆ THƠNG TIN Trang 43
Hình 14: Màn hình giải ví dụ 6 mục 3.2.1.3
Kết quả in ra màn hình
KHOA CƠNG NGHỆ THƠNG TIN Trang 44
Ví dụ 7: Viết chương trình nhập điểm và xếp loại như sau: Nếu điểm >= 9, Xuất sắc. Nếu điểm từ 8 đến 8.9, Giỏi. Nếu điểm từ 7 đến 7.9, Khá. Nếu điểm từ 6 đến 6.9, TBKhá. Nếu điểm từ 5 đến 5.9, TBình. Cịn lại là Yếu.
a. Ý tưởng lời giải
Kiểm tra điểm nhập vào phải từ 0 đến 10. Nếu đúng yêu cầu xếp loại
Ngược lại báo điểm khơng hợp lệ. b. Mơ tả bằng lưu đồ thuật giải
d. Viết chương trình diem >= 0 và diem <= 10 Bắt đầu Nhập diêm Kết thúc Yeu diem >=9 Đúng Sai
diem khong hop le diem >=8 Sai diem >=7 Sai diem >=6 Sai diem >=5 Sai TBinh TBKha Kha Gioi Xuat sac Sai Đúng Đúng Đúng Đúng Đúng
KHOA CƠNG NGHỆ THƠNG TIN Trang 45
Hình 16: Màn hình giải ví dụ 7 mục 3.2.1.3
Kết quả in ra màn hình
Hình 17: Kết quả chương trình chạy ví dụ 7 mục 3.2.1.3 3.2.1.4 Lệnh switch…case
Cấu trúc switch...case cho phép lựa chọn một nhánh trong nhiều khả năng tùy vào điều kiện xảy ra.
Cú pháp
switch (Biểu thức nguyên)
{
KHOA CƠNG NGHỆ THƠNG TIN Trang 46 case n2: Khối lệnh 2; … case ni: Khối lệnh i; [default: Khối lệnh; ] } Ý nghĩa
- ni là các số nguyên, hằng ký tự hoặc biểu thức hằng. Các ni cần cĩ giá trị khác nhau.
- Đoạn chương trình nằm trong cặp ngoặc nhọn {} là thân của switch. - default, case là các từ khĩa. default là thành phần khơng bắt buộc. Lưu đồ
Cách hoạt động:
Đầu tiên <biểu thức nguyên> được tính, sau đĩ lần lượt so sánh giá trị của <biểu thức nguyên> với các biểu thức hằng <n1>, <n2>,..<nk>.
KHOA CƠNG NGHỆ THƠNG TIN Trang 47 trúc switch.
Ví dụ 8: Viết chương trình nhập vào số 1, 2, 3. In ra tương ứng 1, 2, 3 sao.
a. Viết chương trình
Hình 18: Màn hình giải ví dụ 8 mục 3.2.1.4
Kết quả in ra màn hình
Hình 19: Kết quả chương trình chạy ví dụ 8 mục 3.2.1.4
Ví dụ 9: Viết chương trình nhập vào tháng và in ra quý tương ứng tháng đĩ trong năm. (tháng 1 - > quý 1, tháng 10 -> quý 4)
KHOA CƠNG NGHỆ THƠNG TIN Trang 48
a. Ý tưởng lời giải
- Kiểm tra giá trị nhập tháng cĩ hợp lệ (trong khoảng 1 đến 12). - Nếu hợp lệ in ra quý tương ứng.
b. Viết chương trình
Hình 20: Màn hình giải ví dụ 9 mục 3.2.1.4
Kết quả in ra màn hình
Hình 21: Kết quả chương trình chạy ví dụ 9 mục 3.2.1.4 Ví dụ 10: Viết lại chương trình ở ví dụ trên.
KHOA CƠNG NGHỆ THƠNG TIN Trang 49
Hình 22: Màn hình giải ví dụ 10 mục 3.2.1.4
Kết quả in ra màn hình
Hình 23: Kết quả chương trình chạy ví dụ 10 mục 3.2.1.4 Ví dụ 11: Viết lại chương trình ở ví dụ trên.
KHOA CƠNG NGHỆ THƠNG TIN Trang 50
Hình 24: Màn hình giải ví dụ 11mục 3.2.1.4
Kết quả in ra màn hình
Hình 25: Kết quả chương trình chạy ví dụ 11 mục 3.2.1.4
Ví dụ 12: Viết chương trình sử dụng cấu trúc switch...case, nhập 2 số nguyên a,b từ bàn phím, chương trình đưa ra lựa chọn:
+ Nếu người sử dụng nhập ‘+’: Thực hiện: a + b; + Nếu người sử dụng nhập ‘-‘: Thực hiện: a – b; + Nếu người sử dụng nhập ‘*’: Thực hiện: a * b; + Nếu người sử dụng nhập ‘/‘: Thực hiện: a / b;
Nếu người sử dụng khơng nhập một trong các tốn tử trên thì đưa ra dịng thơng báo: “Khong hieu toan tu nay!”.
KHOA CƠNG NGHỆ THƠNG TIN Trang 51
Hình 26: Màn hình giải ví dụ 12 mục 3.2.1.4
KHOA CƠNG NGHỆ THƠNG TIN Trang 52
for (khởi tạo; điều kiện ; biểu thức) {
Các câu lệnh;
}
Hình 27: Kết quả chương trình chạy ví dụ 12 mục 3.2.1.4 3.2.2 Vịng lặp
3.2.2.1 Vịng lặp for
Vịng lặp for xác định thực hiện lặp lại một số lần xác định dựa vào điền kiện được thỏa mãn.
Cú pháp lệnh
- Từ khĩa for phải viết bằng chữ thường Lưu đồ
KHOA CƠNG NGHỆ THƠNG TIN Trang 53 vịng lặp for phải dùng một trong 3 lệnh break, goto hoặc return.
+ Với mỗi tham số cĩ thể viết thành một dãy biểu thức con phân cách nhau bởi dấu phẩy. Khi đĩ các tham số con được xác định từ trái sang phải. Tính đúng sai của dãy tham số con trong tham số thứ 2 được xác định bởi tham số con cuối cùng.
+ Trong thân for (các câu lệnh thực hiện) cĩ thể chứa một hoặc nhiều cấu trúc điều khiển khác.
+ Khi gặp lệnh break, cấu trúc lặp sâu nhất sẽ thốt ra.
+ Trong thân for cĩ thể dùng lệnh goto để thốt khỏi vịng lặp đến vị trí mong muốn.
+ Trong thân for cĩ thể sử dụng return để trở về một hàm nào đĩ.
+ Trong thân for cĩ thể sử dụng lệnh continue để chuyển đến đầu vịng lặp (bỏ qua các câu lệnh cịn lại trong thân).
Ví dụ 13: Viết chương trình nhập vào n số nguyên dương (n>0) và tính tổng S(n)=1+2+3+ … +n.
KHOA CƠNG NGHỆ THƠNG TIN Trang 54
Hình 28: Màn hình giải ví dụ 13 mục 3.2.2.1
Kết quả in ra màn hình
Hình 29: Kết quả chương trình chạy ví dụ 13 mục 3.2.2.1 Ví dụ 14: Viết chương trình nhập vào n số nguyên dương (n>0) và tính tổng S(n)=12+22+32+ … +n2.
KHOA CƠNG NGHỆ THƠNG TIN Trang 55
Hình 30: Màn hình giải ví dụ 14 mục 3.2.2.1
Kết quả in ra màn hình
Hình 31: Kết quả chương trình chạy ví dụ 14 mục 3.2.2.1
KHOA CƠNG NGHỆ THƠNG TIN Trang 56
Hình 32: Màn hình giải ví dụ 15 mục 3.2.2.1
Kết quả in ra màn hình
Hình 33: Kết quả chương trình chạy ví dụ 15 mục 3.2.2.1
Nếu cĩ dấu chấm phẩy sau lệnh for(i=1; i<=n; ++i);
Các lệnh thuộc vịng lặp for sẽ khơng được thực hiện.
KHOA CƠNG NGHỆ THƠNG TIN Trang 57
Hình 34: Màn hình giải ví dụ 16 mục 3.2.2.1
Kết quả in ra màn hình
Hình 35: Kết quả chương trình chạy ví dụ 16 mục 3.2.2.1
KHOA CƠNG NGHỆ THƠNG TIN Trang 58
Hình 36: Màn hình giải ví dụ 17 mục 3.2.2.1
Kết quả in ra màn hình
Hình 37: Kết quả chương trình chạy ví dụ 17 mục 3.2.2.1
Ví dụ 18: Một vài ví dụ thay đổi biến điều khiển vịng lặp. [8] - Thay đổi biến điều khiển từ 1 đến 100, mỗi lần tăng 1: for(i = 1; i <= 100; i++)
- Thay đổi biến điều khiển từ 100 đến 1, mỗi lần giảm 1: for(i = 100; i >= 1; i--)
KHOA CƠNG NGHỆ THƠNG TIN Trang 59
Hình 38: Màn hình giải ví dụ 19 mục 3.2.2.1
Kết quả in ra màn hình
Hình 39: Kết quả chương trình chạy ví dụ 19 mục 3.2.2.1
Ví dụ 20: Nhập vào 1 dãy số nguyên từ bàn phím đến khi gặp số 0 thì dừng. In ra tổng các số nguyên dương.
KHOA CƠNG NGHỆ THƠNG TIN Trang 60 while(Điều kiện)
{
Các câu lệnh; }
Hình 40: Màn hình giải ví dụ 20 mục 3.2.2.1
Kết quả in ra màn hình
Hình 41: Kết quả chương trình chạy ví dụ 20 mục 3.2.2.1
3.2.2.2 Lệnh while
Vịng lặp while thực hiện các câu lệnh khi kiểm tra điều kiện là đúng.
Cú pháp lệnh
Từ khĩa while phải viết bằng chữ thường Lưu đồ
KHOA CƠNG NGHỆ THƠNG TIN Trang 61 Giải thích
+ Điều kiện: cĩ thể là một biểu thức hoặc nhiều biểu thức con. Nếu là nhiều biểu thức con thì cách nhau bởi dấu phẩy (,) và tính đúng sai của biểu thức được quyết định bởi biểu thức con cuối cùng.
+ Trong thân while (các câu lệnh) cĩ thể chứa một câu lệnh thực thi hoặc nhiều cấu trúc điều khiển thực thi khác.
+ Trong thân while cĩ thể sử dụng lệnh continue để chuyển đến đầu vịng lặp (bỏ qua các câu lệnh cịn lại trong thân).
+ Muốn thốt khỏi vịng lặp while tùy ý cĩ thể dùng các lệnh break, goto, return
như lệnh for (câu lệnh này sẽ học ở mục sau)
Lưu ý
Thân while cĩ thể được thực hiện một lần hoặc nhiều lần và cũng cĩ thể khơng được thực hiện lần nào nếu ngay từ đầu biểu thức sau while đã sai
KHOA CƠNG NGHỆ THƠNG TIN Trang 62
Hình 42: Màn hình giải ví dụ 21 mục 3.2.2.2
Kết quả in ra màn hình
Hình 43: Kết quả chương trình chạy ví dụ 21 mục 3.2.2.2
KHOA CƠNG NGHỆ THƠNG TIN Trang 63
Hình 44: Màn hình giải ví dụ 21 mục 3.2.2.2
Kết quả in ra màn hình
Hình 45: Kết quả chương trình chạy ví dụ 21 mục 3.2.2.2