Bài giảng Kỹ thuật lập trình hệ cơ điện tử: Chương 2 - Ngôn ngữ lập trình C được biên soạn bao gồm các nội dung chính sau: Đặc thù của C, C++; Một số ví dụ đơn giản; Các thành phần cơ bản của ngôn ngữ C. Mời các bạn cùng tham khảo bài giảng!
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 KỸ THUẬT LẬP TRÌNH HỆ CƠ ĐIỆN TỬ Tổng quan về ngơn ngữ lập trình Cấu trúc Giới thiệu sơ bộ ngơn ngữ C Vào/ra trong C Kiểu, tốn tử và biểu thức Cơ sở của C++ Dịng điều khiển 10 Lớp Hàm và cấu trúc chương trình 11 Kế thừa và đa hình Con trỏ và mảng 12 Luồng vào/ra trong C++ 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 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 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à tố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 đố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ết hệ điều hành, 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 đã được chuẩn ANSI cho C C, C++’s characteristic Ø C chỉ gồm một số ít từ khố (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 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++. Ngồ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 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à tố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ữ 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] Ø (6): main ([khai báo tham số]) 11 C, C++’s characteristic v Cấu trúc chương trình C++ Ø (7): { Ø (8): Thân hàm main Ø (9): } Ø (10): Các định nghĩa hàm người dùng Chú ý: Các thành phần cặp ngoặc vng [] có khơng 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ủa hàm. Cú pháp khai báo ngun mẫu hàm: ([Khai báo các đối số]); Ví dụ: int chanle (int x); Trong đó, kiểu hàm là int, tên hàm là chanle, đối số là x và kiểu của đối số là int 13 C, C++’s characteristic Ø (3): Định nghĩa kiểu mới: Ngồi những kiểu chuẩn đã được cung cấp 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 Ø (5): Các định nghĩa biến, hằng: Các biến và hằng được định nghĩa tại đây sẽ trở thành biến và hằng tồn cục 14 C, C++’s characteristic v Giải thích cú pháp Ø (6) – (9): Hàm main(): Đây là thành phần bắt buộc trong một chương 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) Ø (10): Các định nghĩa hàm của người dùng: Một định nghĩa hàm bao gồm tiêu đề của hàm, thân hàm với cú pháp như sau: ([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ự: Bộ chữ viết trong ngôn ngữ C bao gồm các ký tự sau: – 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 – Các ký hiệu toán học: +, , *, /, =, , (, ) – Các ký hiệu đặc biệt: :. , ; " ' _ @ # $ ! ^ [ ] { } – Dấu cách hay khoảng trống. Phân biệt chữ in hoa và in thường 19 Keywords • • • Từ khóa: Từ khóa là các từ dành riêng của C Ta khơng được dùng từ khóa để đặt cho các tên của 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 • Tên (identifier) – – Được dùng để đặt cho chương trình, hằng, kiểu, biến, chương trình con, Có 2 loại: • • Tên chuẩn: là tên do C đặt sẵn như tên kiểu: int, char, float,…; tên hàm: sin, cos Tên do người lập trình tự đặt. 22 Identification Chú ý khi đặt tên 23 Command & Command Block Tên do người lập trình tự đặt • • Ví dụ: – Tên đặt hợp lệ: Chieu_dai, Chieu_Rong, Chu_Vi – Tên khơng hợp lệ: Do Dai, 12A2 Phải tn thủ quy tắc: – Sử dụng bộ chữ cái, chữ số và dấu gạch dưới (_) – Bắt đầu bằng một chữ cái hoặc dấu gạch dưới – Khơng có khoảng trống ở giữa tên – Khơng được trùng với từ khóa – Độ dài tối đa của tên là 32 ký tự, tuy nhiên cần đặt sao cho rõ ràng, dễ nhận biết và dễ nhớ – 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