Dạng 1 (if thiếu)

Một phần của tài liệu Giáo trình kỹ thuật lập trình cđ kinh tế kỹ thuật TP HCM (Trang 31)

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

Một phần của tài liệu Giáo trình kỹ thuật lập trình cđ kinh tế kỹ thuật TP HCM (Trang 31)