Bài giảng Nhập môn lập trình - Chương 3: Giới thiệu về các cấu trúc điều khiển trình bày các nội dung về Cấu trúc rẽ nhánh bao gồm: Cấu trúc điều khiển, cấu trúc rẽ nhánh if, cấu trúc rẽ nhánh if else, cấu trúc rẽ nhánh switch.
Nhập mơn lập trình Trình bày: Nguyễn Sơn Hồng Quốc Email: nshquoc@fit.hcmus.edu.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt Nội dung • • • • Cấu trúc điều khiển Cấu trúc rẽ nhánh if Cấu trúc rẽ nhánh if else Cấu trúc rẽ nhánh switch CuuDuongThanCong.com https://fb.com/tailieudientucntt CẤU TRÚC ĐIỀU KHIỂN CuuDuongThanCong.com https://fb.com/tailieudientucntt Định nghĩa cấu trúc điều khiển • Định nghĩa đặc điểm – Cho phép thay đổi thứ tự thực câu lệnh – Giúp thực câu lệnh chương trình theo ý người lập trình không cứng nhắc từ xuống CuuDuongThanCong.com https://fb.com/tailieudientucntt Phân loại cấu trúc điều khiển • Cấu trúc điều khiển có loại: – Cấu trúc điều khiển rẽ nhánh: • if else • switch – Cấu trúc điều khiển vòng lặp: • for • while • while CuuDuongThanCong.com https://fb.com/tailieudientucntt CẤU TRÚC RẼ NHÁNH IF CuuDuongThanCong.com https://fb.com/tailieudientucntt Cấu trúc điều khiển rẽ nhánh if • Thực khối lệnh biểu_thức_điều_kiện • Cú pháp sau if thỏa if (biểu_thức_điều_kiện) { Lệnh 1; Lệnh 2; … Lệnh n; } CuuDuongThanCong.com https://fb.com/tailieudientucntt Lưu đồ thuật toán cấu trúc if Đúng Lệnh Lệnh … Lệnh n CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ • Viết chương trình nhập vào tổng số tiền phải trả 𝑡 Nếu số tiền lớn triệu giảm giá 10% Tính số tiền phải trả cuối CuuDuongThanCong.com https://fb.com/tailieudientucntt Lưu đồ Bắt đầu Nhập 𝑡 Đúng t > 1,000,000 𝑡 ∗ 90 𝑡= 100 Xuất 𝑡 Kết thúc CuuDuongThanCong.com 10 https://fb.com/tailieudientucntt Kiểm tra hai số dấu (Chương trình) 1.#include 2.void main() { float a, b; printf("Nhap so thuc: "); scanf("%f%f", &a, &b); if (a * b > 0) printf("%f va %f cung dau!\n",a,b); else printf("%f va %f trai dau!\n",a,b); 10.} 21 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ • Giải phương trình bậc ax + b = 22 CuuDuongThanCong.com https://fb.com/tailieudientucntt Giải phương trình bậc (lưu đồ) Bắt đầu Đọc a,b Đ S a=0 Đ S Tính x = -b/a b=0 Xuất “VSN” Xuất “VN” Xuất x Kết thúc 23 CuuDuongThanCong.com https://fb.com/tailieudientucntt Giải phương trình bậc (chương trình) #include void main() { float a, b; printf("Nhap so thuc: "); scanf("%f%f", &a, &b); if (a==0) if (b==0) printf("Phuong trinh vo so nghiem!\n"); else 10 printf("Phuong trinh vo nghiem!\n"); 11 else 12 printf("Phuong trinh co nghiem x = %.2f\n", -b / a); 13.} 24 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ghi quan trọng • Nếu sau if else có khối lệnh khơng cần phải để lệnh khối lệnh "{}" • Có thể sử dụng cấu trúc chọn if, if else lồng nhau, phải xác định khối lệnh cách rõ ràng 25 CuuDuongThanCong.com https://fb.com/tailieudientucntt CẤU TRÚC ĐIỀU KIỂN RẼ NHÁNH SWITCH 26 CuuDuongThanCong.com https://fb.com/tailieudientucntt Cấu trúc điều khiển rẽ nhánh switch • Cấu trúc điều khiển rẽ nhánh switch cho phép vào giá trị biểu thức nguyên nhiều cách nhảy switch (biểu_thức_chọn) { case Giá_Trị_1: Lệnh 1; Lệnh n; break; case Giá_Trị_2: Lệnh 1; Lệnh n; break; default: Lệnh 1; Lệnh n; break; } 27 CuuDuongThanCong.com https://fb.com/tailieudientucntt Lưu đồ thuật toán cấu trúc switch case case giá trị case giá trị default break break break 28 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ • Cho biết tháng cho trước thuộc quý mấy? 29 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ cấu trúc switch (Xác định quý tháng) #include void main() { int thang; printf("Nhap thang: "); scanf("%d", &thang); … } 30 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ cấu trúc switch (Xác định quý tháng) 1.void main() { … switch (thang) { case 1: case 2: case 3: printf("Quy I\n"); break; case 4: case 5: case 6: printf("Quy II\n"); 10 break; 11 case 7: case 8: case 9: 12 printf("Quy III\n"); 13 break; 14 case 10: case 11: case 12: 15 printf("Quy IV\n"); 16 break; 17 default: 18 printf(“Thang khong hop le \n"); 19 break; 20 } CuuDuongThanCong.com https://fb.com/tailieudientucntt 31 Ghi quan trọng • biểu_thức_chọn tính & so sánh với Giá_Trị_i mệnh đề case i • Nếu giá trị biểu_thức_chọn: – Bằng Giá_Trị_i thì: • Khối lệnh mệnh đề case i thực • Thực tiếp mệnh đề sau lệnh break thường có lệnh break mệnh đề – Khơng Giá_Trị_i nào: • Mệnh đề default thực 32 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ • Nhập vào tháng 𝑡 năm 2016, xác định 𝑡 có ngày 33 CuuDuongThanCong.com https://fb.com/tailieudientucntt Xác định số ngày tháng (chương trình) #include using namespace std; void main() { float t, ngay; cout > t; if (t==2) = 29; 10 else 11 if (t==1||t==3||t==5||t==7||t==8||t==10||t==12) 12 = 31; 13 else 14 = 30; 15 cout