ƯỜ
Ạ Ọ
TR
Ộ NG Đ I H C BÁCH KHOA HÀ N I
Ệ Ơ Ệ
Ậ
Ậ
Ỹ
K THU T L P TRÌNH H C ĐI N
TỬ
Programming Engineering in Mechatronics
ả
ệ
Gi ng viên
ặ : TS. TS. Đ ng Thái Vi
t
ơ ệ ử
ộ
ệ
ơ
Đ n vơ ị: B môn C đi n t
, Vi n C khí
ộ
Hà N i, 09/2017
1
Ệ Ơ Ệ Ử
Ậ
Ậ
Ỹ
K THU T L P TRÌNH H C ĐI N T
ữ ậ
ổ
ề
1. T ng quan v ngôn ng l p trình
ấ 7. C u trúc
ớ
ệ ơ ộ
ữ
2. Gi
i thi u s b ngôn ng C
8. Vào/ra trong C
ể
ử
ứ
3. Ki u, toán t
ể và bi u th c
ơ ở ủ 9. C s c a C++
ề
ể
4. Dòng đi u khi n
10. L pớ
ấ
ươ
ế ừ
5. Hàm và c u trúc ch
ng trình
11. K th a và đa hình
ả
ồ
ỏ 6. Con tr và m ng
12. Lu ng vào/ra trong C++
2
ớ
ệ ơ ộ
ữ
Gi
i thi u s b ngôn ng C
ƯƠ
Ữ Ậ
CH
NG 2. NGÔN NG L P TRÌNH C
ủ
ặ
1. Đ c thù c a C, C++
ộ ố
ụ ơ
ả
2. M t s ví d đ n gi n
ữ
ầ ơ ả ủ 3. Các thành ph n c b n c a ngôn ng C
3
C, C++’s characteristic
ủ
ặ
1. Đ c thù c a C, C++
ị
ử v L ch s hình thành
Ø Ngôn ng l p trình C
ữ ậ ệ ạ do Dennis Ritchie phát minh khi ông làm vi c t i
AT&T Bell Laboratories vào năm 1972.
Ø C là m t ngôn ng m nh
ữ ạ ộ ạ và có tính linh ho t, nó đã nhanh chóng đ ượ ử c s
ụ ộ ộ ượ ủ ạ ỏ d ng m t cách r ng rãi, v t ra kh i ph m vi c a Bell Labs.
Ø C++ đ
ượ ế ế ữ ớ ư c bi t đ n nh là ngôn ng m i bao trùm lên C và do Bjarne
ạ ệ ạ Stroustrup sáng tác năm 1980 cũng t i phòng thí nghi m Bell t i bang
4
New Jersey, M .ỹ
C, C++’s characteristic
Ø Ban đ u đ
ầ ượ ặ ớ ớ c ông đ t tên cho nó là “C with classes” (C v i các l p). Tuy
ế ổ ử nhiên đ n năm 1983 thì ông đ i tên thành C++, trong đó ++ là toán t tăng
ủ thêm 1 c a C.
Ø C++ đ
ượ ế ế ữ ậ ư ướ ự ậ ướ c bi t đ n nh là ngôn ng l p trình h ng s v t hay h ng
5
ố ượ đ i t ng OOP (Object Oriented Programming).
C, C++’s characteristic
ủ
ặ
ể v Đ c đi m c a C
Ø C là m t ngôn ng m nh
ữ ạ ộ và linh ho t.ạ
Ø C đ
ượ ử ụ ự ề c s d ng trong nhi u d án khác nhau, nh vi ệ ề ư ế h đi u hành t ,
ươ ạ ả ử ồ ả ậ ươ ch ả ng trình x lý văn b n, đ ho , b ng tính , và th m chí c ch ng
ữ ị trình d ch cho các ngôn ng khác.
ị ẵ ấ Ø C có s n r t nhi u ề các trình biên d ch (compiler) và các th vi n ư ệ đ c ượ
ế ẵ vi t s n khác.
Ø C là m t ngôn ng kh chuy n
ữ ể ả ả ộ ể (portable language). Tính kh chuy n đã
6
ượ ẩ đ c chu n ANSI cho C.
C, C++’s characteristic
Ø C ch g m m t s ít t
ộ ố ỉ ồ ừ ề ả ự khoá (keywords) ể làm n n t ng đ xây d ng các
ứ ủ ữ các ch c năng c a ngôn ng .
Ø C là ngôn ng l p trình theo modul. Mã ch
ữ ậ ươ ể ng trình C có th (và nên)
ượ ế ủ ụ ọ ữ đ c vi ể t thành các th t c g i là function. Nh ng function này có th
ượ ử ụ ạ ứ ụ ươ đ c s d ng l i trong các ng d ng (application) và ch ng trình khác
7
nhau. Tuy nhiên C không cho phép khai báo hàm trong hàm.
C, C++’s characteristic
v C++ bao trùm lên C nên m i đ c đi m c a C
ọ ặ ủ ể ề đ u có trong C++. Ngoài ra,
ộ ố ặ ể ư C++ còn có m t s đ c đi m khác nh :
Ø C++ là ngôn ng h
ữ ướ ố ượ ng đ i t ng
ể ấ ạ ữ ị Ø C++ là ngôn ng đ nh ki u r t m nh
Ø C++ cung c p cách truy n tham s b ng tham chi u cho hàm
ố ằ ế ề ấ
Ø C++ cung c p c c u th vi n đ ng
ấ ơ ấ ư ệ ể ườ ậ ể ự ạ i l p trình có th t t o thêm
8
ư ệ ử ụ ụ ể hàm thông d ng vào th vi n và có th tái s d ng sau này
C, C++’s characteristic
Ø C++ cung c p m t c ch đa d ng hóa
ộ ơ ế ấ ạ tên hàm và toán tử
Ø C++ cung c p các class
ấ ạ ấ ớ ả ữ là lo i c u trúc m i đóng gói chung cho c d
9
ủ ể ượ ả ệ ẫ ệ ộ ặ ộ ẽ li u l n các hàm trong m t ch th đ c b o v m t cách ch t ch
C, C++’s characteristic
10
C, C++’s characteristic
ủ
ấ
ộ
ươ
v C u trúc c a m t ch
ng trình C++
Ø
Ø
ư ệ (1): Khai báo th vi n
Ø
ủ ẫ ườ (2): [Khai báo các nguyên m u hàm c a ng i dùng]
Ø
ể ị (3): [Các đ nh nghĩa ki u]
Ø
ị (4): [Các đ nh nghĩa Macro]
Ø
ế ằ ị (5): [Các đ nh nghĩa bi n, h ng]
11
ể ố (6):
C, C++’s characteristic
v Cấu trúc của một chương trình C++
Ø
Ø
(7): {
Ø
(8): Thân hàm main
Ø
(9): }
(10): Các định nghĩa hàm của người dùng
Chú ý: Các thành phần trong cặp ngoặc vuông [] có thể có
hoặc không trong chương trình.
12
C, C++’s characteristic
ả
v Gi
i thích cú pháp
Ø
(1): Cú pháp để khai báo thư viện: #include
Ø
dụ: #include
ể ủ ừ ố ố ố ể ấ ố ố (2): Cung c p tên hàm, ki u hàm, s đ i s và ki u c a t ng đ i s
ẫ ể . Cú pháp khai báo nguyên m u hàm:
ể ([Khai báo các đ i s ]); ố ố Ví d : ụ int chanle (int x); Trong đó, ki u hàm là
13
ể ủ ố ố ố ố int, tên hàm là chanle, đ i s là x và ki u c a đ i s là int.
C, C++’s characteristic
Ø
ể ị ữ ể ẩ ượ ấ ớ : Ngoài nh ng ki u chu n đã đ c cung c p (3): Đ nh nghĩa ki u m i
ữ ườ ậ ể ị ớ ừ ể ẵ ủ s n c a ngôn ng , ng i l p trình có th đ nh nghĩa ra các ki u m i t
Ø
ử ụ ữ ể ừ ằ nh ng ki u đã có b ng cách s d ng t khóa typedef.
Ø
ị (4): Đ nh nghĩa Macro
ằ ượ ị ạ ế ị ế ằ : Các bi n và h ng đ c đ nh nghĩa t i (5): Các đ nh nghĩa bi n, h ng
14
ẽ ở ụ ằ ế đây s tr thành bi n và h ng toàn c c.
C, C++’s characteristic
ả
v Gi
i thích cú pháp
Ø
ắ ầ ộ ộ ươ ng (6) – (9): Hàm main(): Đây là thành ph n b t bu c trong m t ch
ủ ắ ầ ừ ấ ở trình C++, thân c a hàm main b t đ u t sau d u m móc { (dòng 7) cho
Ø
ớ ấ t i d u đóng móc } (dòng 9).
ủ ị ườ ộ ị : M t đ nh nghĩa hàm bao (10): Các đ nh nghĩa hàm c a ng i dùng
ề ủ ư ớ ồ ể g m tiêu đ c a hàm, thân hàm v i cú pháp nh sau: hàm> ([Khai báo các đ i])ố { 15 } v Ví d : ụ Chào th gi ế ớ
i C++ C 16 ể ọ ị ẩ
v Ví d : ụ Đ c bàn phím và hi n th ra màn hình chu n 17 ự ả
v B ng ký t ừ
v T khóa ấ ặ v C p d u chú thích (comment) ị v Đ nh danh ố ệ ệ v Câu l nh và kh i l nh 18 ự ả
• B ng ký t : ự ồ ữ sau: t trong ngôn ng C bao g m các ký t ớ ỏ • B ch vi
ữ
ữ
ữ ố ậ
ệ
ệ t: :. , ; " ' _ @ # $ ! ^ [ ] { } ... ấ ố ộ ữ ế
– 26 ch cái latinh l n A,B,C...Z
– 26 ch cái latinh nh a,b,c ...z.
– 10 ch s th p phân 0,1,2...9.
ọ
– Các ký hi u toán h c: +, , *, /, =, <, >, (, )
ệ
ặ
– Các ký hi u đ c bi
ả
– D u cách hay kho ng tr ng. ệ ữ ườ • Phân bi t ch in hoa và in th ng 19 ừ ủ dành riêng c a C. c dùng t khóa đ đ t cho các tên c a • Ta không đ
riêng mình. 20 v #include char ten[50]; /* khai bao bien ten kieu char 50 ky tu */ printf(“Xin cho biet ten cua ban !”);
scanf(“%s”,ten); /*Doc vao 1 chuoi la ten ban*/
printf(“Xin chao ban %s\n ”,ten);
//Dung chuong trinh, cho go phim
getch();
return 0; } ị ầ ề ỉ ị ỏ
• Khi biên d ch các ph n chú thích b b qua
• Dùng /* và */: chú thích dài nhi u dòng
• Dùng //: chú thích ch 1 dòng 21 • Tên (identifier)
ượ
– Đ c dùng đ đ t cho
ươ
ế
bi n, ch
– Có 2 lo i:ạ ặ ẵ ư ể int, char, • Tên chu nẩ : là tên do C đ t s n nh tên ki u: • Tên do ng 22 23 ặ ợ ệ Chieu_dai, Chieu_Rong, Chu_Vi – Tên đ t h p l
:
– Tên không h p l ợ ệ Do Dai, 12A2 : ả ủ • Ph i tuân th quy t c: ữ ố ạ ướ ử ụ
ắ ầ ạ ộ ướ i (_)
i. ả ủ ặ ầ
, tuy nhiên c n đ t sao ế ắ
ộ ữ
ấ
– S d ng b ch cái, ch s và d u g ch d
ữ
ằ
ặ ấ
– B t đ u b ng m t ch cái ho c d u g ch d
ố
ở ữ
– Không có kho ng tr ng
gi a tên.
ượ
ớ ừ
– Không đ
c trùng v i t
khóa.
ự
ố
ộ
i đa c a tên là 32 ký t
– Đ dài t
ớ
ễ
t và d nh . cho rõ ràng, d nh n bi ư ấ ớ ễ
ậ
ệ ặ – Không c m vi c đ t tên trùng v i tên chu n nh ng khi ủ ẩ
ị ữ ẩ
đó ý nghĩa c a tên chu n không còn giá tr n a.
24 ụ ạ ươ v Ví d : Xét đo n ch ng trình sau: cin >>x >> y; x = 3 + x; y = (x = sqrt(x)) + 1; cout << x; ươ ề ế ấ ỗ v Tuy nhiên, trong ch ng trình nhi u ch không dùng đ n d u (;) vì ệ ả ụ
đó không ph i là câu l nh. Ví d : #include int main() 25 cout << y;
C, C++’s characteristic
C, C++’s characteristic
The basic elements
Character Set
Keywords
ừ
• T khóa:
ừ
• T khóa là các t
ượ
ừ
ể ặ
ủ
Comments
Trích d nẫ :
Identification
ể ặ
ươ
ể
ằ
ng trình, h ng, ki u,
ng trình con,
ch
...
float,…; tên hàm: sin, cos...
ườ ậ
i l p trình t
ự ặ
đ t.
Identification
ặ
Chú ý khi đ t tên
Command & Command Block
ườ ậ
i l p trình t
ự ặ
đ t
Tên do ng
• Ví d : ụ
Command & Command Block
Có thể bạn quan tâm
Tài liêu mới