Tải bản đầy đủ (.pdf) (34 trang)

Bài giảng Kỹ thuật lập trình hệ cơ điện tử: Chương 9 - TS. Đặng Thái Việt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (804.1 KB, 34 trang )

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, tố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


CHƯƠNG 9. Cơ sở của C++
9.1  Các điểm khác về cú pháp so với C
9.2  Cấp phát động với new và delete
9.3  Truyền tham khảo
9.4  Một số vấn đề với hàm số trong C++
9.5  Quá tải

3


Các điểm khác nhau so với C
1. Các điểm khác nhau so với C


C là ngơn ngữ lập trình cấu trúc, nó cho phép tạo 1 ứng
dụng gồm nhiều module chức năng (file), mỗi module
chứa nhiều hàm chức năng, các hàm này có thể bị bao
đóng trong module chứa chúng hay có thể được truy xuất
bởi bất kỳ nơi nào khác ngoài module chứa nó. C là ngơn
ngữ khơng được kiểm tra kiểu chặt, nghĩa là chương
trình dịch khơng có khả năng và khơng bao giờ kiểm tra
kiểu, bạn có thể gán chuỗi vào biến nguyên.

4



Các điểm khác nhau so với C



C++ là sự nới rộng của C, nó cung cấp thêm một số khả
năng để cho phép lập trình hướng đối tượng. Ứng dụng
được viết theo hướng đối tượng là 1 tập các đối tượng
tương tác lẫn nhau, C++ cung cấp phát biểu "class" để
người lập trình đặc tả các đối tượng cấu thành ứng dụng.
Tuy nhiên, mức độ hỗ trợ hướng đối tượng của C++ cịn
yếu, khơng trong sáng và dễ làm người lập trình mắc lỗi
trong quá trình viết code.

5


Các điểm khác nhau so với C


C++ cũng là ngơn ngữ lớn hơn với nhiều tính năng và
phức tạp hơn so với C. Giữa C và C++ có rất nhiều khác
biệt. Liệt kê 11 điểm khác biệt chính giữa 2 ngơn ngữ
này.
C

C++

1.Khơng phải ngơn ngữ hướng đối Là một ngôn ngữ hướng đối
tượng.
tượng (gồm 4 khái niệm về hướng

đối tượng).
2.Là một ngơn ngữ lập trình thủ
tục.

Khơng phải là ngơn ngữ lập trình
thủ tục.

3. Chỉ hỗ trợ các structure.

Hỗ trợ các lớp và đối tượng.

4. Khơng có biến tham chiếu, chỉ
hỗ trợ con trỏ.

Hỗ trợ cả biến tham chiếu và con
trỏ.
6


Các điểm khác nhau so với C
C

C++

5. Khơng thể khai báo hàm trong Có thể khai báo hàm trong các
các structure.
structure.
6.
Sử
dụng

các Sử dụng các hàm cin>> và cout<<
hàm scanf và printf để nhập xuất. để nhập xuất.
7. Khơng thể khai báo hàm trong Có thể khai báo hàm trong các
các structure.
structure.
8. Được xem là một ngôn ngữ lập Được xem là sự kết hợp giữa
trình cấp thấp.
ngơn ngữ lập trình cấp thấp và
cấp cao.

7


Các điểm khác nhau so với C
C

C++

9. Không hỗ trợ các hàm inline, Hỗ trợ các hàm inline.
thay vào đó có thể sử dụng khai
báo #define
10. Sử dụng phương pháp tiếp Sử dụng phương pháp tiếp cận từ
cận từ trên xuống (top-down).
dưới lên (bottom-up).
11. Là ngôn ngữ lập trình hướng Là ngơn ngữ lập trình hướng đối
chức năng (function driven).
tượng (Object driven).

8



Các điểm khác nhau so với C
Danh sách các tính năng hỗ trợ trong C++
Classes

Abstract classes

Exception handling

Member functions

Access control
(public, private,
protected)

Mutable members

Constructors and
destructors

Friend functions

Operator
overloading

Derived classes

Pointers to
members


References

Virtual functions

Static members

Templates
9


Các điểm khác nhau so với C
Inline functions

Run-time type
identification

Type safe linkage

Default arguments

// comments

Function
overloading

True const

Namespaces

Declarations as

statements

e

Automatically
Safer and more
typedef’s struct tags robust casting

new and delete
Operator
overloading
bool keyword

10


Cấp phát động new và delete
2. Cấp phát động new và delete


Trong các chương trình C, tất cả các cấp phát động bộ
nhớ đều được xử lý thông qua các hàm thư viện như
malloc(), calloc() và free(). C++ định nghĩa một phương
thức mới để thực hiện việc cấp phát động bộ nhớ bằng
cách dung hai toán tử new và delete. Sử dụng hai toán
tử này sẽ linh hoạt hơn rất nhiều so với các hàm thư viện
của C.

11



Cấp phát động new và delete
2.1 Tốn tử new
 Ví dụ:
Cấp phát động trong C

12


Cấp phát động new và delete
Cấp phát động trong C++



Chúng ta nhận thấy rằng, cách viết của C++ sáng sủa và
dễ sử dụng. Toán tử new thay thế cho hàm malloc() hay
calloc() của C có cú pháp như sau :

13


Cấp phát động new và delete

Trong đó:
type_name: Mơ tả kiểu dữ liệu được cấp phát. Nếu kiểu dữ
liệu mơ tả phức tạp, nó có thể được đặt bên trong các dấu
ngoặc.
initializer: Giá trị khởi động của vùng nhớ được cấp phát.
Nếu toán tử new cấp phát khơng thành cơng thì nó sẽ trả
về giá trị NULL.

14


Cấp phát động new và delete
2.2 Tốn tử delete


Tốn tử delete thay thế hàm free() của C. Cú pháp như
sau:



Vừa cấp phát vừa khởi
động như sau

15


Cấp phát động new và delete


Cấp phát một mảng, cú pháp như
sau:



Đối với việc cấp phát mảng chúng ta không thể vừa cấp
phát vừa khởi động giá trị cho chúng
16



Cấp phát động new và delete
2.3 Ví dụ: Chương trình tạo mảng khởi động

17


Cấp phát động new và delete
Kết quả:

2.4 Bài tập:


Chương trình cộng hai ma trận trong đó mỗi ma trận
được cấp phát động.
18


Truyền tham chiếu
3. Truyền tham chiếu
3.1 Biến tham chiếu


Trong C++ cho phép sử dụng loại biến thứ ba là biến tham
chiếu. So với 2 loại biến quen biết nói trên, thì biến này có
những đặc điểm sau:
- Biến tham chiếu khơng được cấp phát bộ nhớ,
khơng có địa chỉ riêng.
- Nó dùng làm bí danh cho một biến (kiểu giá trị) nào
đó và nó sử dụng vùng nhớ của biến này.

19


Truyền tham chiếu
Ví dụ:



Tạo ra các biến thực u, v và biến tham chiếu thực r. Biến r
không được cấp phát bộ nhớ, nó là một tên khác (bí danh)
của u và nó dùng chung vùng nhớ của biến u.

Ý nghĩa:
- Trong mọi câu lệnh, viết u hay viết r đều có ý nghĩa
như nhau, vì đều truy nhập đến cùng một vùng nhớ.
- Có thể dùng biến tham chiếu để truy nhập đến một
biến kiểu giá trị.

20


Truyền tham chiếu

Cơng dụng:


Biến tham chiếu thường được sử dụng làm đối của hàm
để cho phép hàm truy nhập đến các tham số 21
biến trong lời



Truyền tham chiếu
a



Vì biến tham chiếu khơng có địa chỉ riêng, nó chỉ là bí danh
của một biến kiểu giá trị nên trong khai báo phải chỉ rõ nó
tham chiếu đến biến nào. Ví dụ nếu khai báo (báo lỗi)

b



Biến tham chiếu có thể tham chiếu đến một phần tử mảng,

22


Truyền tham chiếu
c
d

Khơng cho phép khai báo mảng tham chiếu





Biến tham chiếu có thể tham chiếu đến một hằng. Khi đó

nó sẽ sử dụng vùng nhớ của hằng và nó có thể làm thay
đổi giá trị chứa trong vùng nhớ này

Ví  dụ:  Chương trình dưới đây minh hoạ cách dùng biến

tham chiếu đến một phần tử mảng cấu trúc để nhập dữ liệu
và thực hiện các phép tính trên các trường của phần tử mảng
cấu trúc.
23


Truyền tham chiếu

24


Truyền tham chiếu

25


×