Bài giảng Kỹ thuật lập trình - Chương 4: Cấu trúc rẽ nhánh cung cấp cho người học các kiến thức: Đặ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. Mời các bạn cùng tham khảo nội dung chi tiết.
Ch ng 04 C U TRÚC R NHÁNH Tr n Quang © 2016 CuuDuongThanCong.com Ch ng 04: C u trúc r nhánh https://fb.com/tailieudientucntt K thu t l p trình N i dung tv 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 C u trúc: switch-case Tr n Quang © 2016 CuuDuongThanCong.com Ch ng 04: C u trúc r nhánh https://fb.com/tailieudientucntt K thu t l p trình tv 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à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 © 2016 CuuDuongThanCong.com Ch ng 04: C u trúc r nhánh https://fb.com/tailieudientucntt K thu t l p trình tv nđ Bài tốn 2: Gi i ph ng trình b c Ch ng trình c n yêu c u nh p h s A, B, C Tuy nhiên A B nh p vào không ch c s khác -> có th suy bi n v ph ng trình b c Dùng c u trúc r nhánh đ ki m tra u ki n nói Tr n Quang © 2016 CuuDuongThanCong.com Ch ng 04: C u trúc r nhánh https://fb.com/tailieudientucntt K thu t l p trình Câu l nh Câu l nh m t câu vi t b ng ngôn ng l p trình K t thúc câu l nh d u ch m ph y (;) Các lo i câu l nh Câu l nh đ n (câu đ n) Câu l nh ph c (câu ph c) Nhi u câu l nh đ c đ t c p ngo c { … } C u l nh thu c c u trúc u n nh : if, ifelse, switch, for, while, while Câu l nh r ng: Tr n Quang © 2016 Ví d : câu khai báo bi n, câu l nh gán, … Ch có d u ; đ ng cu i CuuDuongThanCong.com Ch ng 04: C u trúc r nhánh https://fb.com/tailieudientucntt K thu t l p trình Ch ng trình Ch ng trình m t danh sách n tính (có th t ) c a 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 Tr g p c u trúc u n nh : R nhánh L p Tr n Quang © 2016 if, if-else, switch for, while, CuuDuongThanCong.com Ch while ng 04: C u trúc r nhánh https://fb.com/tailieudientucntt K thu t l p trình Câu l nh: if Cú pháp: if () if () if () { } Tr n Quang © 2016 CuuDuongThanCong.com Ch ng 04: C u trúc r nhánh https://fb.com/tailieudientucntt K thu t l p trình 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 lo i câu l nh đ n, kép hay r ng Tr n Quang © 2016 CuuDuongThanCong.com Ch ng 04: C u trúc r nhánh https://fb.com/tailieudientucntt K thu t l p trình Câu l nh: if Cú pháp + phong cách l p trình: if () if () if () { //có th có hay nhi u câu l nh } if () { //có th có hay nhi u câu l nh } TAB TAB Tr n Quang © 2016 CuuDuongThanCong.com Ch ng 04: C u trúc r nhánh https://fb.com/tailieudientucntt K thu t l p trình Câu l nh: if-else Cú pháp: if () else Tr n Quang © 2016 CuuDuongThanCong.com Ch ng 04: C u trúc r nhánh https://fb.com/tailieudientucntt K thu t l p trình 10 Câu l nh: if-else l ng if () else if () else if () else if () else if () else if () else Tr n Quang © 2016 CuuDuongThanCong.com Ch ng 04: C u trúc r nhánh https://fb.com/tailieudientucntt K thu t l p trình 18 Câu l nh: if-else l ng Phong cách: Canh l th ng đ ng Tr n Quang © 2016 CuuDuongThanCong.com #include #include void main(){ float diem = 8.7f; if(diem < 5.0f) 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(); } Ch ng 04: C u trúc r nhánh https://fb.com/tailieudientucntt K thu t l p trình 19 Bi u th c u ki n ? : Cú pháp : ? : n u tr v , ng 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 © 2016 CuuDuongThanCong.com Ch ng 04: C u trúc r nhánh https://fb.com/tailieudientucntt cl i K thu t l p trình 20 Câu l nh switch-case Ví d : ch ng trình qu n lý sách Ch ng trình cung c p menu ch c n ng cho ng i dùng ch n Ng i dùng ch n m t m c c a menu Ch ng trình th c hi n kh i cơng vi c t ng ng v i menu ch n => Phù h p c u trúc switch-case Tr n Quang © 2016 CuuDuongThanCong.com Ch ng 04: C u trúc r nhánh https://fb.com/tailieudientucntt K thu t l p trình 21 Câu l nh switch-case Cú pháp: switch (){ case : case : case : default: } switch, case, default: T khoá : bi u th c thu c m t ki u sau (1) Các ki u s nguyên, ho c d n xu t t thơng qua typedef (2) Ki u enum : (i=1, , N), giá tr có th c a mã tr ng h p Tr n Quang © 2016 CuuDuongThanCong.com Ch ng 04: C u trúc r nhánh https://fb.com/tailieudientucntt K thu t l p trình 22 Câu l nh switch-case false true Tr n Quang © 2016 CuuDuongThanCong.com false true true Ch false ng 04: C u trúc r nhánh https://fb.com/tailieudientucntt K thu t l p trình 23 Câu l nh switch-case Ch ng trình ki m tra xem tr ng h p x y tr ng h p đ c li t kê: , , , N u tr ng h p th i x y (i = N): Th c hi n l n l t câu l nh t i đ n N, k c câu l nh N u g p l nh break; ch ng trình kh i c u trúc switch-case N u khơng có tr ng h p x y ch ng trình th c thi câu l nh thoát kh i c u trúc switch-case Tr n Quang © 2016 CuuDuongThanCong.com Ch ng 04: C u trúc r nhánh https://fb.com/tailieudientucntt K thu t l p trình 24 Câu l nh switch-case switch case case case (){ : : : case : default: } Tr ng h p mu n: đ c th c thi cho c tr Tr n Quang © 2016 CuuDuongThanCong.com Ch ng 04: C u trúc r nhánh ng h p 1,2, https://fb.com/tailieudientucntt K thu t l p trình 25 Câu l nh switch-case switch (){ case : break; case : case : default: } Tr ng h p mu n: đ c th c thi xong thi thoát kh i c u trúc switch-case luôn, không th c thi câu l nh k ti p Tr n Quang © 2016 CuuDuongThanCong.com Ch ng 04: C u trúc r nhánh https://fb.com/tailieudientucntt K thu t l p trình 26 Câu l nh switch-case switch (){ case : break; case : break; case : break; default: } Tr ng h p mu n: Mu n m i câu l nh th c thi v i ch tr Tr n Quang © 2016 CuuDuongThanCong.com Ch ng 04: C u trúc r nhánh ng h p t https://fb.com/tailieudientucntt ng ng K thu t l p trình 27 Ví d #include #include void 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"); } getch(); } Tr n Quang © 2016 CuuDuongThanCong.com Ch ng 04: C u trúc r nhánh https://fb.com/tailieudientucntt K thu t l p trình 28 Ví d #include #include void main(){ int luachon; break n ch ng trình printf("Nhap vao lua chon: \n"); ch in tên hành đ ng scanf("%d", &luachon); t ng ng l a ch n 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"); } getch(); } Tr n Quang © 2016 CuuDuongThanCong.com Ch ng 04: C u trúc r nhánh https://fb.com/tailieudientucntt K thu t l p trình 29 S d ng ki u li t kê (enum) #include #include enum THop {DongY, TuChoi, ChuaQuyetDinh}; void main(){ enum THop 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"); } getch(); } Tr n Quang © 2016 CuuDuongThanCong.com Ch ng 04: C u trúc r nhánh https://fb.com/tailieudientucntt K thu t l p trình 30 So sánh if - else v i switch không dùng switch-case cho toán x p lo i sinh viên theo m m khơng ph i ki u s nguyên Câu l nh switch có th đ c bi u di n l i b ng m t trình t câu l nh if-else M t s tr ng h p switch-case t ng minh d hi u h n T t c c u trúc u n có th đ c bi u di n l i b ng câu l nh if-else câu l nh goto (V i s h tr c a nhãn) Tr n Quang © 2016 CuuDuongThanCong.com Ch ng 04: C u trúc r nhánh https://fb.com/tailieudientucntt K thu t l p trình 31 T ng k t tv 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 C u trúc: switch-case Tr n Quang © 2016 CuuDuongThanCong.com Ch ng 04: C u trúc r nhánh https://fb.com/tailieudientucntt K thu t l p trình 32 ... trúc: if-else C u trúc: if-else l ng C u trúc: switch-case Tr n Quang © 2016 CuuDuongThanCong.com Ch ng 04: C u trúc r nhánh https://fb.com/tailieudientucntt K thu t l p trình tv nđ Bài toán... tr 2> 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 © 2016 CuuDuongThanCong.com Ch ng 04: C u trúc r nhánh https://fb.com/tailieudientucntt... b*b - 4* a*c; if(delta < 0) // tiep tuc giai phuong trinh bac } getch(); } Tr n Quang © 2016 CuuDuongThanCong.com Ch ng 04: C u trúc r nhánh https://fb.com/tailieudientucntt K thu t l p trình 14