Xem mẫu

  1. Chương 04 CẤU TRÚC RẼ NHÁNH Trần Quang Kỹ thuật lập trình Chương 04: Cấu trúc rẽ nhánh © 2016 CuuDuongThanCong.com https://fb.com/tailieudientucntt 1
  2. Nội dung  Đặt vấn đề  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 nhau  Cấu trúc: switch-case Trần Quang Kỹ thuật lập trình Chương 04: Cấu trúc rẽ nhánh © 2016 CuuDuongThanCong.com https://fb.com/tailieudientucntt 2
  3. Đặt vấn đề Bài toán 1: nhập một ngày (gồm ngày, tháng, năm)  Một chương trình tốt không được giả sử người dùng phải nhập đúng ngày, tháng, năm (đã thuộc miền giá trị cho phép)  Để kiểm tra trường hợp nhập sai tháng, ta có thể sử dụng cấu trúc: if ( (tháng < 0) hoặc (tháng > 12) ) // Xử lý lỗi với tháng nhập sai endif Trần Quang Kỹ thuật lập trình Chương 04: Cấu trúc rẽ nhánh © 2016 CuuDuongThanCong.com https://fb.com/tailieudientucntt 3
  4. Đặt vấn đề Bài toán 2: Giải phương trình bậc 2  Chương trình cần yêu cầu nhập các hệ số A, B, C  Tuy nhiên A và B nhập vào không chắc sẽ khác 0 -> có thể suy biến về phương trình bậc 1  Dùng cấu trúc rẽ nhánh để kiểm tra các điều kiện nói trên Trần Quang Kỹ thuật lập trình Chương 04: Cấu trúc rẽ nhánh © 2016 CuuDuongThanCong.com https://fb.com/tailieudientucntt 4
  5. Câu lệnh  Câu lệnh là một câu viết bằng ngôn ngữ lập trình. Kết thúc câu lệnh là dấu chấm phẩy (;)  Các loại câu lệnh  Câu lệnh đơn (câu đơn)  Ví dụ: câu khai báo biến, câu lệnh gán, …  Câu lệnh phức (câu phức)  Nhiều câu lệnh được đặt trong cặp ngoặc { … }  Cạu lệnh thuộc cấu trúc điều khiển như: if, if- else, switch, for, while, do … while  Câu lệnh rỗng:  Chỉ có dấu ; đứng cuối Trần Quang Kỹ thuật lập trình Chương 04: Cấu trúc rẽ nhánh © 2016 CuuDuongThanCong.com https://fb.com/tailieudientucntt 5
  6. Chương trình  Chương trình là một danh sách tuyến tính (có thứ tự) của các câu lệnh (đơn, phức, …)  Mặc định máy tính sẽ thực hiện lần lượt từ câu đầu tiên đến câu lệnh cuối cùng.  Trừ khi gặp các cấu trúc điều khiển như:  Rẽ nhánh  if, if-else, switch  Lặp  for, while, do … while Trần Quang Kỹ thuật lập trình Chương 04: Cấu trúc rẽ nhánh © 2016 CuuDuongThanCong.com https://fb.com/tailieudientucntt 6
  7. Câu lệnh: if  Cú pháp: if () if () if () { } Trần Quang Kỹ thuật lập trình Chương 04: Cấu trúc rẽ nhánh © 2016 CuuDuongThanCong.com https://fb.com/tailieudientucntt 7
  8. Câu lệnh: if : false Biểu thức luận lý hoặc phải chuyển đổi sang luận lý được true : một trong các loại câu lệnh đơn, kép hay rỗng Trần Quang Kỹ thuật lập trình Chương 04: Cấu trúc rẽ nhánh © 2016 CuuDuongThanCong.com https://fb.com/tailieudientucntt 8
  9. Câu lệnh: if  Cú pháp + phong cách lập trình: if () if () { //có thể có 1 hay nhiều câu lệnh if () } if () { TAB //có thể có 1 hay nhiều câu lệnh } TAB Trần Quang Kỹ thuật lập trình Chương 04: Cấu trúc rẽ nhánh © 2016 CuuDuongThanCong.com https://fb.com/tailieudientucntt 9
  10. Câu lệnh: if-else  Cú pháp: if () else Trần Quang Kỹ thuật lập trình Chương 04: Cấu trúc rẽ nhánh © 2016 CuuDuongThanCong.com https://fb.com/tailieudientucntt 10
  11. Câu lệnh: if-else : false Biểu thức luận lý hoặc phải chuyển đổi sang luận lý được true , : một trong các loại câu lệnh đơn, kép hay rỗng Trần Quang Kỹ thuật lập trình Chương 04: Cấu trúc rẽ nhánh © 2016 CuuDuongThanCong.com https://fb.com/tailieudientucntt 11
  12. Câu lệnh: if-else  Cú pháp + phong cách lập trình if () else if () { if () { //... //... } } else else { { //... //... } } Trần Quang Kỹ thuật lập trình Chương 04: Cấu trúc rẽ nhánh © 2016 CuuDuongThanCong.com https://fb.com/tailieudientucntt 12
  13. Cần phân rã các công việc con trong đó để có giải thuật hoàn thiện Trần Quang Kỹ thuật lập trình Chương 04: Cấu trúc rẽ nhánh © 2016 CuuDuongThanCong.com https://fb.com/tailieudientucntt 13
  14. Giải Phương trình bậc 2 #include #include void main(){ float a, b, c, delta; printf("Nhap vao gia tri cac so a, b, c: \n"); scanf("%f%f%f", &a, &b, &c); if(a == 0) { // giai phuong trinh bac 1 } else { delta = b*b - 4*a*c; if(delta < 0) // tiep tuc giai phuong trinh bac 2 ... } getch(); } Trần Quang Kỹ thuật lập trình Chương 04: Cấu trúc rẽ nhánh © 2016 CuuDuongThanCong.com https://fb.com/tailieudientucntt 14
  15. Câu lệnh: if-else lồng nhau Bài toán: xếp loại học sinh dựa theo điểm  Yếu: điểm thuộc [0, 5]  Trung bình: điểm thuộc [5, 6.5)  Khá: điểm thuộc [6.5, 8)  Giỏi: điểm thuộc [8, 9.5)  Xuất sắc: điểm thuộc [9.5, 10] Trần Quang Kỹ thuật lập trình Chương 04: Cấu trúc rẽ nhánh © 2016 CuuDuongThanCong.com https://fb.com/tailieudientucntt 15
  16. Câu lệnh: if-else lồng nhau Đầu vào: điểm false false false false diem < 5 diem < 6.5 diem < 8 diem < 9.5 true true true true loai = “G” loai = “XS” loai = “K” loai = “TB” loai = “Y” Đầu ra: loại Trần Quang Kỹ thuật lập trình Chương 04: Cấu trúc rẽ nhánh © 2016 CuuDuongThanCong.com https://fb.com/tailieudientucntt 16
  17. Câu lệnh: if-else lồng nhau Có nhiều cách biểu diễn if () else if () else if () else if () else if () else if () else Trần Quang Kỹ thuật lập trình Chương 04: Cấu trúc rẽ nhánh © 2016 CuuDuongThanCong.com https://fb.com/tailieudientucntt 17
  18. Câu lệnh: if-else lồng nhau if () else if () else if () else if () else if () else if () else Trần Quang Kỹ thuật lập trình Chương 04: Cấu trúc rẽ nhánh © 2016 CuuDuongThanCong.com https://fb.com/tailieudientucntt 18
  19. Câu lệnh: if-else lồng nhau #include #include void main(){ float diem = 8.7f; Phong cách: if(diem < 5.0f) Canh lề thẳng đứng printf("%s", "Yeu"); else if(diem < 6.5f) printf("%s", "Trung Binh"); else if(diem < 8.5f) printf("%s", "Kha"); else if(diem < 9.5f) printf("%s", "Gioi"); else printf("%s", "Xuat sac"); getch(); } Trần Quang Kỹ thuật lập trình Chương 04: Cấu trúc rẽ nhánh © 2016 CuuDuongThanCong.com https://fb.com/tailieudientucntt 19
  20. Biểu thức điều kiện ? : Cú pháp : ? : nếu đúng thì trả về , ngược lại trả về Ví dụ: lệnh if (hours > 40) rate = 0.45; else rate = 0.02; có thể thay bằng : rate = (hours > 40) ? 0.45 : 0.02; Trần Quang Kỹ thuật lập trình Chương 04: Cấu trúc rẽ nhánh © 2016 CuuDuongThanCong.com https://fb.com/tailieudientucntt 20
nguon tai.lieu . vn