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ướ ậ .....
148 trang |
Chia sẻ: hunglv | Lượt xem: 1241 | Lượt tải: 0
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 IPO Cycle (InputPprocessOutput Cycle) (Quy trình nhậpxử 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:
- GiaotrinhlaptrinhCcanban.pdf