Chương 04: CẤU TRÚC RẼ NHÁNH TRONG C

56 447 0
Chương 04: CẤU TRÚC RẼ NHÁNH TRONG C

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Chương 04 CẤU TRÚC RẼ NHÁNH Lê Thành Sách Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán © 2016 Lập trình C/C++ Nội dung n n n n n n n Ứng dụng cấu trúc rẽ nhánh Câu lệnh & Chương trình Cấu trúc: if Cấu trúc: if-else Cấu trúc: if-else lồng Cấu trúc: switch-case Tổng kết Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán © 2016 Lập trình C/C++ Ứng dụng cấu trúc rẽ nhánh n n Các ứng dụng hữu ích thực tế điều có dùng đến cấu trúc rẽ nhánh Ví dụ n Bài toán 1: Nhập ngày (gồm ngày, tháng, năm) n Một chương trình tốt KHÔNG giả sử ngày, tháng năm đọc vào thuộc miền giá trị cho phép n Để khắc phục trường hợp lỗi với tháng, cấu trúc sau sử dụng if ( (tháng < 0) (tháng > 12) ) - Xử lý lỗi với tháng endif Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán © 2016 Lập trình C/C++ Ứng dụng cấu trúc rẽ nhánh n Ví dụ n Bài toán 2: Giải Phương trình bậc (PTB2) n Nếu ứng dụng cho phép nhập hệ số A, B, C PTB2 n A B: không khác n Phương trình đầu vào chưa bậc hay bậc n n => Chương trình có lỗi thực thi không kiểm tra xem A B có khác hay không => Đã dùng đến cấu trúc rẽ nhánh để kiểm tra điều kiện nói Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán © 2016 Lập trình C/C++ Ứng dụng cấu trúc rẽ nhánh n Ví dụ n Bài toán 3: Trong ứng dụng kế toán, xác định thuế suất cá nhân n Bảng thuế suất Năm 2016 bảng (nguồn: Kế toán Thiên ứng) Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán © 2016 Lập trình C/C++ Ứng dụng cấu trúc rẽ nhánh n Ví dụ n Bài toán 3: Trong ứng dụng kế toán, xác định thuế suất cá nhân n Bảng thuế suất Năm 2016 bảng (nguồn Kế toán Thiên ứng) n n => Thuế suất phải tính từ “thu nhập tính thuế” n Có nhiều trường hợp khác mà áp thuế suất khác => Dùng cấu trúc rẽ nhánh để xác định “thuế suất” Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán © 2016 Lập trình C/C++ Ứng dụng cấu trúc rẽ nhánh n Ví dụ n Bài toán 4: Hiện thực cách tương tác người sử dụng cho phần mềm (có giao diện đồ hoạ hay không) n Chương trình phải lắng nghe kiện xảy ứng dụng n Có giao diện đồ hoạ: n Sự kiện, chuột trái, phải, giữa, chọn menu A, menu B, v.v n Trên console n Đó mã công việc (con số, chữ) nhập vào n Chương trình phải thực công việc khác tương ứng với kiện hay mã công việc n => Cần đến cấu trúc rẽ nhánh (switch, có nhiều trường hợp) Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán © 2016 Lập trình C/C++ Câu lệnh & Chương trình n n Câu lệnh gì? n Là câu chương trình viết ngôn ngữ lập trình n Kết thúc câu dấu chấm phẩy ( ) n Tương tự câu ngôn ngữ tự nhiện dấu chấm (.) ; Các loại câu lệnh n Câu lệnh đơn (câu đơn) n Là câu lệnh đơn giản học trước, như: n Câu khai báo biến n Câu lệnh gán n Câu lệnh gọi hàm n V.v Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán © 2016 Lập trình C/C++ Câu lệnh & Chương trình n Các loại câu lệnh n n Câu lệnh đơn (câu đơn) Câu lệnh phức (câu phức) n Một danh sách câu lệnh thực Đánh dấu danh sách cặp dấu: { } { } n // Các cấu trúc điều khiển (if, if-else, switch, for, while, … while) xem câu lệnh phức Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán © 2016 Lập trình C/C++ Câu lệnh & Chương trình n Các loại câu lệnh n n n Câu lệnh đơn (câu đơn) Câu lệnh phức (câu phức) Câu lệnh rỗng (câu rỗng) n có dấu ; đứng cuối n Vẫn cho phép C/C++ không hữu dụng nhiều Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán © 2016 Lập trình C/C++ 10 Câu lệnh switch-case Cú pháp switch (){ case : case : case : default: } switch, case, default: Từ khoá : : (i=1, , N), giá trị mã trường hợp Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán © 2016 Lập trình C/C++ 42 Câu lệnh switch-case Cú pháp switch (){ case : case : case : case : default: } Trường hợp muốn: thực thi cho trường hợp 1,2, Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán © 2016 Lập trình C/C++ 43 Câu lệnh switch-case Cú pháp switch (){ case : break; case : case : default: } Trường hợp muốn: thực thi xong thi thoát khỏi cấu trúc switchcase luôn, không thực thi câu lệnh Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán © 2016 Lập trình C/C++ 44 Câu lệnh switch-case Cú pháp switch (){ case : break; case : break; case : break; default: } Trường hợp muốn: Muốn câu lệnh thực thi với trường hợp tương ứng Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán © 2016 Lập trình C/C++ 45 Câu lệnh switch-case Cú pháp switch (){ case : break; case : break; case : break; } Trường hợp muốn: Muốn câu lệnh thực thi với trường hợp tương ứng Không có phần thực thi Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán © 2016 Lập trình C/C++ 46 Câu lệnh switch-case Ví dụ n Bài toán: n n Chương trình nhận lựa chọn từ người dùng n Các lựa chọn n Ý nghĩa số chưa cần lúc In lựa chọn người dùng n Có thể thay chức in khối công việc sau Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán © 2016 Lập trình C/C++ 47 Câu lệnh switch-case Ví dụ n Ví dụ #include #include int main(){ int luachon; printf("Nhap vao lua chon: \n"); scanf("%d", &luachon); switch (luachon){ case 1: printf("Truong hop 1\n"); printf("Hanh dong 1\n"); case 2: printf("Truong hop 2\n"); printf("Hanh dong 2\n"); default: printf("Hanh dong mac dinh\n"); } return 0; } Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán © 2016 Lập trình C/C++ 48 Câu lệnh switch-case Ví dụ n Ví dụ Chương trình in tên hai hành động Vì lệnh break; #include #include int main(){ int luachon; printf("Nhap vao lua chon: \n"); scanf("%d", &luachon); switch (luachon){ case 1: printf("Truong hop 1\n"); printf("Hanh dong 1\n"); case 2: printf("Truong hop 2\n"); printf("Hanh dong 2\n"); default: printf("Hanh dong mac dinh\n"); } return 0; } Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán © 2016 Lập trình C/C++ 49 Câu lệnh chuyển đổi n Ví dụ break: khiến chương trình in tên hành động tương ứng lựa chọn #include #include int main(){ int luachon; printf("Nhap vao lua chon: \n"); scanf("%d", &luachon); switch (luachon){ case 1: printf("Truong hop 1\n"); printf("Hanh dong 1\n"); break; case 2: printf("Truong hop 2\n"); printf("Hanh dong 2\n"); break; default: printf("Hanh dong mac dinh\n"); } return 0; } Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán © 2016 Lập trình C/C++ 50 Câu lệnh switch-case Ví dụ n Một ví dụ khác menu: n Có sử dụng enum Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán © 2016 Lập trình C/C++ 51 Kiểu liệt kê câu lệnh chuyển đổi n Ví dụ #include #include enum Luachon {DongY, TuChoi, ChuaQuyetDinh}; int main(){ enum Luachon luachon; printf("Nhap vao lua chon cua ban \n"); printf("0 Ban dong y \n"); printf("1 Ban tu choi \n"); printf("2 Ban chua co quyet dinh \n"); scanf("%d", &luachon); switch (luachon){ case DongY: printf("Ban dong y\n"); break; case TuChoi: printf("Ban tu choi y\n"); break; case ChuaQuyetDinh:printf("Ban chua co quyet dinh\n"); break; default: printf("Ban khong nhap lua chon dung\n"); } return 0; } Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán © 2016 Lập trình C/C++ 52 Câu lệnh switch-case Bài tập n Bài toán: Quản lý kho hàng n n n Có chức n Nhập hàng hoá n Lưu hàng hoá n Đọc hàng hoá từ tập tin n V.v Chương trình in menu chờ người dùng chọn (nhập từ bàn phím) Với lựa chọn n In tên chức chọn nói n Sinh viên phát triển chức đầy đủ sau Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán © 2016 Lập trình C/C++ 53 So sánh if – else với switch-case n Tại không dùng switch-case cho toán phân loại sinh viên theo điểm Điểm kiểu nguyên Đầu vào: điểm diem < false true diem < 6.5 true false diem < true loai = “K” loai = “Y” false diem < 9.5 false true loai = “G” loai = “X” loai = “B” Đầu ra: loại Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán © 2016 Lập trình C/C++ 54 So sánh if – else với switch n n n Câu lệnh switch biểu diễn lại trình tự câu lệnh if-else Một số trường hợp switch tường minh dễ hiểu Tất cấu trúc điều khiển biểu diễn lại câu lệnh if-else câu lệnh goto (Với hỗ trợ nhãn) Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán © 2016 Lập trình C/C++ 55 Tổng kết n Vận dụng nguyên tắc phân rã toán để giải vấn đề n n Xem ví dụ Giải PTB2 ví dụ khác Hiểu vận dụng câu lệnh điều khiển C n n n Nguyên lý việc thực thi có điều kiện Câu lệnh if-else, câu lệnh điều kiện lồng Câu lệnh switch-case Trường Đại Học Bách Khoa Trung Tâm Kỹ Thuật Điện Toán © 2016 Lập trình C/C++ 56

Ngày đăng: 29/03/2017, 17:50

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan