Bài giảng Ngôn ngữ lập trình và phương pháp lập trình

Tài liệu Bài giảng Ngôn ngữ lập trình và phương pháp lập trình: Giáo trình L p trình C căn b nậ ả Trang 1 M C L CỤ Ụ BÀI 1 : NGÔN NG L P TRÌNH & PH NG PHÁP L P TRÌNHỮ Ậ ƯƠ Ậ ...............................................8 1.1 M c tiêuụ .......................................................................................................................................8 1.2 Lý thuy tế .....................................................................................................................................8 1.2.1 Ngôn ng l p trình (Programming Language)ữ ậ .................................................................8 1.2.1.1 Thu t gi i (Algorithm)ậ ả .................................................................................................8 1.2.1.2 Ch ng trình (Program)ươ ..............................................................................................8 1.2.1.3 Ngôn ng l p trình (Programming language)ữ ậ ............................................................9 1.2.2 Các b c l p trìnhướ ậ .....

pdf148 trang | Chia sẻ: hunglv | Lượt xem: 1248 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Bài giảng Ngôn ngữ lập trình và phương pháp lập trình, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Giáo trình L p trình C căn b nậ ả Trang 1 M C L CỤ Ụ BÀI 1 : NGÔN NG L P TRÌNH & PH NG PHÁP L P TRÌNHỮ Ậ ƯƠ Ậ ...............................................8 1.1 M c tiêuụ .......................................................................................................................................8 1.2 Lý thuy tế .....................................................................................................................................8 1.2.1 Ngôn ng l p trình (Programming Language)ữ ậ .................................................................8 1.2.1.1 Thu t gi i (Algorithm)ậ ả .................................................................................................8 1.2.1.2 Ch ng trình (Program)ươ ..............................................................................................8 1.2.1.3 Ngôn ng l p trình (Programming language)ữ ậ ............................................................9 1.2.2 Các b c l p trìnhướ ậ ..............................................................................................................9 1.2.3 K thu t l p trìnhỹ ậ ậ ...............................................................................................................9 1.2.3.1 I-P-O Cycle (Input-Pprocess-Output Cycle) (Quy trình nh p-x lý-xu t)ậ ử ấ .............9 1.2.3.2 S d ng l u đ (Flowchart)ử ụ ư ồ ......................................................................................10 BÀI 2 : LÀM QUEN L P TRÌNH C QUA CÁC VÍ D Đ N GI NẬ Ụ Ơ Ả ...............................................14 2.1 M c tiêuụ .....................................................................................................................................14 2.2 N i dungộ ....................................................................................................................................14 2.2.1 Kh i đ ng và thoát BorlandCở ộ ..........................................................................................14 2.2.1.1 Kh i đ ngở ộ ....................................................................................................................14 2.2.1.2 Thoát .............................................................................................................................15 2.2.2 Các ví d đ n gi nụ ơ ả ............................................................................................................15 2.2.2.1 Ví d 1ụ ..........................................................................................................................15 2.2.2.2 Ví d 2ụ ..........................................................................................................................17 2.2.2.3 Ví d 3ụ ..........................................................................................................................18 2.2.2.4 Ví d 4ụ ..........................................................................................................................19 BÀI 3 : CÁC THÀNH PH N TRONG NGÔN NG CẦ Ữ ...................................................................21 3.1 M c tiêuụ .....................................................................................................................................21 3.2 N i dungộ ....................................................................................................................................21 3.2.1 T khóaừ ...............................................................................................................................21 3.2.2 Tên .......................................................................................................................................21 3.2.3 Ki u d li uể ữ ệ .......................................................................................................................22 3.2.4 Ghi chú .................................................................................................................................22 3.2.5 Khai báo bi nế .....................................................................................................................22 3.2.5.1 Tên bi nế .......................................................................................................................22 3.2.5.2 Khai báo bi nế ...............................................................................................................22 3.2.5.3 V a khai báo v a kh i gánừ ừ ở ........................................................................................23 3.2.5.4 Ph m vi c a bi nạ ủ ế ........................................................................................................23 Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 2 BÀI 4 : NH P / XU T D LI UẬ Ấ Ữ Ệ ..................................................................................................25 4.1 M c tiêuụ .....................................................................................................................................25 4.2 N i dungộ ....................................................................................................................................25 4.2.1 Hàm printf ...........................................................................................................................25 4.2.2 Hàm scanf ............................................................................................................................28 4.3 Bài t pậ ........................................................................................................................................29 BÀI 5 : C U TRÚC R NHÁNH CÓ ĐI U KI NẤ Ẽ Ề Ệ .........................................................................31 5.1 M c tiêuụ .....................................................................................................................................31 5.2 N i dungộ ....................................................................................................................................31 5.2.1 L nh và kh i l nhệ ố ệ .............................................................................................................31 5.2.1.1 L nhệ ..............................................................................................................................31 5.2.1.2 Kh i l nhố ệ .....................................................................................................................31 5.2.2 L nh ifệ .................................................................................................................................31 5.2.2.1 D ng 1 (if thi u)ạ ế ..........................................................................................................31 5.2.2.2 D ng 2 (if đ )ạ ủ .............................................................................................................35 5.2.2.3 C u trúc else ifấ .............................................................................................................38 5.2.2.4 C u trúc if l ngấ ồ ...........................................................................................................42 5.2.3 L nh switchệ ........................................................................................................................47 5.2.3.1 C u trúc switch…case (switch thi u)ấ ế .......................................................................47 5.2.3.2 C u trúc switch…case…default (switch đ )ấ ủ ............................................................49 5.2.3.3 C u trúc switch l ngấ ồ ...................................................................................................52 5.3 Bài t pậ ........................................................................................................................................53 5.3.1 S d ng l nh ifử ụ ệ ..................................................................................................................53 5.3.2 S d ng l nh switchử ụ ệ ..........................................................................................................54 5.4 Bài t p làm thêmậ .......................................................................................................................55 BÀI 6 : C U TRÚC VÒNG L PẤ Ặ ...................................................................................................56 6.1 M c tiêuụ .....................................................................................................................................56 6.2 N i dungộ ....................................................................................................................................56 6.2.1 L nh forệ ..............................................................................................................................56 6.2.2 L nh breakệ .........................................................................................................................61 6.2.3 L nh continueệ .....................................................................................................................62 6.2.4 L nh whileệ ..........................................................................................................................62 6.2.5 L nh do…whileệ ..................................................................................................................64 6.2.6 Vòng l p l ng nhauặ ồ ...........................................................................................................66 6.2.7 So sánh s khác nhau c a các vòng l pự ủ ặ ..........................................................................67 6.3 Bài t pậ ........................................................................................................................................67 Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 3 BÀI 7 : HÀM 70 7.1 M c tiêuụ .....................................................................................................................................70 7.2 N i dungộ ....................................................................................................................................70 7.2.1 Các ví d v hàmụ ề ...............................................................................................................70 7.2.2 Tham s d ng tham bi n và tham trố ạ ế ị .............................................................................73 7.2.3 S d ng bi n toàn c cử ụ ế ụ .....................................................................................................74 7.2.4 Dùng d n h ng #defineẫ ướ ..................................................................................................76 7.3 Bài t pậ ........................................................................................................................................77 BÀI 8 : M NG VÀ CHU IẢ Ỗ ............................................................................................................78 8.1 M c tiêuụ .....................................................................................................................................78 8.2 N i dungộ ....................................................................................................................................78 8.2.1 M ngả ...................................................................................................................................78 8.2.1.1 Cách khai báo m ngả ....................................................................................................78 8.2.1.2 Tham chi u đ n t ng ph n t m ngế ế ừ ầ ử ả ......................................................................78 8.2.1.3 Nh p d li u cho m ngậ ữ ệ ả .............................................................................................79 8.2.1.4 Đ c d li u t m ngọ ữ ệ ừ ả .................................................................................................79 8.2.1.5 S d ng bi n ki u khácử ụ ế ể ............................................................................................80 8.2.1.6 K thu t Sentinalỹ ậ ........................................................................................................80 8.2.1.7 Kh i t o m ngở ạ ả ............................................................................................................81 8.2.1.8 Kh i t o m ng không bao hàm kích th cở ạ ả ướ ............................................................82 8.2.1.9 M ng nhi u chi uả ề ề ......................................................................................................82 8.2.1.10 Tham chi u đ n t ng ph n t m ng 2 chi uế ế ừ ầ ử ả ề ......................................................83 8.2.1.11 Nh p d li u cho m ng 2 chi uậ ữ ệ ả ề .............................................................................83 8.2.1.12 Đ c d li u t m ng 2 chi uọ ữ ệ ừ ả ề .................................................................................83 8.2.1.13 S d ng bi n ki u khác trong m ng 2 chi uử ụ ế ể ả ề .......................................................85 8.2.1.14 Kh i t o m ng 2 chi uở ạ ả ề ............................................................................................85 8.2.1.15 Dùng m ng 1 chi u làm tham s cho hàmả ề ố .............................................................86 8.2.1.16 Dùng m ng 2 chi u làm tham s cho hàmả ề ố .............................................................88 8.2.2 Chu iỗ ...................................................................................................................................91 8.2.2.1 Cách khai báo chu iỗ ...................................................................................................91 8.2.2.2 Hàm nh p (gets), xu t (puts) chu iậ ấ ỗ ..........................................................................92 8.2.2.3 Kh i t o chu iở ạ ỗ ............................................................................................................93 8.2.2.4 M ng chu iả ỗ ..................................................................................................................93 8.3 Bài t pậ ........................................................................................................................................94 BÀI 9 : CON TRỎ 97 9.1 M c tiêuụ .....................................................................................................................................97 9.2 N i dungộ ....................................................................................................................................97 9.2.1 Con tr ?ỏ ..............................................................................................................................97 Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 4 9.2.2 Khái báo bi n con trế ỏ .......................................................................................................97 9.2.3 Truy n đ a ch sang hàmề ị ỉ ..................................................................................................98 9.2.4 Con tr và m ngỏ ả ................................................................................................................99 9.2.5 Con tr tr đ n m ng trong hàmỏ ỏ ế ả ...................................................................................99 9.2.6 Con tr và chu iỏ ỗ ..............................................................................................................100 9.2.7 Kh i t o m ng con tr tr đ n chu iở ạ ả ỏ ỏ ế ỗ .........................................................................101 9.2.8 X lý con tr tr đ n chu iử ỏ ỏ ế ỗ ..........................................................................................103 9.2.9 Con tr tr đ n con trỏ ỏ ế ỏ .................................................................................................104 9.3 Bài t pậ ......................................................................................................................................105 BÀI 10 : CÁC KI U D LI U T T OỂ Ữ Ệ Ự Ạ .......................................................................................107 10.1 M c tiêuụ .................................................................................................................................107 10.2 N i dungộ ................................................................................................................................107 10.2.1 Structure ..........................................................................................................................107 10.2.1.1 Khai báo ki u structureể ..........................................................................................107 10.2.1.2 Cách khai báo bi n có ki u structureế ể ...................................................................107 10.2.1.3 Tham chi u các ph n t trong structureế ầ ử .............................................................107 10.2.1.4 Kh i t o structureở ạ ..................................................................................................109 10.2.1.5 Structure l ng nhauồ ................................................................................................110 10.2.1.6 Truy n structure sang hàmề ....................................................................................112 10.2.2 Enum ................................................................................................................................114 10.2.2.1 Đ nh nghĩa ki u enumị ể ............................................................................................114 10.2.2.2 Cách khai báo bi n có ki u enumế ể .........................................................................115 10.2.2.3 S d ng enum trong ch ng trìnhử ụ ươ .......................................................................115 10.3 Bài t pậ ....................................................................................................................................117 BÀI 11 : T P TINẬ 118 11.1 M c tiêuụ .................................................................................................................................118 11.2 N i dungộ ................................................................................................................................118 11.2.1 Ví d ghi, đ c s nguyênụ ọ ố ..............................................................................................118 11.2.2 Ghi, đ c m ngọ ả ................................................................................................................119 11.2.3 Ghi, đ c structureọ ..........................................................................................................120 11.2.4 Các mode khác đ m t p tinể ở ậ ......................................................................................122 11.2.5 M t s hàm thao tác trên file khácộ ố ..............................................................................122 11.3 Bài t pậ ....................................................................................................................................122 BÀI 12 : Đ QUYỆ 123 12.1 M c tiêuụ .................................................................................................................................123 12.2 N i dungộ ................................................................................................................................123 Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 5 12.3 Bài t pậ ....................................................................................................................................126 BÀI 13 : TRÌNH SO N TH O C A BORLAND CẠ Ả Ủ ......................................................................127 13.1 M t p tin so n th o m iở ậ ạ ả ớ ..................................................................................................127 13.2 L u t p tinư ậ ............................................................................................................................127 13.2.1 N u là t p tin so n th o m i ch a l uế ậ ạ ả ớ ư ư .....................................................................127 13.2.2 N u là t p tin đã l u ít nh t 1 l n ho c đ c m b ng l nh Open:ế ậ ư ấ ầ ặ ượ ở ằ ệ ...................128 13.3 M t p tinở ậ .............................................................................................................................128 13.4 Các phím, t h p phím th ng dùngổ ợ ườ ................................................................................128 13.4.1 Các phím di chuy n con trể ỏ .........................................................................................128 13.4.2 Các phím thao tác trên kh iố ..........................................................................................129 13.4.3 Các thao tác xóa ..............................................................................................................129 13.4.4 Các thao tác copy, di chuy nể .........................................................................................129 13.4.5 Các thao tác khác ...........................................................................................................130 13.5 Ghi m t kh i ra đĩaộ ố ..............................................................................................................130 13.6 Chèn n i dung file t đĩa vào v trí con trộ ừ ị ỏ .......................................................................130 13.7 Tìm ki m văn b n trong n i dung so n th oế ả ộ ạ ả ..................................................................130 13.8 Tìm và thay th văn b n trong n i dung so n th oế ả ộ ạ ả ........................................................131 13.9 S a l i cú phápử ỗ .....................................................................................................................131 13.10 Ch y t ng b cạ ừ ướ .................................................................................................................132 13.10.1 M i l n 1 b cỗ ầ ướ ............................................................................................................132 13.10.2 Tái l p l i quá trình g r iậ ạ ỡ ố ........................................................................................132 13.10.3 Dùng c a s Watchử ố ......................................................................................................132 13.11 S d ng Help (Giúp đ )ử ụ ỡ ....................................................................................................132 BÀI 14 : CÁC H Đ MỆ Ế 134 14.1 Khái ni mệ ..............................................................................................................................134 14.2 Quy t cắ ...................................................................................................................................134 14.3 Chuy n đ i gi a các hể ổ ữ ệ ......................................................................................................135 14.3.1 Chuy n đ i gi a h 2 và h 10ể ổ ữ ệ ệ ...................................................................................135 14.3.2 Chuy n đ i gi a h 8 và h 10ể ổ ữ ệ ệ ...................................................................................136 14.3.3 Chuy n đ i gi a h 16 và h 10ể ổ ữ ệ ệ .................................................................................136 14.3.4 Chuy n đ i gi a h 2 và h 16ể ổ ữ ệ ệ ...................................................................................137 BÀI 15 : BI U TH C VÀ PHÉP TOÁNỂ Ứ ........................................................................................139 Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 6 15.1 Bi u th cể ứ ...............................................................................................................................139 15.2 Phép toán ................................................................................................................................139 15.2.1 Phép toán s h cố ọ ............................................................................................................139 15.2.2 Phép quan hệ ..................................................................................................................139 15.2.3 Phép toán lu n lýậ ............................................................................................................140 15.2.4 Phép toán trên bit (bitwise) ............................................................................................140 15.2.5 Các phép toán khác ........................................................................................................141 15.2.6 Đ u tiên c a các phép toánộ ư ủ .......................................................................................141 15.3 Bài t pậ ....................................................................................................................................142 BÀI 16 : M T S HÀM CHU N TH NG DÙNGỘ Ố Ẩ ƯỜ .....................................................................144 16.1 Các hàm chuy n đ i d li uể ổ ữ ệ ..............................................................................................144 16.1.1 atof ....................................................................................................................................144 16.1.2 atoi ....................................................................................................................................144 16.1.3 itoa ....................................................................................................................................144 16.1.4 tolower .............................................................................................................................144 16.1.5 toupper .............................................................................................................................144 16.2 Chép chu i src Các hàm x lý chu i ký tỗ ử ỗ ự .......................................................................145 16.2.1 strcat ................................................................................................................................145 16.2.2 strcpy ................................................................................................................................145 16.2.3 strcmp ..............................................................................................................................145 16.2.4 strcmpi .............................................................................................................................145 16.2.5 strlwr ................................................................................................................................146 16.2.6 strupr ...............................................................................................................................146 16.2.7 strlen ................................................................................................................................146 16.3 Các hàm toán h cọ .................................................................................................................146 16.3.1 abs ....................................................................................................................................146 16.3.2 labs ...................................................................................................................................146 16.3.3 rand ..................................................................................................................................146 16.3.4 random .............................................................................................................................146 16.3.5 pow ...................................................................................................................................147 16.3.6 sqrt ...................................................................................................................................147 16.4 Các hàm x lý fileử .................................................................................................................147 16.4.1 rewind ..............................................................................................................................147 16.4.2 ftell ....................................................................................................................................147 16.4.3 fseek ..................................................................................................................................147 Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 7 Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 8 Bài 1 : NGÔN NGỮ LẬP TRÌNH & PHƯƠNG PHÁP LẬP TRÌNH 1.1 Mục tiêu Sau khi hoàn t t bài này h c viên s hi u và v n d ng các ki n th c kĩ năng c b n sau:ấ ọ ẽ ể ậ ụ ế ứ ơ ả - Ý nghĩa, các b c l p trình.ướ ậ - Xác đ nh d li u vào, ra.ị ữ ệ - Phân tích các bài toán đ n gi n.ơ ả - Khái ni m so sánh, l p.ệ ặ - Th hi n bài toán b ng l u đ .ể ệ ằ ư ồ 1.2 Lý thuyết 1.2.1 Ngôn ngữ lập trình (Programming Language) Ph n này chúng ta s tìm hi u m t s khái ni m căn b n v thu t toán, ch ng trình, ngônầ ẽ ể ộ ố ệ ả ề ậ ươ ng l p trình. Thu t ng "thu t gi i" và "thu t toán" dĩ nhiên có s khác nhau song trong nhi uữ ậ ậ ữ ậ ả ậ ự ề tr ng h p chúng có cùng nghĩa.ườ ợ 1.2.1.1 Thuật giải (Algorithm) Là m t dãy các thao tác xác đ nh trên m t đ i t ng, sao cho sau khi th c hi n m t sộ ị ộ ố ượ ự ệ ộ ố h u h n các b c thì đ t đ c m c tiêu. Theo R.A.Kowalski thì b n ch t c a thu t gi i:ữ ạ ướ ạ ượ ụ ả ấ ủ ậ ả Thu t gi i = Logic + Đi u khi nậ ả ề ể * Logic: Đây là ph n khá quan tr ng, nó tr l i câu h i "Thu t gi i làm gì, gi i quy tầ ọ ả ờ ỏ ậ ả ả ế v n đ gì?", nh ng y u t trong bài toán có quan h v i nhau nh th nào v.v… đây bao g mấ ề ữ ế ố ệ ớ ư ế Ở ồ nh ng ki n th c chuyên môn mà b n ph i bi t đ có th ti n hành gi i bài toán.ữ ế ứ ạ ả ế ể ể ế ả Ví d 1ụ : Đ gi i m t bài toán tính di n tích hình c u, mà b n không còn nh công th cể ả ộ ệ ầ ạ ớ ứ tính hình c u thì b n không th vi t ch ng trình cho máy đ gi i bài toán này đ c.ầ ạ ể ế ươ ể ả ượ * Đi u khi nề ể : Thành ph n này tr l i câu h i: gi i thu t ph i làm nh th nào?. Chínhầ ả ờ ỏ ả ậ ả ư ế là cách th c ti n hành áp d ng thành ph n logic đ gi i quy t v n đ .ứ ế ụ ầ ể ả ế ấ ề 1.2.1.2 Chương trình (Program) Là m t t p h p các mô t , các phát bi u, n m trong m t h th ng qui c v ý nghĩaộ ậ ợ ả ể ằ ộ ệ ố ướ ề và th t th c hi n, nh m đi u khi n máy tính làm vi c. Theo Niklaus Wirth thì:ứ ự ự ệ ằ ề ể ệ Ch ng trình = Thu t toán + C u trúc d li uươ ậ ấ ữ ệ Các thu t toán và ch ng trình đ u có c u trúc d a trên ậ ươ ề ấ ự 3 c u trúc đi u khi n c b nấ ề ể ơ ả : * Tu n tầ ự (Sequential): Các b c th c hi n tu n t m t cách chính xác t trên xu ng,ướ ự ệ ầ ự ộ ừ ố m i b c ch th c hi n đúng m t l n.ỗ ướ ỉ ự ệ ộ ầ * Ch n l cọ ọ (Selection): Ch n 1 trong 2 hay nhi u thao tác đ th c hi n.ọ ề ể ự ệ * L p l iặ ạ (Repetition): M t hay nhi u b c đ c th c hi n l p l i m t s l n.ộ ề ướ ượ ự ệ ặ ạ ộ ố ầ Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 9 Mu n tr thành l p trình viên chuyên nghi p b n hãy làm đúng trình t đ có thói quenố ở ậ ệ ạ ự ể t t và thu n l i sau này trên nhi u m t c a m t ng i làm máy tính. B n hãy làm theo các b cố ậ ợ ề ặ ủ ộ ườ ạ ướ sau: Tìm, xây d ng thu t gi i (trên gi y) ự ậ ả ấ → vi t ch ng trình trên máyế ươ → d ch ch ng trình ị ươ → ch y và th ch ng trìnhạ ử ươ 1.2.1.3 Ngôn ngữ lập trình (Programming language) Ngôn ng l p trình là h th ng các ký hi u tuân theo các qui c v ng pháp và ngữ ậ ệ ố ệ ướ ề ữ ữ nghĩa, dùng đ xây d ng thành các ch ng trình cho máy tính.ể ự ươ M t ch ng trình đ c vi t b ng m t ngôn ng l p trình c th (ví d Pascal, C…)ộ ươ ượ ế ằ ộ ữ ậ ụ ể ụ g i là ch ng trình ngu n, ch ng trình d ch làm nhi m v d ch ch ng trình ngu n thànhọ ươ ồ ươ ị ệ ụ ị ươ ồ ch ng trình th c thi đ c trên máy tính.ươ ự ượ 1.2.2 Các bước lập trình B c 1: Phân tích v n đ và xác đ nh các đ c đi m. (xác đ nh I-P-O)ướ ấ ề ị ặ ể ị B c 2: L p ra gi i pháp. (đ a ra thu t gi i)ướ ậ ả ư ậ ả B c 3: Cài đ t. (vi t ch ng trình)ướ ặ ế ươ B c 4: Ch y th ch ng trình. (d ch ch ng trình)ướ ạ ử ươ ị ươ B c 5: ướ Ki m ch ng và hoàn thi n ch ng trình. (th nghi m b ng nhi u s li u và đánhể ứ ệ ươ ử ệ ằ ề ố ệ giá) 1.2.3 Kỹ thuật lập trình 1.2.3.1 I­P­O Cycle (Input­Pprocess­Output Cycle) (Quy trình nhập­xử lý­ xuất) Quy trình x lý c b n c a máy tính g m I-P-O.ử ơ ả ủ ồ Ví d 2ụ : Xác đ nh Input, Process, Output c a vi c làm 1 ly n c chanh nóngị ủ ệ ướ Input : ly, đ ng, chanh, n c nóng, mu ng.ườ ướ ỗ Process : - cho h n h p đ ng, chanh, n c nóng vào ly.ỗ ợ ườ ướ - dùng mu ng khu y đ u.ỗ ấ ề Output : ly chanh nóng đã s n sàng đ dùng.ẵ ể Ví d 3ụ : Xác đ nh Input, Process, Outputị c a ch ng trình tính ti n l ng công nhânủ ươ ề ươ tháng 10/2002 bi t r ng l ng = l ng căn b n * ngày côngế ằ ươ ươ ả Input : l ng căn b n, ngày côngươ ả Process : nhân l ng căn b n v i ngày côngươ ả ớ Output : l ngươ Ví d 4ụ : Xác đ nh Input, Process, Output c a ch ng trình gi i ph ng trình b c nh tị ủ ươ ả ươ ậ ấ ax + b = 0 Input : h s a, bệ ố Process : chia – b cho a Output : nghi m xệ Ví d 5ụ : Xác đ nh Input, Process, Output c a ch ng trình tìm s l n nh t c a 2 s a vàị ủ ươ ố ớ ấ ủ ố b. Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Process OutputInput Giáo trình L p trình C căn b nậ ả Trang 10 Input : a, b Process : N u a > b thì ế Output = a l n nh tớ ấ Ng c l i ượ ạ Output = b l n nh tớ ấ  Bài t pậ Xác đ nh Input, Process, Output c a các ch ng trình sau:ị ủ ươ 1. Đ i t ti n VND sang ti n USD.ổ ừ ề ề 2. Tính đi m trung bình c a h c sinh g m các môn Toán, Lý, Hóa.ể ủ ọ ồ 3. Gi i ph ng trình b c 2: axả ươ ậ 2 + bx + c = 0 4. Đ i t đ sang radian và đ i t radian sang đổ ừ ộ ổ ừ ộ (công th c ứ α/pi = a/180, v i ớ α: radian, a: đ )ộ 5. Ki m tra 2 s a, b gi ng nhau hay khác nhau.ể ố ố 1.2.3.2 Sử dụng lưu đồ (Flowchart) Đ d h n v quy trình x lý, các nhà l p trình đ a ra d ng l u đ đ minh h a t ngể ễ ơ ề ử ậ ư ạ ư ồ ể ọ ừ b c quá trình x lý m t v n đ (bài toán).ướ ử ộ ấ ề Hình d ng (symbol)ạ Hành đ ng (Activity)ộ D li u vào (Input)ữ ệ X lý (Process)ử D li u ra (Output)ữ ệ Quy t đ nh (Decision), s d ng đi u ki nế ị ử ụ ề ệ Lu ng x lý (Flow lines)ồ ử G i CT con, hàm… (Procedure, Function…)ọ B t đ u, k t thúc (Begin, End)ắ ầ ế Đi m ghép n i (Connector)ể ố Ví d 6ụ : Chu n b cà phêẩ ị Ví d 7ụ : Mô t ví d 3ả ụ Ví d 8ụ : Mô t ví d 4ả ụ Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com B t đ uắ ầ K t thúcế Cà phê, n c sôiướ Hòa cà phê vào n c sôiướ B đ ng vàoỏ ườ Khu y đ u h n h pấ ề ỗ ợ Cà phê đã s n sàngẵ B t đ uắ ầ K t thúcế LCB, ngày công Nhân LCB v i ngày côngớ K t qu l ngế ả ươ B t đ uắ ầ K t thúcế Giá tr a, bị Chia –b cho a Nghi m xệ Giáo trình L p trình C căn b nậ ả Trang 11 Ví d 9ụ : C ng 2 sộ ố Ví d 10ụ : so sánh 2 số Ví d 11ụ : Ki m tra tính h p l c a đi mể ợ ệ ủ ể Ví d 12ụ : X p lon vào thùngế Ví d 13ụ : Ki m tra lo i sể ạ ố Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com B t đ uắ ầ K t thúcế a, b c = a + b c B t đ uắ ầ K t thúcế S a, S bố ố S a b ng S bố ằ ố S a có b ngố ằ S b không?ố S a không b ng S bố ằ ố Có Không B t đ uắ ầ K t thúcế Đi mể Đi m h p lể ợ ệ Đi m >=0 vàể Đi m <=10 ?ể Đi m không h p lể ợ ệ Có Không B t đ uắ ầ K t thúcế Số S d ngố ươS > 0 ?ố Có S < 0 ?ố S âmốCó S khôngố Không Không B t đ uắ ầ K t thúcế Thùng = 24 Lon?Ch aư Thùng = 0 Lon 1 Lon Thêm 1 Lon vào thùng B ngằ Giáo trình L p trình C căn b nậ ả Trang 12 Ví d 14ụ : Ki m tra tính h p l c a đi mể ợ ệ ủ ể  Bài t pậ V l u đ cho các ch ng trình sau:ẽ ư ồ ươ 1. Đ i t ti n VND sang ti n USD.ổ ừ ề ề 2. Tính đi m trung bình c a h c sinh g m các môn Toán, Lý, Hóa.ể ủ ọ ồ 3. Gi i ph ng trình b c 2: axả ươ ậ 2 + bx + c = 0 4. Đ i t đ sang radian và đ i t radian sang đổ ừ ộ ổ ừ ộ (công th c ứ α/pi = a/180, v i ớ α: radian, a: đ )ộ 5. Ki m tra 2 s a, b gi ng nhau hay khác nhau.ể ố ố Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com B t đ uắ ầ K t thúcế Sai Đi mể Đúng Đi m >=0 vàể Đi m <=10 ?ể Giáo trình L p trình C căn b nậ ả Trang 13 Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 14 Bài 2 : LÀM QUEN LẬP TRÌNH C QUA CÁC VÍ DỤ ĐƠN GIẢN 2.1 Mục tiêu Sau khi hoàn t t bài này h c viên s hi u và v n d ng các ki n th c kĩ năng c b n sau:ấ ọ ẽ ể ậ ụ ế ứ ơ ả - Ngôn ng C.ữ - M t s thao tác c b n c a trình so n th o C.ộ ố ơ ả ủ ạ ả - Cách l p trình trên C.ậ - Ti p c n m t s l nh đ n gi n thông qua các ví d .ế ậ ộ ố ệ ơ ả ụ - N m b t đ c m t s k năng đ n gi n.ắ ắ ượ ộ ố ỹ ơ ả 2.2 Nội dung 2.2.1 Khởi động và thoát BorlandC 2.2.1.1 Khởi động   Nh p l nh t i d u nh c DOS: ậ ệ ạ ấ ắ gõ BC ↵ (Enter) (n u đ ng d n đã đ c cài đ t b ngế ườ ẫ ượ ặ ằ l nh ệ path trong đó có ch a đ ng d n đ n th m c ch a t p tin BC.EXE). N u đ ng d nứ ườ ẫ ế ư ụ ứ ậ ế ườ ẫ ch a đ c cài đ t ta tìm xem th m c BORLANDC n m đĩa nào. Sau đó ta gõ l nh sau:ư ượ ặ ư ụ ằ ở ổ ệ :\BORLANDC\BIN\BC ổ ↵ (Enter) N u b n mu n v a kh i đ ng BC v a so n th o ch ng trình v i m t t p tin có tên doế ạ ố ừ ở ộ ừ ạ ả ươ ớ ộ ậ chúng ta đ t, thì gõ l nh: ặ ệ BC [đ ng d n]ườ ẫ ầ ạ ả , n u tên file c n so nế ầ ạ th o đã có thì đ c n p lên, n u ch a có s đ c t o m i.ả ượ ạ ế ư ẽ ượ ạ ớ    Kh i đ ng t i Windows: B n vào menu Start, ch n Run, b n gõ vào h p Open 1 trongở ộ ạ ạ ọ ạ ộ các dòng l nh nh nh p t i DOS. Ho c b n vào Window Explorer, ch n đĩa ch a th m cệ ư ậ ạ ặ ạ ọ ổ ứ ư ụ BORLANDC, vào th m c BORLANDC, vào th m c BIN, kh i đ ng t p tin BC.EXE.ư ụ ư ụ ở ộ ậ Ví dụ: B n gõ D:\BORLANDC\BIN\BC E:\BAITAP_BC\VIDU1.CPPạ Câu l nh trên có nghĩa kh i đ ng BC và n p t p tin VIDU1.CPP ch a trong th m cệ ở ộ ạ ậ ứ ư ụ BAITAP_BC trong đĩa E. N u t p tin này không có s đ c t o m i.ổ ế ậ ẽ ượ ạ ớ Màn hình sau khi kh i đ ng thành côngở ộ File Edit Search Run Compile Debug Project Option Window Help NONAME00.CPP Thanh Menu H p đóngộ Tên t p tinậ S c a c a số ủ ử ổ H p n i r ng c a sộ ớ ộ ử ổ Đây là vùng so n th o ch ng trìnhạ ả ươ T p tin ch a l uậ ư ư Thanh tr t d cượ ọ T a đ hàng:c tọ ộ ộ Thanh tr t ngangượ Thanh ch c năngứ Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com [] [↑]1 1:1* Giáo trình L p trình C căn b nậ ả Trang 15 F1 Help F2 Save F3 Open Alt - F9 Compile F9 Make F10 Menu 2.2.1.2 Thoát    n phím Ấ F10 (kích ho t Menu), ch n menu ạ ọ File, ch n ọ Quit; Ho c n t h p phím ặ ấ ổ ợ Alt – X. 2.2.2 Các ví dụ đơn giản 2.2.2.1 Ví dụ 1 Dòng File Edit Search Run Compile Debug Project Option Window Help 1 2 3 4 5 6 7 /* Chuong trinh in ra cau bai hoc C dau tien */ #include void main(void) { printf("Bai hoc C dau tien."); } F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu  K t qu in ra màn hìnhế ả Bai hoc C dau tien. _    Dòng th 1ứ : b t đ u b ng ắ ầ ằ /* và k t thúc b ng ế ằ */ cho bi t hàng này là hàng di n gi i (chúế ễ ả thích). Khi d ch và ch y ch ng trình, dòng này không đ c d ch và cũng không thi hành l nh gì c .ị ạ ươ ượ ị ệ ả M c đích c a vi c ghi chú này giúp ch ng trình rõ ràng h n. Sau này b n đ c l i ch ng trìnhụ ủ ệ ươ ơ ạ ọ ạ ươ bi t ch ng trình làm gì.ế ươ Dòng th 2ứ : ch a phát bi u ti n x lý ứ ể ề ử #include . Vì trong ch ng trình này taươ s d ng hàm th vi n c a C là ử ụ ư ệ ủ printf, do đó b n c n ph i có khai báo c a hàm th vi n này đạ ầ ả ủ ư ệ ể báo cho trình biên d ch C bi t. ị ế N u không khai báo ch ng trình s báo l iế ươ ẽ ỗ . Dòng th 3ứ : hàng tr ng vi t ra v i ý đ làm cho b ng ch ng trình thoáng, d đ c.ắ ế ớ ồ ả ươ ễ ọ Dòng th 4ứ : void main(void) là thành ph n chính c a m i ch ng trình C (b n có th vi tầ ủ ọ ươ ạ ể ế main() ho c void main() ho c main(void)). Tuy nhiên, b n nên vi t theo d ng ặ ặ ạ ế ạ void main(void) để ch ng trình rõ ràng h n. ươ ơ M i ch ng trình C đ u b t đ u thi hành t hàm mainọ ươ ề ắ ầ ừ . C p d u ngo cặ ấ ặ () cho bi t đây là kh i hàm (function). Hàm void main(void) có t khóa void đ u tiên cho bi t hàmế ố ừ ầ ế này không tr v giá tr , t khóa void trong ngo c đ n cho bi t hàm này không nh n vào đ i s .ả ề ị ừ ặ ơ ế ậ ố ố Dòng th 5 và 7ứ : c p d u ngo c móc {} gi i h n thân c a hàm. Thân hàm b t đ u ặ ấ ặ ớ ạ ủ ắ ầ b ngằ d u { và k t thúc b ng d u }ấ ế ằ ấ . Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 16 Dòng th 6ứ : printf("Bai hoc C dau tien.");, ch th cho máy in ra chu i ký t n m trongỉ ị ỗ ự ằ nháy kép (""). Hàng này đ c g i là m t câu l nh, ượ ọ ộ ệ k t thúc m t câu l nh trong C ph i là d uế ộ ệ ả ấ ch m ph yấ ẩ (;).  Chú ý:  Các t include, stdio.h, void, main, printf ph i vi t b ng chừ ả ế ằ ữ th ng.ườ  Chu i trong nháy kép c n in ra "B n có th vi t ch HOA,ỗ ầ ạ ể ế ữ th ng tùy, ý".ườ  K t thúc câu l nh ph i có d u ch m ph y.ế ệ ả ấ ấ ẩ  K t thúc tên hàm không có d u ch m ph y ho c b t c d u gì.ế ấ ấ ẩ ặ ấ ứ ấ  Ghi chú ph i đ t trong c p /* …. */, ho c //.ả ặ ặ ặ  Thân hàm ph i đ c bao b i c p { }.ả ượ ở ặ  Các câu l nh trong thân hàm ph i vi t th t vào.ệ ả ế ụ ụ B n nh p đo n ch ng trình trên vào máy. D ch, ch y và quan sát k t qu .ạ ậ ạ ươ ị ạ ế ả Ctrl – F9: D ch và ch y ch ng trình. ị ạ ươ Alt – F5: Xem màn hình k t qu .ế ả ả Sau khi b n nh p xong đo n ch ng trình vào máy. B n ạ ậ ạ ươ ạ n và gi phím Ctrl, gõ F9Ấ ữ để d ch và ch y ch ng trình. Khi đó b n th y ch ng trình ch p r t nhanh và không th y k t quị ạ ươ ạ ấ ươ ớ ấ ấ ế ả gì c . ả B n n và gi phím Alt, gõ F5ạ Ấ ữ đ xem k t qu , khi xem xong, b n n phím b t kỳ để ế ả ạ ấ ấ ể quay v màn hình so n th o ch ng trình.ề ạ ả ươ ơ Bây gi b n s a l i dòng th 6 b ng câu l nh printf("Bai hoc C dau tien.\n");, sau đóờ ạ ử ạ ứ ằ ệ d ch và ch y l i ch ng trình, quan sát k t qu .ị ạ ạ ươ ế ả  K t qu in ra màn hìnhế ả Bai hoc C dau tien. _ dòng b n v a s a có thêm \n, \n là ký hi u xu ng dòng s d ng trong l nh printf. SauỞ ạ ừ ử ệ ố ử ụ ệ đây là m t s ký hi u khác.ộ ố ệ + Các kí t đi u khi nự ề ể : \n : Nh y xu ng dòng k ti p canh v c t đ u tiên.ả ố ế ế ề ộ ầ \t : Canh c t tab ngang.ộ \r : Nh y v đ u hàng, không xu ng hàng.ả ề ầ ố \a : Ti ng kêu bip.ế + Các kí t đ c bi tự ặ ệ : \\ : In ra d u \ấ \" : In ra d u "ấ \' : In ra d u 'ấ ấ Bây gi b n s a l i dòng th 6 b ng câu l nh printf("\tBai hoc C dau tien.\a\n");, sau đóờ ạ ử ạ ứ ằ ệ d ch và ch y l i ch ng trình, quan sát k t qu .ị ạ ạ ươ ế ả  K t qu in ra màn hìnhế ả Bai hoc C dau tien. Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 17 _ Khi ch y ch ng trình b n nghe ti ng bip phát ra t loa.ạ ươ ạ ế ừ ừ M i khi ch y ch ng trình b n th y r t b t ti n trong vi c xem k t qu ph i n tỗ ạ ươ ạ ấ ấ ấ ệ ệ ế ả ả ấ ổ h p phím Alt – F5. Đ kh c ph c tình tr ng này b n s a l i ch ng trình nh sau:ợ ể ắ ụ ạ ạ ử ạ ươ ư Dòng File Edit Search Run Compile Debug Project Option Window Help 1 2 3 4 5 6 7 8 9 /* Chuong trinh in ra cau bai hoc C dau tien */ #include #include void main(void) { printf("\t\tBai hoc C \rdau tien.\n"); getch(); } F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu  K t qu in ra màn hìnhế ả dau tien. Bai hoc C _ Dòng th 3ứ : ch a phát bi u ti n x lý ứ ể ề ử #include . Vì trong ch ng trình này taươ s d ng hàm th vi n c a C là ử ụ ư ệ ủ getch, do đó b n c n ph i có khai báo c a hàm th vi n này đạ ầ ả ủ ư ệ ể báo cho trình biên d ch C bi t. ị ế N u không khai báo ch ng trình s báo l iế ươ ẽ ỗ . Dòng th 8ứ : getch();, ch nh n 1 ký t b t kỳ t bàn phím, nh ng không in ra màn hình.ờ ậ ự ấ ừ ư Vì th ta s d ng hàm này đ khi ch y ch ng trình xong s d ng l i màn hình k t qu , sauế ử ụ ể ạ ươ ẽ ừ ạ ở ế ả đó ta n phím b t kỳ s quay l i màn hình so n th o.ấ ấ ẽ ạ ạ ả ả B n nh p đo n ch ng trình trên vào máy. D ch, ch y và quan sát k t qu .ạ ậ ạ ươ ị ạ ế ả 2.2.2.2 Ví dụ 2 Dòng File Edit Search Run Compile Debug Project Option Window Help 1 2 3 4 5 6 7 8 9 10 11 12 /* Chuong trinh nhap va in ra man hinh gia tri bien*/ #include #include void main(void) { int i; printf("Nhap vao mot so: "); scanf("%d", &i); printf("So ban vua nhap la: %d.\n", i); getch(); } F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu  K t qu in ra màn hìnhế ả Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 18 Nhap vao mot so: 15 So ban vua nhap la: 15. _ Dòng th 7ứ : int i; là l nh khai báo, m u t i g i là tên bi n. Bi n là m t v trí trong bệ ẫ ự ọ ế ế ộ ị ộ nh dùng l u tr giá tr nào đó mà ch ng trình s l y đ s d ng. M i bi n ph i thu c m tớ ư ữ ị ươ ẽ ấ ể ử ụ ỗ ế ả ộ ộ ki u d li u. Trong tr ng h p này ta s d ng bi n i ki u s nguyên (integer) vi t t t là int.ể ữ ệ ườ ợ ử ụ ế ể ố ế ắ Dòng th 9ứ : scanf("%d", &i). S d ng hàm scanf đ nh n t ng i s d ng m t tr nàoử ụ ể ậ ừ ườ ử ụ ộ ị đó. Hàm scanf trên có 2 đ i m c. Đ i m c ố ụ ố ụ "%d" đ c g i là chu i đ nh d ng, cho bi t lo i dượ ọ ỗ ị ạ ế ạ ữ ki n mà ng i s d ng s nh p vào. Ch ng h n, đây ph i nh p vào là s nguyên. Đ i m cệ ườ ử ụ ẽ ậ ẳ ạ ở ả ậ ố ố ụ th 2 ứ &i có d u & đi đ u g i là address operator, d u & ph i h p v i tên bi n cho hàm scanfấ ầ ọ ấ ố ợ ớ ế bi n đem tr gõ t bàn phím l u vào bi n i.ế ị ừ ư ế Dòng th 10ứ : printf("So ban vua nhap la: %d.\n", i);. Hàm này có 2 đ i m c. Đ i m cố ụ ố ụ th nh t là m t chu i đ nh d ng có ch a chu i văn b n ứ ấ ộ ỗ ị ạ ứ ỗ ả So ban vua nhap la: và %d (ký hi uệ khai báo chuy n đ i d ng th c) cho bi t s nguyên s đ c in ra. Đ i m c th 2 là i cho bi tể ổ ạ ứ ế ố ẽ ượ ố ụ ứ ế giá tr l y t bi n i đ in ra màn hình.ị ấ ừ ế ể ể B n nh p đo n ch ng trình trên vào máy. D ch, ch y và quan sát k t qu .ạ ậ ạ ươ ị ạ ế ả 2.2.2.3 Ví dụ 3 Dòng File Edit Search Run Compile Debug Project Option Window Help 1 2 3 4 5 6 7 8 9 10 11 12 13 14 /* Chuong trinh nhap vao 2 so a, b in ra tong*/ #include #include void main(void) { int a, b; printf("Nhap vao so a: "); scanf("%d", &a); printf("Nhap vao so b: "); scanf("%d", &b); printf("Tong cua 2 so %d va %d la %d.\n", a, b, a+b); getch(); } F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu  K t qu in ra màn hìnhế ả Nhap vao so a: 4 Nhap vao so b: 14 Tong cua 2 so 4 va 14 la 18. _ Dòng th 12ứ : printf("Tong cua 2 so %d va %d la %d.\n", a, b, a+b); Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 19 1 B n nh p đo n ch ng trình trên vào máy. D ch, ch y và quan sát k t qu .ạ ậ ạ ươ ị ạ ế ả 2.2.2.4 Ví dụ 4 Dòng File Edit Search Run Compile Debug Project Option Window Help 1 2 3 4 5 6 7 8 9 10 11 12 13 14 /* Chuong trinh nhap vao ban kinh hinh tron. Tinh dien tich */ #include #include #define PI 3.14 void main(void) { float fR; printf("Nhap vao ban kinh hinh tron: "); scanf("%f", &fR); printf("Dien tich hinh tron: %.2f.\n", 2*PI*fR); getch(); } F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu  K t qu in ra màn hìnhế ả Nhap vao ban kinh hinh tron: 1 Dien tich hinh tron: 6.28 _ Dòng th 5ứ : #define PI 3.14, dùng ch th define đ đ nh nghĩa h ng s PI có giá trỉ ị ể ị ằ ố ị 3.14. Tr c define ph i có d u # và cu i dòng không có d u ch m ph yướ ả ấ ố ấ ấ ẩ . Dòng th 12ứ : printf("Dien tich hinh tron: %.2f.\n", 2*PI*fR);. Hàm này có 2 đ i m c.ố ụ Đ i m c th nh t là m t chu i đ nh d ng có ch a chu i văn b n ố ụ ứ ấ ộ ỗ ị ạ ứ ỗ ả Dien tich hinh tron: và %.2f (ký hi u khai báo chuy n đ i d ng th c) cho bi t d ng s ch m đ ng s đ c in ra, trong đó ệ ể ổ ạ ứ ế ạ ố ấ ộ ẽ ượ .2 nghĩa là in ra v i 2 s l . Đ i m c th 2 là bi u th c h ng ớ ố ẻ ố ụ ứ ể ứ ằ 2*PI*fR; ; B n nh p đo n ch ng trình trên vào máy. D ch, ch y và quan sát k t qu .ạ ậ ạ ươ ị ạ ế ả Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 20 Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 21 Bài 3 : CÁC THÀNH PHẦN TRONG NGÔN NGỮ C 3.1 Mục tiêu Sau khi hoàn t t bài này h c viên s hi u và v n d ng các ki n th c kĩ năng c b n sau:ấ ọ ẽ ể ậ ụ ế ứ ơ ả - Khái ni m t khóaệ ừ - Các ki u d li uể ữ ệ - Cách ghi chú - Đ t tên bi nặ ế - Khai báo bi n.ế - Ph m vi s d ng bi n.ạ ử ụ ế 3.2 Nội dung 3.2.1 Từ khóa T khóa là t có ý nghĩa xác đ nh dùng đ khai báo d li u, vi t câu l nh… Trong C có cácừ ừ ị ể ữ ệ ế ệ t khóa sau:ừ asm break case cdecl char const continue default do double else enum extern far float for goto huge if int interrupt long near pascal register return short static struct signed sizeof switch typedef union unsigned void volatile while  Các t khóa ph i vi t b ng ừ ả ế ằ ch th ngữ ườ 3.2.2 Tên Khái ni m tên r t quan tr ng trong quá trình l p trình, nó không nh ng th hi n rõ ý nghĩaệ ấ ọ ậ ữ ể ệ trong ch ng trình mà còn dùng đ xác đ nh các đ i l ng khác nhau khi th c hi n ch ngươ ể ị ạ ượ ự ệ ươ trình. Tên th ng đ c đ t cho h ng, bi n, m ng, con tr , nhãn… Chi u dài t i đa c a tên làườ ượ ặ ằ ế ả ỏ ề ố ủ 32 ký t .ự Tên bi n h p l là m t chu i ký t liên t c g m: ế ợ ệ ộ ỗ ự ụ ồ Ký t ch , s và d u g ch d iự ữ ố ấ ạ ướ . Ký tự đ u c a tên ph i là ầ ủ ả ch ho c d u g ch d iữ ặ ấ ạ ướ . Khi đ t tên không đ c đ t trùng v i các tặ ượ ặ ớ ừ khóa. Ví d 1ụ : Các tên đúng: delta, a_1, Num_ODD, Case Các tên sai: 3a_1 (ký t đ u là s )ự ầ ố num-odd (s d ng d u g ch ngang)ử ụ ấ ạ int (đ t tên trùng v i t khóa)ặ ớ ừ del ta (có kho ng tr ng)ả ắ f(x) (có d u ngo c tròn)ấ ặ L u ýư : Trong C, tên phân bi t ch hoa, ch th ngệ ữ ữ ườ Ví d 2ụ : number khác Number Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 22 case khác Case (case là t khóa, do đó b n đ t tên là Case v n đúng) ừ ạ ặ ẫ 3.2.3 Kiểu dữ liệu Có 4 ki u d li u c b n trong C là: char, int, float, double.ể ữ ệ ơ ả TT Ki u d li uể ữ ệ(Type) Kích th cướ (Length) Mi n giá trề ị (Range) 1 2 3 4 5 6 7 8 9 10 11 unsigned char char enum unsigned int short int int unsigned long long float double long double 1 byte 1 byte 2 bytes 2 bytes 2 bytes 2 bytes 4 bytes 4 bytes 4 bytes 8 bytes 10 bytes 0 đ nế 255 – 128 đ nế 127 – 32,768 đ nế 32,767 0 đ nế 65,535 – 32,768 đ nế 32,767 – 32,768 đ nế 32,767 0 đ nế 4,294,967,295 – 2,147,483,648 đ nế 2,147,483,647 3.4 * 10–38 đ nế 3.4 * 1038 1.7 * 10–308 đ nế 1.7 * 10308 3.4 * 10–4932 đ nế 1.1 * 104932 3.2.4 Ghi chú Trong khi l p trình c n ph i ghi chú đ gi i thích các bi n, h ng, thao tác x lý giúp choậ ầ ả ể ả ế ằ ử ch ng trình rõ ràng d hi u, d nh , d s a ch a và đ ng i khác đ c vào d hi u. Trong Cươ ễ ể ễ ớ ễ ử ữ ể ườ ọ ễ ể có các ghi chú sau: // ho c /* n i dung ghi chú */ặ ộ Ví d 3ụ : void main() { int a, b; //khai bao bien t kieu int a = 1; //gan 1 cho a b =3; //gan 3 cho b /* thuat toan tim so lon nhat la neu a lon hon b thi a lon nhat nguoc lai b lon nhat */ if (a > b) printf("max: %d", a); else printf("max: %d", b); } Khi biên d ch ch ng trình, C g p c p d u ghi chú s không d ch ra ngôn ng máy.ị ươ ặ ặ ấ ẽ ị ữ Tóm l i, đ i v i ghi chú d ng // dùng đ ghi chú m t hàng và d ng /* …. */ có th ghi chúạ ố ớ ạ ể ộ ạ ể m t hàng ho c nhi u hàng.ộ ặ ề 3.2.5 Khai báo biến 3.2.5.1 Tên biến Cách đ t tên bi n nh m c 2.ặ ế ư ụ 3.2.5.2 Khai báo biến Cú pháp Ki u d li uể ữ ệ Danh sách tên bi nế ;  Ki u d li u: 1 trong các ki u m c 3ể ữ ệ ể ở ụ Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 23 Danh sách tên bi n: g m các tên bi n có cùng ki u d li u, m i tên bi n cách nhau d uế ồ ế ể ữ ệ ỗ ế ấ ph y (,), cu i cùng là d u ch m ph y (;).ẩ ố ấ ấ ẩ  Khi khai báo bi n nên đ t tên bi n theo ế ặ ế quy t c Hungarian Notationắ Ví d 4ụ : int ituoi; //khai báo bi n ituoi có ki u intế ể float fTrongluong; //khai báo bi n fTrongluong có ki u longế ể char ckitu1, ckitu2;//khai báo bi n ckitu1, ckitu2 có ki u charế ể Các bi n khai báo trên theo quy t c Hungarian Notation. Nghĩa là bi n ituoi là ki u int, b nế ắ ế ể ạ thêm ch ữ i (kí t đ u c a ki u) vào đ u tên bi n ự ầ ủ ể ầ ế tuoi đ trong quá trình l p trình ho c sau nàyể ậ ặ xem l i, s a ch a… b n d dàng nh n ra bi n ạ ử ữ ạ ễ ậ ế ituoi có ki u int ể mà không c n ph i di chuy nầ ả ể đ n ph n khai báo m i bi t ki .u c a bi n này. T ng t cho bi n ế ầ ớ ế ể ủ ế ươ ự ế fTrongluong, b n nhìn vàoạ là bi t ngay bi n này có ki u ế ế ể float. 3.2.5.3 Vừa khai báo vừa khởi gán Có th k t h p vi c khai báo v i toán t gán đ bi n nh n ngay giá tr cùng lúc v i khaiể ế ợ ệ ớ ử ể ế ậ ị ớ báo. Ví d 5ụ : Khai báo tr c, gán giá tr sauướ ị : void main() { int a, b, c; a = 1; b = 2; c = 5; … } V a khai báo v a gán giá trừ ừ ị: void main() { int a = 1, b = 2, c = 5; … } 3.2.5.4 Phạm vi của biến Khi l p trình, b n ph i n m rõ ph m vi c a bi n. N u khai báo và s d ng không đúng,ậ ạ ả ắ ạ ủ ế ế ử ụ không rõ ràng s d n đ n sai sót khó ki m soát đ c, vì v y b n c n ph i xác đ nh đúng v trí,ẽ ẫ ế ể ượ ậ ạ ầ ả ị ị ph m vi s d ng bi n tr c khi s d ng bi n.ạ ử ụ ế ướ ử ụ ế Khai báo bi n ngoài (bi n toàn c c): V trí bi n đ t bên ngoài t t c các hàm, c u trúc...ế ế ụ ị ế ặ ấ ả ấ Các bi n này có nh h ng đ n toàn b ch ng trình. Chu trình s ng c a nó là b t đ u ch yế ả ưở ế ộ ươ ố ủ ắ ầ ạ ch ng trình đ n lúc k t thúc ch ng trình.ươ ế ế ươ Khai báo bi n trong (bi n c c b ): V trí bi n đ t bên trong hàm, c u trúc…. Ch nhế ế ụ ộ ị ế ặ ấ ỉ ả h ng n i b bên trong hàm, c u trúc đó…. Chu trình s ng c a nó b t đ u t lúc hàm, c u trúcưở ộ ộ ấ ố ủ ắ ầ ừ ấ đ c g i th c hi n đ n lúc th c hi n xong.ượ ọ ự ệ ế ự ệ Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 24 Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 25 Bài 4 : NHẬP / XUẤT DỮ LIỆU 4.1 Mục tiêu Sau khi hoàn t t bài này h c viên s hi u và v n d ng các ki n th c kĩ năng c b n sau:ấ ọ ẽ ể ậ ụ ế ứ ơ ả - Ý nghĩa, cách s d ng hàm printf, scanfử ụ - S d ng khuôn d ng, ký t đ c bi t, ký t đi u khi n trong printf, scanf.ử ụ ạ ự ặ ệ ự ề ể 4.2 Nội dung 4.2.1 Hàm printf K t xu t d li u đ c đ nh d ng.ế ấ ữ ệ ượ ị ạ Cú pháp printf ("chu i đ nh d ng"[, đ i m c 1, đ i m c 2,…]);ỗ ị ạ ố ụ ố ụ  Khi s d ng hàm ph i khai báo ti n x lý ử ụ ả ề ử #include  printf: tên hàm, ph i vi t b ng ch th ng.ả ế ằ ữ ườ  đ i m c 1,…: là các m c d ki n c n in ra màn hình. Các đ i m c này có th làố ụ ụ ữ ệ ầ ố ụ ể bi n, h ng ho c bi u th c ph i đ c đ nh tr tr c khi in ra.ế ằ ặ ể ứ ả ượ ị ị ướ  chu i đ nh d ng: đ c đ t trong c p nháy kép (" "), g m 3 lo i:ỗ ị ạ ượ ặ ặ ồ ạ + Đ i v i ố ớ chu i kí tỗ ự ghi nh th nào in ra gi ng nh v y.ư ế ố ư ậ + Đ i v i nh ng ố ớ ữ kí t chuy n đ i d ng th cự ể ổ ạ ứ cho phép k t xu t giá tr c a các đ iế ấ ị ủ ố m c ụ ra màn hình t m g i là mã đ nh d ng. Sau đây là các d u mô t đ nh d ng:ạ ọ ị ạ ấ ả ị ạ %c : Ký t đ nự ơ %s : Chu iỗ %d : S nguyên th p phân có d uố ậ ấ %f : S ch m đ ng (ký hi u th p phân)ố ấ ộ ệ ậ %e : S ch m đ ng (ký hi u có s mũ)ố ấ ộ ệ ố %g : S ch m đ ng (%f hay %g)ố ấ ộ %x : S nguyên th p phân không d uố ậ ấ %u : S nguyên hex không d uố ấ %o : S nguyên bát phân không d uố ấ l : Ti n t dùng kèm v i %d, %u, %x, %o đ ch s nguyên dài (ví d %ld)ề ố ớ ể ỉ ố ụ + Các ký t đi u khi n và ký t đ c bi tự ề ể ự ặ ệ \n : Nh y xu ng dòng k ti p canh v c t đ u tiên.ả ố ế ế ề ộ ầ \t: Canh c t tab ngang.ộ \r : Nh y v đ u hàng, không xu ng hàng.ả ề ầ ố \a : Ti ng kêu bip.ế \\ : In ra d u \ấ \" : In ra d u "ấ \' : In ra d u 'ấ %%: In ra d u %ấ Ví d 1ụ : printf("Bai hoc C dau tien. \n"); Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 26 ký t đi u khi nự ề ể chu i ký tỗ ự  K t qu in ra màn hìnhế ả Bai hoc C dau tien. _ Ví d 2ụ : printf("Ma dinh dang \\\" in ra dau \" . \n"); ký t đi u khi nự ề ể ký t đ c bi tự ặ ệ chu i ký tỗ ự  K t qu in ra màn hìnhế ả Ma dinh dang \" in ra dau ". _ Ví d 3ụ : gi s bi n i có giá tr = 5ả ử ế ị xu t giá tr bi n iấ ị ế printf("So ban vua nhap la: %d . \n", i); đ i m c là bi n (ki u int)ố ụ ế ể ký t đi u khi nự ề ể chu i ký tỗ ự mã đ nh d ng (ki u int)ị ạ ể  K t qu in ra màn hìnhế ả So ban vua nhap la: 5. _ Ví d 4ụ : gi s bi n a có giá tr = 7 và b có giá tr = 4ả ử ế ị ị xu t giá tr bi u th c a+bấ ị ể ứ xu t giá tr bi n bấ ị ế xu t giá tr bi n aấ ị ế printf("Tong cua 2 so %d va %d la %d . \n", a, b, a+b); đ i m c 3 là bi u th c cóố ụ ể ứ giá tr là ki u intị ể đ i m c 1, 2 là bi n (ki u int)ố ụ ế ể ký t đi u khi nự ề ể chu i ký tỗ ự mã đ nh d ng (ki u int)ị ạ ể  K t qu in ra màn hìnhế ả Tong cua 2 so 7 va 4 la 11. _ Ví d 5ụ : s a l i ví d 4ử ạ ụ Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 27 printf("Tong cua 2 so %5d va %3d la %1d . \n", a, b, a+b); B r ng tr ngề ộ ườ  K t qu in ra màn hìnhế ả Tong cua 2 so 7 va 4 la 11. _ 2 kí t (m c dù đ nh d ng là 1)ự ặ ị ạ 3 kí tự 5 kí tự Ví d 6ụ : s a l i ví d 5ử ạ ụ printf("Tong cua 2 so %-5d va %-3d la %-1d . \n", a, b, a+b);  K t qu in ra màn hìnhế ả Tong cua 2 so 7 va 4 la 11. _ 2 kí t (m c dù đ nh d ng là 1)ự ặ ị ạ 3 kí t ự 5 kí t ự  D u tr tr c b r ng tr ng s kéo k t qu sang tráiấ ừ ướ ề ộ ườ ẽ ế ả Ví d 7ụ : s a l i ví d 4ử ạ ụ printf("Tong cua 2 so %02d va %02d la %04d . \n", a, b, a+b);  K t qu in ra màn hìnhế ả Tong cua 2 so 07 va 04 la 0011. _ thêm 2 s 0 tr c -> đ 4 kí tố ướ ủ ự thêm 1 s 0 tr c -> đ 2 kí tố ướ ủ ự thêm 1 s 0 tr c -> đ 2 kí tố ướ ủ ự Ví d 8ụ : gi s int a = 6, b = 1234, c = 62ả ử printf("%7d%7d%7d.\n", a, b, c); printf("%7d%7d%7d.\n", 165, 2, 965);  K t qu in ra màn hìnhế ả 6 1234 62 165 2 965 _ S canh v bên ph i b r ng tr ng.ố ề ả ề ộ ườ printf("%-7d%-7d%-7d.\n", a, b, c); printf("%-7d%-7d%-7d.\n", 165, 2, 965);  K t qu in ra màn hìnhế ả Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 28 6 1234 62 165 2 965 _ S canh v bên trái b r ng tr ng.ố ề ề ộ ườ Ví d 9ụ : gi s float a = 6.4, b = 1234.56, c = 62.3ả ử printf("%7.2d%7.2d%7.2d.\n", a, b, c); s s lố ố ẻ  K t qu in ra màn hìnhế ả 6.40 1234.56 62.30 _ S canh v bên ph i b r ng tr ng.ố ề ả ề ộ ườ 7 kí tự  B r ng tr ng bao g m: ph n nguyên, ph n l và d u ch m đ ngề ộ ườ ồ ầ ầ ẻ ấ ấ ộ Ví d 10ụ : gi s float a = 6.4, b = 1234.55, c = 62.34ả ử printf("%10.1d%10.1d%10.1d.\n", a, b, c); printf("%10.1d%10.1d%10.1d.\n", 165, 2, 965);  K t qu in ra màn hìnhế ả 6.4 1234.6 62.3 165.0 2.0 965.0 _ S canh v bên ph i b r ng tr ng.ố ề ả ề ộ ườ printf("%-10.2d%-10.2d%-10.2d.\n", a, b, c); printf("%-10.2d%-10.2d%-10.2d.\n", 165, 2, 965);  K t qu in ra màn hìnhế ả 6.40 1234.55 62.34 165.00 2.00 965.00 _ S canh v bên trái b r ng tr ng.ố ề ề ộ ườ 4.2.2 Hàm scanf Đ nh d ng khi nh p li u.ị ạ ậ ệ Cú pháp scanf ("chu i đ nh d ng"[, đ i m c 1, đ i m c 2,…]);ỗ ị ạ ố ụ ố ụ  Khi s d ng hàm ph i khai báo ti n x lý ử ụ ả ề ử #include  scanf: tên hàm, ph i vi t b ng ch th ng.ả ế ằ ữ ườ  khung đ nh d ng: đ c đ t trong c p nháy kép (" ") là hình nh d ng d li u nh pị ạ ượ ặ ặ ả ạ ữ ệ ậ vào.  đ i m c 1,…: là danh sách các đ i m c cách nhau b i d u ph y, m i đ i m c số ụ ố ụ ở ấ ẩ ỗ ố ụ ẽ ti p nh n giá tr nh p vào.ế ậ ị ậ Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 29 Ví d 11ụ : scanf("%d", &i); đ i m c 1ố ụ mã đ nh d ngị ạ  Nh p vào 12abc, bi n i ch nh n giá tr 12. Nh p 3.4 ch nh n giá tr 3.ậ ế ỉ ậ ị ậ ỉ ậ ị Ví d 12ụ : scanf("%d%d", &a, &b);  Nh p vào 2 s a, b ph i cách nhau b ng ậ ố ả ằ kho ng tr ngả ắ ho c ặ enter. Ví d 13ụ : scanf("%d/%d/%d", &ngay, &thang, &nam);  Nh p vào ngày, tháng, năm theo d ng ngay/thang/nam (20/12/2002)ậ ạ Ví d 14ụ : scanf("%d%*c%d%*c%d", &ngay, &thang, &nam);  Nh p vào ngày, tháng, năm v i d u phân cách /, -,…; ngo i tr s . ậ ớ ấ ạ ừ ố Ví d 15ụ : scanf("%2d%2d%4d", &ngay, &thang, &nam);  Nh p vào ngày, tháng, năm theo d ng dd/mm/yyyy.ậ ạ 4.3 Bài tập 1. Vi t ch ng trình đ i m t s nguyên h 10 sang h 2.ế ươ ổ ộ ố ệ ệ 2. Vi t ch ng trình đ i m t s nguyên h 10 sang h 16.ế ươ ổ ộ ố ệ ệ 3. Vi t ch ng trình đ c và 2 s nguyên và in ra k t qu c a phép (+), phép tr (-),ế ươ ọ ố ế ả ủ ừ phép nhân (*), phép chia (/). Nh n xét k t qu chia 2 s nguyên.ậ ế ả ố 4. Vi t ch ng trình nh p vào bán kính hình c u, tính và in ra di n tích, th tích c aế ươ ậ ầ ệ ể ủ hình c u đó.ầ H ng d n: S = 4ướ ẫ piR2 và V = (4/3)piR3. 5. Vi t ch ng trình nh p vào m t s a b t kỳ và in ra giá tr bình ph ng (aế ươ ậ ộ ố ấ ị ươ 2), l pậ ph ng (aươ 3) c a a và giá tr aủ ị 4. 6. Vi t ch ng trình đ c t bàn phím 3 s nguyên bi u di n ngày, tháng, năm vàế ươ ọ ừ ố ể ễ xu t ra màn hình d i d ng "ngay/thang/nam" (ch l y 2 s cu i c a năm).ấ ướ ạ ỉ ấ ố ố ủ 7. Vi t ch ng trình nh p vào s giây t 0 đ n 86399, đ i s giây nh p vào thànhế ươ ậ ố ừ ế ổ ố ậ d ng "gio:phut:giay", m i thành ph n là m t s nguyên có 2 ch s .ạ ỗ ầ ộ ố ữ ố Ví d : 02:11:05ụ Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 30 Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 31 Bài 5 : CẤU TRÚC RẼ NHÁNH CÓ ĐIỀU KIỆN (C u trúc ch n)ấ ọ 5.1 Mục tiêu Sau khi hoàn t t bài này h c viên s hi u và v n d ng các ki n th c kĩ năng c b n sau:ấ ọ ẽ ể ậ ụ ế ứ ơ ả - Ý nghĩa l nh, kh i l nh.ệ ố ệ - Cú pháp, ý nghĩa, cách s d ng l nh if, l nh switch.ử ụ ệ ệ - M t s bài toán s d ng l nh if, switch thông qua các ví d .ộ ố ử ụ ệ ụ - So sánh, đánh giá m t s bài toán s d ng l nh if ho c switch.ộ ố ử ụ ệ ặ - Cách s d ng các c u trúc l ng nhau.ử ụ ấ ồ 5.2 Nội dung 5.2.1 Lệnh và khối lệnh 5.2.1.1 Lệnh Là m t tác v , bi u th c, hàm, c u trúc đi u khi n…ộ ụ ể ứ ấ ề ể Ví d 1ụ : x = x + 2; printf("Day la mot lenh\n"); 5.2.1.2 Khối lệnh Là m t dãy các câu l nh đ c b c b i c p d u { }, các l nh trong kh i l nh ph i vi tộ ệ ượ ọ ở ặ ấ ệ ố ệ ả ế th t vô 1 tab so v i c p d u { }ụ ớ ặ ấ Ví d 2ụ : { //dau khoi a = 5; b = 6; vi t th t vô 1 tab so v i c p { }ế ụ ớ ặ printf("Tong %d + %d = %d", a, b, a+b); } //cuoi khoi  Quên dùng c p d u { } bao b c khi s d ng kh i l nh, ho c m d u { và quênặ ấ ọ ử ụ ố ệ ặ ở ấ đóng d u }ấ 5.2.2 Lệnh if Câu l nh if cho phép l a ch n m t trong hai nhánh tùy thu c vào giá tr c a bi u th c lu nệ ự ọ ộ ộ ị ủ ể ứ ậ lý là đúng (true) hay sai (false) ho c khác không hay b ng không.ặ ằ 5.2.2.1 Dạng 1 (if thiếu) Quy t đ nh s th c hi n hay không m t kh i l nh.ế ị ẽ ự ệ ộ ố ệ  Cú pháp l nhệ Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 32 if (bi u th c lu n lý)ể ứ ậ  t khóa ừ if ph i vi t b ng ch th ngả ế ằ ữ ườ kh i l nh;ố ệ  k t qu c a ế ả ủ bi u th c lu n lýể ứ ậ ph i làả đúng (≠ 0) ho cặ sai (= 0)  L u đư ồ  n u ế bi u th c lu n lýể ứ ậ đúng thì th c hi n kh i l nh và thoát kh i if,ự ệ ố ệ ỏ ng c l iượ ạ không làm gì c và thoát kh i if.ả ỏ  N u ế kh i l nhố ệ bao g m t 2 l nh tr lên thì ph i đ t trong d u { }ồ ừ ệ ở ả ặ ấ Di n gi iễ ả : + Kh i l nh là m t l nh ta vi t l nh if nh sau:ố ệ ộ ệ ế ệ ư if (bi u th c lu n lý)ể ứ ậ l nh;ệ + Kh i l nh bao g m nhi u l nh: l nh 1, l nh 2..., ta vi t l nh if nh sau:ố ệ ồ ề ệ ệ ệ ế ệ ư if (bi u th c lu n lý)ể ứ ậ { l nh 1;ệ l nh 2;ệ ... }  Không đ t d u ch m ph y sau câu l nh if.ặ ấ ấ ẩ ệ Ví d : if(bi u th c lu n lý);ụ ể ứ ậ → 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 3ụ : 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. Phác h a l i gi iọ ờ ả Tr c tiên ta cho giá tr ướ ị a là giá tr l n nh t b ng cách gán a cho maxị ớ ấ ằ (max là bi nế đ c khai báo cùng ki u d li u v i a, b). Sau đó so sánh b v i a, ượ ể ữ ệ ớ ớ n u b l n h n a ta gán b choế ớ ơ max và cu i cùng ta ố đ c k t qu max là giá tr l n nh tượ ế ả ị ớ ấ . b. Mô t quy trình x lý (gi i thu t)ả ử ả ậ Ngôn ng t nhiênữ ự Ngôn ng Cữ - Khai báo 3 bi n a, b, max ki u s nguyênế ể ố - Nh p vào giá tr aậ ị - Nh p vào giá tr bậ ị - Gán a cho max - int ia, ib, imax; - printf("Nhap vao so a: "); scanf("%d", &ia); - printf("Nhap vao so b: "); scanf("%d", &ib); - imax = ia; Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com bth c lu n lýứ ậ kh i l nhố ệ Đúng Sai Vào Ra Giáo trình L p trình C căn b nậ ả Trang 33 - N u b > a thìế gán b cho max - In ra k t qu maxế ả - if (ib > ia) imax = ib; - printf("So lon nhat = %d.\n", imax);  Bi u th c lu n lý ph i đ t trong c p d u ( ). if ib > ia ể ứ ậ ả ặ ặ ấ → báo l iỗ c. Mô t b ng l u đả ằ ư ồ d. Vi t ch ng trìnhế ươ File Edit Search Run Compile Debug Project Option Window Help /* Chuong trinh tim so lon nhat tu 2 so nguyen a, b */ #include #include void main(void) { int ia, ib, imax; printf("Nhap vao so a: "); scanf("%d", &ia); printf("Nhap vao so b: "); scanf("%d", &ib); imax = ia; if (ib>ia) imax = ib; printf("So lon nhat = %d.\n", imax); getch(); } F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu  K t qu in ra màn hìnhế ả Nhap vao so a : 10 Nhap vao so b : 8 So lon nhat = 10. _ Cho ch y l i ch ng trình và th l i v i:ạ ạ ươ ử ạ ớ a = 7, b = 9 a = 5, b = 5 Quan sát và nh n xét k t quậ ế ả Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com b > a Đúng B t đ uắ ầ Nh p a, bậ Sai So lon nhat = max K t thúcế max = a max = b Giáo trình L p trình C căn b nậ ả Trang 34 Ví d 4ụ : 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ì hoán đ i giá trế ươ ậ ố ế ớ ơ ổ ị a và b, ng c l i không hoán đ i. In ra giá tr a, b.ượ ạ ổ ị a. Phác h a l i gi iọ ờ ả N u giá tr a l n h n giá tr b, b n ph i hoán chuy n 2 giá tr này cho nhau (nghĩa là a sế ị ớ ơ ị ạ ả ể ị ẽ mang giá tr b và b mang giá tr a) b ng cách đem ị ị ằ giá tr a g i (gán) cho bi n tamị ở ế (bi n tamế đ c khai báo theo ki u d li u c a a, b), k đ n b n ượ ể ữ ệ ủ ế ế ạ gán giá tr b cho aị và cu i cùng b n ố ạ gán giá tr tam cho bị , r i in ra a, b.ồ b. Mô t quy trình th c hi n (gi i thu t)ả ự ệ ả ậ Ngôn ng t nhiênữ ự Ngôn ng Cữ - Khai báo 3 bi n a, b, tam ki u s nguyênế ể ố - Nh p vào giá tr aậ ị - Nh p vào giá tr bậ ị - N u a > b thìế tam = a; a = b; b = tam; - In ra a, b - int ia, ib, itam; - printf("Nhap vao so a: "); scanf("%d", &ia); - printf("Nhap vao so b: "); scanf("%d", &ib); - if (ia > ib) { itam = ia; ia = ib; ib = itam; } - printf("%d, %d\n", ia, ib); c. Mô t b ng l u đả ằ ư ồ d. Vi t ch ng trìnhế ươ File Edit Search Run Compile Debug Project Option Window Help /* Chuong trinh hoan vi 2 so a, b neu a > b */ #include #include void main(void) Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com a > b Đúng B t đ uắ ầ Nh p a, bậ Sai In a, b K t thúcế tam = a a = b b = tam Giáo trình L p trình C căn b nậ ả Trang 35 { int ia, ib, itam; printf("Nhap vao so a: "); scanf("%d", &ia); printf("Nhap vao so b: "); scanf("%d", &ib); if (ia>ib) { itam = ia; //hoan vi a va b ia = ib; ib = itam; } printf("%d, %d.\n", ia, ib); getch(); } F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu  K t qu in ra màn hìnhế ả Nhap vao so a : 10 Nhap vao so b : 8 8, 10 _ Cho ch y l i ch ng trình và th l i v i:ạ ạ ươ ử ạ ớ a = 1, b = 8 a = 2, b = 2 Quan sát và nh n k t quậ ế ả 5.2.2.2 Dạng 2 (if đ ủ) Quy t đ nh s th c hi n 1 trong 2 kh i l nh cho tr c.ế ị ẽ ự ệ ố ệ ướ  Cú pháp l nhệ if (bi u th c lu n lý)ể ứ ậ  t khóa ừ if, else ph i vi t b ng ch th ngả ế ằ ữ ườ kh i l nh 1;ố ệ  k t qu c a ế ả ủ bi u th c lu n lýể ứ ậ ph i làả else đúng (≠ 0) ho cặ sai (= 0) kh i l nh 2;ố ệ  L u đư ồ  n u ế bi u th c lu n lýể ứ ậ đúng thì th c hi n kh i l nh 1 và thoát kh i ifự ệ ố ệ ỏ ng c l iượ ạ th c hi n kh i l nh 2 và thoát kh i if.ự ệ ố ệ ỏ  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 5ụ : 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. Phác h a l i gi iọ ờ ả Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com bth c lu n lýứ ậ kh i l nh 1ố ệ Đúng Sai Vào Ra kh i l nh 2ố ệ Giáo trình L p trình C căn b nậ ả Trang 36 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". b. Mô t quy trình x lý (gi i thu t)ả ử ả ậ Ngôn ng t nhiênữ ự Ngôn ng Cữ - Khai báo 2 bi n a, b ki u s nguyênế ể ố - Nh p vào giá tr aậ ị - Nh p vào giá tr bậ ị - N u a = b thìế in ra thông báo "a b ng b"ằ Ng c l i (còn không thì)ượ ạ in ra thông báo "a khác b" - int ia, ib; - printf("Nhap vao so a: "); scanf("%d", &ia); - printf("Nhap vao so b: "); scanf("%d", &ib); - if (ia == ib) printf("a bang b\n"); else printf("a khac b\n"); c. Mô t b ng l u đả ằ ư ồ d. Vi t ch ng trìnhế ươ File Edit Search Run Compile Debug Project Option Window Help /* Chuong trinh in ra thong bao "a bang b" neu a = b, nguoc lại in ra "a khac b" */ #include #include void main(void) { int ia, ib; printf("Nhap vao so a: "); scanf("%d", &ia); printf("Nhap vao so b: "); scanf("%d", &ib); if (ia == ib) printf("a bang b\n"); else printf("a khac b\n"); getch(); } F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com a= b Đúng B t đ uắ ầ Nh p a, bậ Sai a bang b K t thúcế a khac b Giáo trình L p trình C căn b nậ ả Trang 37  K t qu in ra màn hìnhế ả Nhap vao so a : 10 Nhap vao so b : 8 a khac b. _ Cho ch y l i ch ng trình và th l i v i:ạ ạ ươ ử ạ ớ a = 6, b = 6 a = 1, b = 5 Quan sát và nh n xét k t quậ ế ả  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 6ụ : 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. Phác h a 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' thì đ 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ó (c = c – 32) (vì gi a kí t th ngữ ằ ấ ự ồ ạ ữ ự ườ và in hoa trong b ng mã ASCII cách nhau 32, ví d : A trong b ng mã ASCII là 65, B là 66…, cònả ụ ả a là 97, b là 98…), 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 quy trình x lý (gi i thu t)ả ử ả ậ Ngôn ng t nhiênữ ự Ngôn ng Cữ - Khai báo bi n c ki u kí tế ể ự - Nh p vào kí t cậ ự - N u c >= a và c <= z thìế c = c – 32 in c ra màn hình Ng c l iượ ạ in ra thông báo " Kí t b n v a nh p là: cự ạ ừ ậ " - char c; - printf("Nhap vao 1 ki tu: "); scanf("%c", &c); - if (c >= 'a' && c <= 'z') { c = c – 32; printf("Ki tu hoa la: %c.\n", c); }; else printf("Ki tu ban vua nhap la: %c.\n", c); c. Mô t b ng l u đả ằ ư ồ Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com c = c – 32 c >= 'a' và c <= 'z' Đúng B t đ uắ ầ Nh p cậ Sai Ki tu hoa = c K t thúcế Ki tu vua nhap = c Giáo trình L p trình C căn b nậ ả Trang 38 d. Vi t ch ng trìnhế ươ File Edit Search Run Compile Debug Project Option Window Help /* Chuong trinh nhap vao ky tu c, neu c la chu thuong in ra chu IN HOA */ #include #include void main(void) { char c; printf("Nhap vao 1 ki tu: "); scanf("%c", &c); if (c >= 'a' && c = 97 && c <= 122) { c = c – 32; //doi thanh chu in hoa printf("Ki tu hoa la: %c.\n", c); } else printf("Ki tu ban vua nhap la: %c.\n", c); getch(); } F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu  K t qu in ra màn hìnhế ả Nhap vao mot ki tu: g Ki tu hoa la: G. _ Cho ch y l i ch ng trình và th l i v i:ạ ạ ươ ử ạ ớ c = '!', c = '2', c = 'A', c = 'u' Quan sát và nh n xét k t quậ ế ả 5.2.2.3 Cấu trúc else if Quy t đ nh s th c hi n 1 trong n kh i l nh cho tr c.ế ị ẽ ự ệ ố ệ ướ  Cú pháp l nhệ if (bi u th c lu n lý 1)ể ứ ậ  t khóa ừ if, else if, else ph i vi t b ng ch th ngả ế ằ ữ ườ kh i l nh 1;ố ệ  k t qu c a ế ả ủ bi u th c lu n lý 1, 2..nể ứ ậ ph i làả else if (bi u th c lu n lý 2)ể ứ ậ đúng (≠ 0) ho cặ sai (= 0) kh i l nh 2;ố ệ … else if (bi u th c lu n lý 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 kh i l nh n;ố ệ N u ế bi u th c lu n lý 1ể ứ ậ đúng thì th c hi n kh i l nh 1 và thoát kh i c u trúc ifự ệ ố ệ ỏ ấ  L u đ ư ồ Ng c l i N u ượ ạ ế bi u th c lu n lý 2ể ứ ậ đúng thì th c hi n kh i l nh 2 và thoát kh i c u trúc ifự ệ ố ệ ỏ ấ … Ng c l i N u ượ ạ ế bi u th c lu n lý n-1ể ứ ậ đúng thì Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com kh i l nh nố ệ BTLL 1 Sai Vào BTLL 2 Sai BTLL n-1 Sai kh i l nh n-1ố ệkh i l nh 2ố ệkh i l nh 1ố ệ Ra Đúng Đúng Đúng Giáo trình L p trình C căn b nậ ả Trang 39 th c hi n kh i l nh n-1 và thoát kh i c u trúc ifự ệ ố ệ ỏ ấ Ng c l i thìượ ạ th c hi n kh i l nh n.ự ệ ố ệ Ví d 7ụ : 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. Phác h a 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 quy trình th c hi n (gi i thu t)ả ự ệ ả ậ Ngôn ng t nhiênữ ự Ngôn ng Cữ - Khai báo 2 bi n a, b ki u s nguyênế ể ố - Nh p vào giá tr aậ ị - Nh p vào giá tr 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 l i thìượ ạ in ra thông báo "a b ng b"ằ - int ia, ib; - printf("Nhap vao so a: "); scanf("%d", &ia); - printf("Nhap vao so b: "); scanf("%d", &ib); - if (ia > ib) printf("a lon hon b.\n"); else if (ia < ib) printf("a nho hon b.\n"); else printf("a bang b.\n"); c. Mô t b ng l u đả ằ ư ồ d. Vi t ch ng trìnhế ươ File Edit Search Run Compile Debug Project Option Window Help Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com 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 Đúng Giáo trình L p trình C căn b nậ ả Trang 40 /* Chuong trinh nhap vao 2 so nguyen a, b. In ra thong bao a > b, a < b, a = b */ #include #include void main(void) { int ia, ib; printf("Nhap vao so a: "); scanf("%d", &ia); printf("Nhap vao so b: "); scanf("%d", &ib); if (ia>ib) printf("a lon hon b.\n"); else if (ia<ib) printf("a nho hon b.\n"); else printf("a bang b.\n"); getch(); } F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu  K t qu in ra màn hìnhế ả Nhap vao so a : 5 Nhap vao so b : 7 a nho hon b _ Cho ch y l i ch ng trình và th l i v i:ạ ạ ươ ử ạ ớ a = 8, b = 4 a = 2, b = 2 Quan sát và nh n xét k t quậ ế ả Ví d 8ụ : 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, n u kí t in hoa trong kho ngườ ả ừ ế ổ ữ ế ự ả A đ n Z thì đ i sang ch th ng và in ra, n u kí t là s t 0 đ n 9 thì in ra câu "Kí t b n v aế ổ ữ ườ ế ự ố ừ ế ự ạ ừ nh p là s …(in ra kí t c)", còn l i không ph i 3 tr ng h p trên in ra thông báo "B n đã nh pậ ố ự ạ ả ườ ợ ạ ậ kí t …(in ra kí t c)".ự ự a. Phác h a l i gi iọ ờ ả Nh p kí t c vào, 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ó (c = c – 32) (vì gi a kí t th ng và in hoaằ ấ ự ồ ạ ữ ự ườ trong b ng mã ASCII cách nhau 32, ví d : A trong b ng mã ASCII là 65, B là 66…, còn a là 97, b làả ụ ả 98…), sau khi đ i xong b n in kí t c ra. Ng c l i N u kí t c thu c kho ng 'A' và 'Z', đ i kí t cổ ạ ự ượ ạ ế ự ộ ả ổ ự thành ch th ng (theo cách ng c l i) và in ra. Ng c l i N u kí t c thu c kho ng '0' và '9' thì inữ ườ ượ ạ ượ ạ ế ự ộ ả ra thông báo "Kí t b n v a nh p là s …". Ng c l i, in câu thông báo "B n đã nh p kí t …".ự ạ ừ ậ ố ượ ạ ạ ậ ự b. Mô t quy trình x lý (gi i thu t)ả ử ả ậ Ngôn ng t nhiênữ ự Ngôn ng Cữ - Khai báo bi n c ki u kí tế ể ự - Nh p vào kí t cậ ự - N u c >= a và c <= z thìế c = c – 32 in c ra màn hình - char c; - printf("Nhap vao 1 ki tu: "); scanf("%c", &c); - if (c >= 'a' && c <= 'z') { c = c – 32; printf("Ki tu hoa la: %c.\n", c); Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 41 Ng c l i N u c >= A và c <= Z thìượ ạ ế c = c + 32 in c ra màn hình Ng c l i N u c >= 0 và c <= 9 thìượ ạ ế in thông báo "Kí t b n v a nh p là s c" ự ạ ừ ậ ố Ng c l i thìượ ạ in thông báo "B n đã nh p kí t c"ạ ậ ự }; else if(c >= 'A' && c <= 'Z') { c = c + 32; printf("Ki tu thuong la: %c.\n", c); }; else if(c >= '0' && c <= '9') printf("Ki tu Ban vua nhap la so %c.\n", c); else printf("Ban da nhap ki tu %c.\n", c);  Cũng nh if, kư hông đ t d u ch m ph y sau câu l nh else if.ặ ấ ấ ẩ ệ Ví d : else if(c >= 'A' && c <= 'Z');ụ → trình biên d ch không báo l i nh ng kh i l nh sau else if không đ c th cị ỗ ư ố ệ ượ ự hi n.ệ c. Mô t b ng l u đả ằ ư ồ e. Vi t ch ng trìnhế ươ File Edit Search Run Compile Debug Project Option Window Help /* Chuong trinh nhap vao ki tu c. Doi ra hoa, thuong */ #include #include void main(void) { char c; Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com c >= 'a' và c <= 'z' Đúng B t đ uắ ầ Nh p cậ c = c – 32 Ki tu hoa = c K t thúcế Ktu nhap la so c c >= 'A' và c <= 'Z' c >= '0' và c <= '9' Đúng c = c + 32 Ki tu thuong=c Sai Đúng Ban da nhap ktu c Sai Sai Giáo trình L p trình C căn b nậ ả Trang 42 printf("Nhap vao 1 ki tu: "); scanf("%c", &c); if (c >= 'a' && c = 97 && c <= 122) { c = c – 32; //doi thanh chu in hoa printf("Ki tu hoa la: %c.\n", c); }; else if(c >= 'A' && c = 65 && c <= 90) { c = c + 32; //doi thanh chu thuong printf("Ki tu thuong la: %c.\n", c); }; else if(c >= '0' && c = 48 && c <= 57) printf("Ki tu Ban vua nhap la so %c.\n", c); else printf("Ban da nhap ki tu %c.\n", c); getch(); } F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu  K t qu in ra màn hìnhế ả Nhap vao mot ki tu: g Ki tu hoa la: G. _ Cho ch y l i ch ng trình và th l i v i:ạ ạ ươ ử ạ ớ c = '!', c = '2', c = 'a', c = 'Z' Quan sát và nh n xét k t quậ ế ả 5.2.2.4 Cấu trúc if lồng Quy t đ nh s th c hi n 1 trong n kh i l nh cho tr c.ế ị ẽ ự ệ ố ệ ướ  Cú pháp l nhệ Cú pháp là m t trong 3 d ng trên, nh ng trong 1 ho c nhi u kh i l nh bên trong ph iộ ạ ư ặ ề ố ệ ả ch a ít nh t m t trong 3 d ng trên g i là c u trúc if l ng nhau. Th ng c u trúc if l ng nhau càngứ ấ ộ ạ ọ ấ ồ ườ ấ ồ nhi u c p đ ph c t p càng cao, ch ng trình ch y càng ch m và trong lúc l p trình d b nh mề ấ ộ ứ ạ ươ ạ ậ ậ ễ ị ầ l n.ẫ L u ýư : Các l nh ệ if…else l ng nhau thì ồ else s luôn luôn k t h p v i ẽ ế ợ ớ if nào ch a có elseư g n nh t. Vì v y khi g p nh ng l nh if không có else, B n ph i đ t chúng trong nh ng ầ ấ ậ ặ ữ ệ ạ ả ặ ữ kh iố l nh rõ ràngệ đ tránh b hi u sai câu l nh.ể ị ể ệ Ví d 9ụ : B n vi t các dòng l nh sau:ạ ế ệ … if (n > 0) if (a > b) x = a; else x = b; … M c dù B n vi t l nh else th ng hàng v i if (n > 0), nh ng l nh else đây đ c hi u điặ ạ ế ệ ẳ ớ ư ệ ở ượ ể kèm v i if (a > b), vì nó n m g n v i if (a > b) nh t và if (a > b) ch a có else. Đ d nhìn và dớ ằ ầ ớ ấ ư ể ễ ễ hi u h n B n vi t l i nh sau:ể ơ ạ ế ạ ư … Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 43 if (n > 0) if (a > b) x = a; else x = b; … Còn n u B n mu n l nh else là c a if (n > 0) thì B n ph i đ t if (a > b) x = a trong m tế ạ ố ệ ủ ạ ả ặ ộ kh i l nh. B n vi t l i nh sau:ố ệ ạ ế ạ ư … if (n > 0) { if (a > b) x = a; } else x = b; …  L u đư ồ T ng t 3 d ng trên. Nh ng trong m i kh i l nh có th có m t (nhi u) c u trúc if ươ ự ạ ư ỗ ố ệ ể ộ ề ấ ở 3 d ng trên.ạ Ví d 10ụ : Vi t ch ng trình nh p vào đi m c a m t h c sinh. In ra x p lo i h c t p c a h cế ươ ậ ể ủ ộ ọ ế ạ ọ ậ ủ ọ sinh đó. (Cách x p lo i. N u đi m >= 9, Xu t s c. N u đi m t 8 đ n c n 9, Gi i. N u đi m t 7ế ạ ế ể ấ ắ ế ể ừ ế ậ ỏ ế ể ừ đ n c n 8, Khá. N u đi m t 6 đ n c n 7, TBKhá. N u đi m t 5 đ n c n 6, TBình. Còn l i làế ậ ế ể ừ ế ậ ế ể ừ ế ậ ạ Y u).ế a. Phác h a l i gi iọ ờ ả Đi m s nh p vào n u h p l (0 <= đi m <= 10), b n ti p t c công vi c x p lo i,ể ố ậ ế ợ ệ ể ạ ế ụ ệ ế ạ ng c l i thông báo "Nh p đi m không h p l ". Vi c x p lo i b n s d ng c u trúc else if.ượ ạ ậ ể ợ ệ ệ ế ạ ạ ử ụ ấ b. Mô t quy trình x lý (gi i thu t)ả ử ả ậ Ngôn ng t nhiênữ ự Ngôn ng Cữ - Khai báo bi n diem ki u s th cế ể ố ự - Nh p vào đi m sậ ể ố - N u diem >= 0 và diem <= 10 thìế - N u diem >= 9 thìế in ra x p lo i = Xu t s cế ạ ấ ắ Ng c l i N u diem >= 8 thìượ ạ ế in ra x p lo i = Gi iế ạ ỏ Ng c l i N u diem >= 7 thìượ ạ ế in ra x p lo i = Kháế ạ Ng c l i N u diem >= 6 thìượ ạ ế in ra x p lo i = TBKháế ạ Ng c l i N u diem >= 5 thìượ ạ ế in ra x p lo i = TBìnhế ạ Ng c l i thìượ ạ in ra x p lo i = Y uế ạ ế Ng c l i thìượ ạ in ra "B n nh p đi m không h p l "ạ ậ ể ợ ệ - float fdiem; - printf("Nhap vao diem so: "); scanf("%f", &fdiem); - if (fdiem >= 0 && fdiem <= 10) - if (fdiem >= 9) printf("Xep loai = Xuat sac.\n"); else if (fdiem >= 8) printf("Xep loai = Gioi.\n"); else if (fdiem >= 7) printf("Xep loai = Kha.\n"); else if (fdiem >= 6) printf("Xep loai = TBKha.\n"); else if (fdiem >= 5) printf("Xep loai = TBinh.\n"); else printf("Xep loai = Yeu.\n"); else printf("Ban nhap diem khong hop le.\n"); c. Mô t b ng l u đả ằ ư ồ Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 44 d. Vi t ch ng trìnhế ươ File Edit Search Run Compile Debug Project Option Window Help /* Chuong trinh danh gia diem so*/ #include #include void main(void) { float fdiem; printf("Nhap vao diem so: "); scanf("%f", &fdiem); if (fdiem >=0 && fdiem <=10) if (fdiem >=9) printf("Xep loai = Xuat sac.\n"); else if (fdiem >=8) printf("Xep loai = Gioi.\n"); else if (fdiem >=7) printf("Xep loai = Kha.\n"); else if (fdiem >=6) printf("Xep loai = TBKha.\n"); else if (fdiem >=5) printf("Xep loai = TBinh.\n"); else printf("Xep loai = Yeu.\n"); else //if (fdiem>=0 && fdiem<=10) printf("Nhap diem khong hop le.\n"); Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com diem >= 0 và diem <= 10 B t đ uắ ầ Nh p diemậ 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 TBinhTBKhaKhaGioiXuat sac Sai Đúng Đúng Đúng Đúng Đúng Giáo trình L p trình C căn b nậ ả Trang 45 getch(); } F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu  K t qu in ra màn hìnhế ả Nhap vao diem so: 6.5 Xep loai = TBKha. _ Cho ch y l i ch ng trình và th l i v i:ạ ạ ươ ử ạ ớ diem = 4, diem = 9, diem = 7, diem = 12 Quan sát và nh n xét k t quậ ế ả e. Bàn thêm v ch ng trìnhề ươ Trong ch ng trình trên c u trúc ươ ấ else if đ c l ng vào trong c u trúc d ng 2ượ ồ ấ ạ , trong c u trúc else if ta không c n đ t trong kh i vì t t c các if trong c u trúc này đ u có else, nênấ ầ ặ ố ấ ả ấ ề else printf("Nhap diem khong hop le.\n") đ ng nhiên là thu c v if (fdiem >= 0 && fdiem <=ươ ộ ề 10). Gi s trong c u trúc else if không có dòng else printf("Xep loai = Yeu.\n") thì khi đó dòngả ử ấ else printf("Nhap diem khong hop le.\n") s thu c v c u trúc else if ch không thu c v ifẽ ộ ề ấ ứ ộ ề (fdiem >=0 && fdiem <= 10). Đ i v i tr ng h p đó b n c n ph i đ t c u trúc else if vàoố ớ ườ ợ ạ ầ ả ặ ấ trong {}, thì khi đó dòng else printf("Nhap diem khong hop le.\n) s thu c v if (fdiem >= 0 &&ẽ ộ ề fdiem <= 10). Ví d 11ụ : Vi t ch ng trình nh p vào 3 s nguyên a, b, c. Tìm và in ra s l n nh t.ế ươ ậ ố ố ớ ấ a. Phác h a l i gi iọ ờ ả Tr c tiên b n so n u a>b, mà a>c thì a l n nh t, ng c l i c l n nh t, còn n u a<=b,ướ ạ ế ớ ấ ượ ạ ớ ấ ế mà c>b thì b l n nh t, ng c l i c l n nh t.ớ ấ ượ ạ ớ ấ b. Mô t quy trình x lý (gi i thu t)ả ử ả ậ Ngôn ng t nhiênữ ự Ngôn ng Cữ - Khai báo 3 bi n a, b, c ki u s nguyênế ể ố - Nh p vào s aậ ố - Nh p vào s bậ ố - Nh p vào s cậ ố - N u a > b thìế - N u a > c thìế a l n nh tớ ấ Ng c l i thìượ ạ c l n nh tớ ấ Ng c l iượ ạ - N u b > c thìế b l n nh tớ ấ Ng c l i thìượ ạ c l n nh tớ ấ - int ia, ib, ic; - printf("Nhap vao so a: "); scanf("%d", &ia); - printf("Nhap vao so b: "); scanf("%d", &ib); - printf("Nhap vao so c: "); scanf("%d", &ic); - if (ia > ib) - if (ia > ic) printf("%d lon nhat.\n", ia); else printf("%d lon nhat.\n", ic); else - if (ib > ic) printf("%d lon nhat.\n", ib); else printf("%d lon nhat.\n", ic); c. Mô t b ng l u đả ằ ư ồ Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com B t đ uắ ầ Nh p a, b, cậ K t thúcế a > bSai a l n nh tớ ấ Đúng a > c c l n nh tớ ấ Sai Đúng b l n nh tớ ấ Đúng b > c c l n nh tớ ấ Sai Giáo trình L p trình C căn b nậ ả Trang 46 d. Vi t ch ng trìnhế ươ File Edit Search Run Compile Debug Project Option Window Help /* Chuong trinh nhap vao 2 so nguyen a, b, c. Tim, in ra so lon nhat */ #include #include void main(void) { int ia, ib, ic; printf("Nhap vao so a: "); scanf("%d", &ia); printf("Nhap vao so b: "); scanf("%d", &ib); printf("Nhap vao so c: "); scanf("%d", &ic); if (ia > ib) if (ia > ic) printf("%d lon nhat.\n", ia); else printf("%d lon nhat.\n", ic); else if (ib > ic) printf("%d lon nhat.\n", ib); else printf("%d lon nhat.\n", ic); getch(); } F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu  K t qu in ra màn hìnhế ả Nhap vao so a: 4 Nhap vao so b: 5 Cho ch y l i ch ng trình và th l i v i:ạ ạ ươ ử ạ ớ a = 5, b = 4, c = 2 Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 47 Nhap vao so c: 3 5 lon nhat. _ a = 2, b = 1, c = 10 a = 5, b = 5, c = 5 Quan sát và nh n xét k t quậ ế ả e. Bàn thêm v ch ng trìnhề ươ Trong ch ng trình trên c u trúc ươ ấ d ng 2 đ c l ng vào trong c u trúc d ng 2.ạ ượ ồ ấ ạ 5.2.3 Lệnh switch L nh switch cũng gi ng c u trúc else if, nh ng nó m m d o h n và linh đ ng h nệ ố ấ ư ề ẻ ơ ộ ơ nhi u so v i s d ng if. Tuy nhiên, nó cũng có m t h n ch là k t qu c a bi u th c ph i là giáề ớ ử ụ ặ ạ ế ế ả ủ ể ứ ả tr h ng nguyên (có giá tr c th ). M t bài toán s d ng l nh switch thì cũng có th s d ng if,ị ằ ị ụ ể ộ ử ụ ệ ể ử ụ nh ng ng c l i còn tùy thu c vào gi i thu t c a bài toán.ư ượ ạ ộ ả ậ ủ 5.2.3.1 Cấu trúc switch…case (switch thiếu) Ch n th c hi n 1 trong n l nh cho tr c.ọ ự ệ ệ ướ  Cú pháp l nhệ switch (bi u th c)ể ứ  t khóa ừ switch, case, break { ph i vi t b ng ch th ngả ế ằ ữ ườ case giá tr 1ị : l nh 1;ệ  bi u th cể ứ ph i là có k t qu làả ế ả break; giá tr h ng nguyên (char, int, long,…)ị ằ case giá tr 2ị : l nh 2;ệ  L nh 1, 2…nệ có th g m nhi u l nh, nh ngể ồ ề ệ ư break; không c n đ t trong c p d u { }ầ ặ ặ ấ … case giá tr nị : l nh n;ệ [break;] }  L u đư ồ  Khi giá tr c a bi u th c b ng giá tr i thì l nh iị ủ ể ứ ằ ị ệ s đ c th c hi nẽ ượ ự ệ . N u sau l nh i không cóế ệ l nh break thì s ti p t c th c hi n l nh i + 1…ệ ẽ ế ụ ự ệ ệ Ng c l i thoát kh i c u trúc switch.ượ ạ ỏ ấ Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Vào Ra Bi u ể = giá tr 1 ?ị Đúng l nh 1ệ break ? Không = giá tr 2 ?ị Đúng l nh 2ệ break ? Không = giá tr n ?ị Đúng l nh nệ . . . Có Có break ? Không Có Giáo trình L p trình C căn b nậ ả Trang 48 Ví d 12ụ : 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ế ươ File Edit Search Run Compile Debug Project Option Window Help /* Chuong trinh nhap vao so 1, 2, 3. In ra so sao tuong ung */ #include #include void main(void) { int i; printf("Nhap vao so 1, 2 ho c 3: ");ặ scanf("%d", &i); switch(i) { case 3: printf("*"); case 2: printf("*"); case 1: printf("*"); }; printf("An phim bat ky de ket thuc!\n"); getch(); } F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu  K t qu in ra màn hìnhế ả Nhap vao so 1, 2 ho c 3: 2ặ ** _ Cho ch y l i ch ng trình và th l i v i:ạ ạ ươ ử ạ ớ i = 1, i = 3, i = 0, i = 4 Quan sát và nh n xét k t quậ ế ả b. Bàn thêm v ch ng trìnhề ươ Trong ch ng trình trên khi nh p vào i = 2 l nh printf("*") dòng case 2 đ c thi hành,ươ ậ ệ ở ượ nh ng do không có l nh break sau đó nên l nh printf("*") dòng case 1 ti p t c đ c thi hành.ư ệ ệ ở ế ụ ượ K t qu in ra **.ế ả  Không đ t d u ch m ph y sau câu l nh switch.ặ ấ ấ ẩ ệ Ví d : switch(i);ụ → trình biên d ch không báo l i nh ng các l nh trong switch không đ c th cị ỗ ư ệ ượ ự hi n.ệ Ví d 13ụ : Vi t ch ng trình nh p vào tháng và in ra quý. (tháng 1 -> quý 1, tháng 10 -> quý 4)ế ươ ậ a. Phác h a l i gi iọ ờ ả Nh p vào giá tr tháng, ki m tra xem tháng có h p l (trong kho ng 1 đ n 12). N u h pậ ị ể ợ ệ ả ế ế ợ l in ra quý t ng ng (1->3: quý 1, 4->6: quý 2, 7->9: quý 3, 10->12: quý 4).ệ ươ ứ b. Vi t ch ng trìnhế ươ File Edit Search Run Compile Debug Project Option Window Help Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 49 /* Chuong trinh nhap vao thang. In ra quy tuong ung */ #include #include void main(void) { int ithang; printf("Nhap vao thang: "); scanf("%d", &ithang); if (ithang > 0 && ithang <= 12) switch(ithang) { case 1: case 2: case 3: printf("Quy 1.\n"); break; case 4: case 5: case 6: printf("Quy 2.\n"); break; case 7: case 8: case 9: printf("Quy 3.\n"); break; case 10: case 11: case 12:printf("Quy 4.\n"); break; }; else printf("Thang khong hop le.\n"); getch(); } F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu  K t qu in ra màn hìnhế ả Nhap vao thang: 4 Quy 2. _ Cho ch y l i ch ng trình và th l i v i:ạ ạ ươ ử ạ ớ thang = 7, thang = 1, thang = 13, thang = -4 Quan sát và nh n xét k t quậ ế ả c. Bàn thêm v ch ng trìnhề ươ Trong ch ng trình trên c u trúc ươ ấ switch…case đ c l ng vào trong c u trúc if d ng 2.ượ ồ ấ ạ 5.2.3.2 Cấu trúc switch…case…default (switch đủ) Ch n th c hi n 1 trong n + 1 l nh cho tr c.ọ ự ệ ệ ướ  Cú pháp l nhệ switch (bi u th c)ể ứ  t khóa ừ switch, case, break, default { ph i vi t b ng ch th ngả ế ằ ữ ườ Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 50 case giá tr 1ị : l nh 1;ệ  bi u th cể ứ ph i là có k t qu làả ế ả break; giá tr nguyên (char, int, long,…)ị case giá tr 2ị : l nh 2;ệ  L nh 1, 2…nệ có th g m nhi u l nh, nh ngể ồ ề ệ ư break; không c n đ t trong c p d u { }ầ ặ ặ ấ … case giá tr nị : l nh n;ệ break; default : l nh;ệ [break;] }  L u đư ồ  Khi giá tr c a bi u th c b ng giá tr i thìị ủ ể ứ ằ ị l nh i s đ c th c hi nệ ẽ ượ ự ệ . N u sau l nh iế ệ không có l nh break thì s ti p t c th c hi nệ ẽ ế ụ ự ệ l nh i + 1…Ng c l i thoát kh i c u trúcệ ượ ạ ỏ ấ switch. N u giá tr bi u th c không trùng v iế ị ể ứ ớ b t kỳ giá tr i nào thì l nh t ng ng v i tấ ị ệ ươ ứ ớ ừ khóa default s đ c th c hi nẽ ượ ự ệ . Ví d 14ụ : Vi t l i ch ng trình ế ạ ươ ở Ví d 12ụ a. Vi t ch ng trìnhế ươ File Edit Search Run Compile Debug Project Option Window Help Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Vào Ra Bi u th cể ứ = giá tr 1 ?ị Đúng l nh 1ệ break ? Không = giá tr 2 ?ị Đúng l nh 2ệ break ? Không = giá tr n ?ị Đúng l nh nệ . . . Có Có break ? Không l nh nệ Có ≠ giá tr 1, 2… nị break ? Không Có Giáo trình L p trình C căn b nậ ả Trang 51 /* Chuong trinh nhap vao so 1, 2, 3. In ra so sao tuong ung */ #include #include void main(void) { int i; printf("Nhap vao so 1, 2 ho c 3: ");ặ scanf("%d", &i); switch(i) { case 3: printf("*"); case 2: printf("*"); case 1: printf("*"); break; default: printf("Ban nhap phai nhap vao so 1, 2 hoac 3.\n"); }; getch(); } F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu  K t qu in ra màn hìnhế ả Nhap vao so 1, 2 ho c 3: 3ặ *** _ Cho ch y l i ch ng trình và th l i v i:ạ ạ ươ ử ạ ớ i = 1, i = 3, i = 0, i = 4 Quan sát k t quế ả b. Bàn thêm v ch ng trìnhề ươ Trong ch ng trình trên. N u b n nh p vào 1, 2, 3 s in ra s sao t ng ng. Ngoài cácươ ế ạ ậ ẽ ố ươ ứ s này ch ng trình s in ra câu thông báo "B n ph i nh p vào s 1, 2 ho c 3".ố ươ ẽ ạ ả ậ ố ặ Ví d 15ụ : Vi t l i ch ng trình ế ạ ươ ở Ví d 13ụ a. Vi t ch ng trìnhế ươ File Edit Search Run Compile Debug Project Option Window Help /* Chuong trinh nhap vao thang. In ra quy tuong ung */ #include #include void main(void) { int ithang; printf("Nhap vao thang: "); scanf("%d", &ithang); switch(ithang) { case 1: case 2: case 3 : printf("Quy 1.\n"); break; case 4: case 5: case 6: printf("Quy 2.\n"); Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 52 break; case 7: case 8: case 9: printf("Quy 3.\n"); break; case 10: case 11: case 12: printf("Quy 4.\n"); break; default : printf("Ban phai nhap vao so trong khoang 1..12\n"); }; getch(); } F1 Help Alt-F8 Next Msg Alt-F7 Prev Msg Alt - F9 Compile F9 Make F10 Menu  K t qu in ra màn hìnhế ả Nhap vao thang: 4 Quy 2. _ Cho ch y l i ch ng trình và th l i v i:ạ ạ ươ ử ạ ớ thang = 7, thang = 1, thang = 13, thang = -4 Quan sát k t quế ả c. Bàn thêm v ch ng trìnhề ươ Trong ch ng trình trên. N u b n nh p vào 1 đ n 12 s in quý t ng ng. Ngoài các sươ ế ạ ậ ế ẽ ươ ứ ố này ch ng trình s in ra câu thông báo "B n ph i nh p vào s trong kho ng 1..12".ươ ẽ ạ ả ậ ố ả 5.2.3.3 Cấu trúc switch lồng Quy t đ nh s th c hi n 1 trong n kh i l nh cho tr c.ế ị ẽ ự ệ ố ệ ướ  Cú pháp l nhệ Cú pháp là m t trong 2 d ng trên, nh ng trong 1 ho c nhi u l nh bên trong ph i ch a ítộ ạ ư ặ ề ệ ả ứ nh t m t trong 2 d ng trên g i là c u trúc switch l ng nhau. Th ng c u trúc switch l ng nhauấ ộ ạ ọ ấ ồ ườ ấ ồ càng nhi u c p đ ph c t p càng cao, ch ng trình ch y càng ch m và trong lúc l p trình d bề ấ ộ ứ ạ ươ ạ ậ ậ ễ ị nh m l n.ầ ẫ  L u đư ồ T ng t 2 d ng trên. Nh ng trong m i l nh có th có m t (nhi u) c u trúc switch ươ ự ạ ư ỗ ệ ể ộ ề ấ ở 2 d ng trên.ạ Ví d 16ụ : Vi t ch ng trình menu 2 c pế ươ ấ a. Vi t ch ng trìnhế ươ File Edit Search Run Compile Debug Project Option Window Help /* Chuong trinh menu 2 cap */ #include #include void main(void) { int imenu, isubmenu; printf("-------------------------\n"); printf(" MAIN MENU \n"); printf("-------------------------\n"); printf("1. File\n"); printf("2. Edit\n"); printf("3. Search\n"); Tr ng ườ TH GI I TIN H CẾ Ớ Ọ – 39 Nguy n S n Hà, P5, Q3 – ĐT: 8.344.480 – Website:ễ ơ www.infoworldschool.com Giáo trình L p trình C căn b nậ ả Trang 53 printf("Chon muc tuong ung: "); scanf("%d", &imenu); switch(imenu) { case 1: printf("-------------------------\n"); printf(" MENU FILE \n"); printf("-------------------------\n"); printf("1. New\n"); printf("2. Open\n"); printf("Chon muc tuong

Các file đính kèm theo tài liệu này:

  • pdfGiaotrinhlaptrinhCcanban.pdf
Tài liệu liên quan