ƯỜ

Ạ Ọ

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):  main ([khai báo tham s ])

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. Ví

Ø

dụ: #include #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:   ủ c a 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

}

C, C++’s characteristic

v Ví d : ụ Chào th  gi

ế ớ i

C++

C

16

C, C++’s characteristic

ẩ v Ví d : ụ Đ c bàn phím và hi n th  ra màn hình chu n

17

The basic elements

ả 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

Character Set

ả • 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

Keywords

dành riêng c a C.

ừ • T  khóa: ừ • T  khóa là các t ượ

ể ặ

c dùng t

khóa đ  đ t cho các tên c a

• Ta không đ riêng mình.

20

Comments

v

Trích d nẫ :

#include  #include int  main (){

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

Identification

ể ặ

ươ

ằ ng trình, h ng, ki u,

ng trình con,

ch ...

• 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:

float,…; tên hàm: sin, cos... ườ ậ i l p trình t

• Tên do ng

ự ặ    đ t.

22

Identification

Chú ý khi đ t tên

23

Command & Command Block

ườ ậ

i l p trình t

ự ặ  đ t

Tên do ng • Ví d : ụ

ặ ợ ệ 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

Command & Command Block

ươ

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;