Bài giảng Kỹ thuật lập trình hệ cơ điện tử: Chương 6 - TS. Đặng Thái Việt
lượt xem 3
download
Bài giảng "Kỹ thuật lập trình hệ cơ điện tử: Chương 6 - Con trỏ và mảng" Khái niệm ngôn ngữ lập trình C/C++; Khai báo mảng trong C/C++; Khởi tạo mảng trong C/C++; Con trỏ tới một mảng trong C++; Truyền mảng như là các tham số hàm trong C++;... Mời các bạn cùng tham khảo bài giảng!
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Kỹ thuật lập trình hệ cơ điện tử: Chương 6 - TS. Đặng Thái Việt
- 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
- CHƯƠNG 6. Con trỏ và mảng 6.1 Khái niệm về mảng 6.2 Khái niệm về con trỏ 3
- Khái niệm về mảng 1.1 Khái niệm § Ngôn ngữ lập trình C/C++ cung cấp cấu trúc dữ liệu gọi là mảng, được lưu trữ trong một tập hợp các dữ liệu cùng kiểu với độ dài cố định. Một mảng được sử dụng để lưu trữ tập hợp dữ liệu. § Thay vì khai báo biến một cách rời rạc, như biến so0, so1,… và so99, bạn có thể khai báo một mảng các giá trị như so[0], so[1] và … so[99] để biểu diễn các giá trị riêng biệt. Một thành viên cụ thể của mảng có thể được truy cập qua index (chỉ số). § Tất cả mảng đều bao gồm các vị trí nhớ liền kề nhau. Địa chỉ thấp nhất tương ứng với thành viên đầu tiền và địa chỉ cao nhất tương ứng với thành viên cuối cùng của mảng. 4
- Khái niệm về mảng 1.2 Khai báo mảng trong C/C++ § Để khai báo một mảng trong ngôn ngữ C/C++, bạn xác định kiểu của biến và số lượng các phần tử được yêu cầu bởi biến đó như sau: § Đây là mảng một chiều. Kich_co_mang phải là một số nguyên lớn hơn 0 và Kieu phải hợp lệ trong ngôn ngữ C/C++. Ví dụ, khai báo một mảng 10 phần tử gọi là balance với kiểu double, sử dụng câu lệnh sau đây: double balance[10]; 5
- Khái niệm về mảng 1.3 Khởi tạo mảng trong C/C++ § Bạn có thể khởi tạo mảng trong C/C++ hoặc từng phần tử một hoặc sử dụng một câu lệnh như dưới đây: § Số lượng các giá trị trong dấu ngoặc kép {} không được lớn hơn số lượng phần tử khai báo trong dấu ngoặc vuông []. 6
- Khái niệm về mảng 1.3 Khởi tạo mảng trong C/C++ § Nếu bạn bỏ sót kích cỡ mảng thì mảng đó đủ lớn để giữ các giá trị được khởi tạo: Bạn sẽ tạo chính xác một chuỗi có giá trị giống hệt chuỗi bên trên bằng cách gán từng phần tử một. Dưới đây là một ví dụ khi gán giá trị cho một phần tử của mảng: § Tất cả các mảng đều có chỉ số (index) đầu tiên bằng 0, đây được gọi là chỉ số cơ bản và phần tử cuối cùng của mảng có chỉ số bằng độ lớn của mảng trừ đi 1. Dưới đây là cách biểu diễn hình họa cho chuỗi khai báo bên trên thông qua chỉ số: 7
- Khái niệm về mảng 1.3 Truy cập các phần tử mảng trong C/C++ § Một mảng được truy cập bởi cách đánh chỉ số trong tên của mảng. Dưới đây là một cách truy cập một giá trị của mảng: § Câu lệnh trên lấy phần tử thứ 56 của mảng và gán giá trị này cho biến hocphi. 8
- Khái niệm về mảng Ví dụ 9
- Khái niệm về mảng 1.4 Mảng đa chiều trong C++ § C++ hỗ trợ các mảng đa chiều. Dưới đây là mẫu chung của một khai báo mảng đa chiều: § Ví dụ: int hocphi[5][10][4]; 10
- Khái niệm về mảng Mảng hai chiều trong C++ § Mẫu đơn giản nhất của mảng đa chiều là mảng hai chiều. Một mảng hai chiều về bản chất là danh sách của các mảng một chiều. Để khai báo một mảng hai chiều integer với kích cỡ x, y, bạn nên viết như sau: § Ở đây, kieu_du_lieu có thể là bất kỳ kiểu dữ liệu có hiệu lực nào và ten_mang sẽ là một định danh C++ có hiệu lực. 11
- Khái niệm về mảng Mảng hai chiều trong C++ § Một mảng hai chiều có thể như là một bảng mà có x hàng và y cột. Một mảng hai chiều a chứa 3 hàng và 4 cột có thể được hiển thị như sau: § Như vậy, mỗi phần tử trong mảng a được định danh bởi một tên phần tử trong kiểu mẫu a[i][j], với a là tên mảng và i, j là các subscript – chỉ số được xác định duy nhất mỗi phần tử trong a. 12
- Khái niệm về mảng Khởi tạo mảng hai chiều trong C++ § Các mảng đa chiều có thể được khởi tạo bởi xác định các giá trị trong dấu móc vuông cho mỗi hàng. Sau đây là một hàng với 3 hàng và mỗi hàng chứa 4 cột. § Các dấu ngoặc ôm, mà chỉ các hàng giá trị là tùy ý. Khởi tạo sau là tương đương với ví dụ trên: 13
- Khái niệm về mảng Truy cập các phần tử của mảng hai chiều trong C++ § Các phần tử mảng hai chiều được truy cập bởi sử dụng các chỉ số, ví dụ chỉ số hàng và chỉ số cột. Ví dụ: § Lệnh trên sẽ truy cập vào phần tử thứ 4 từ hàng thứ 3 của mảng. Bạn có thể kiểm tra lại nó trong sơ đồ trên. 14
- Khái niệm về mảng Ví dụ 15
- Khái niệm về mảng 1.5 Con trỏ tới một mảng trong C++ § Một tên mảng là một con trỏ hằng số tới phần tử đầu tiên của mảng. Vì thế, trong khai báo: § phithuebao là một con trỏ tới &phithuebao[0], mà là địa chỉ của phần tử đầu tiên của mảng phithuebao. Do vậy, đoạn chương trình sau gán p địa chỉ của phần tử đầu tiên của phithuebao: 16
- Khái niệm về mảng 1.5 Con trỏ tới một mảng trong C++ § Sử dụng các tên mảng như là các con trỏ hằng số là hợp lệ, và ngược lại. Vì thế, *(phithuebao + 4) là cách chính thống để truy cập dữ liệu tại phithuebao[4]. § Một khi bạn lưu địa chỉ của phần tử đầu tiên trong p, bạn có thể truy cập các phần tử mảng bởi sử dụng *p, *(p+1), *(p+2), …. Dưới đây là ví dụ để chỉ tất cả các khái niệm được đề cập ở trên: 17
- Khái niệm về mảng Ví dụ 18
- Khái niệm về mảng 1.6 Truyền mảng như là các tham số hàm trong C++ § C++ không cho phép truyền cả một mảng như là một tham số tới một hàm. Tuy nhiên, bạn có thể truyền một con trỏ tới một mảng bởi việc xác định tên mảng đó mà không cần một chỉ mục. § Nếu bạn muốn truyền một mảng một chiều như là tham số trong một hàm, bạn sẽ phải khai báo tham số chính thức của hàm theo một trong 3 cách sau và tất cả 3 cách thức khai báo này đều tạo kết quả giống nhau bởi vì, mỗi cách thức sẽ nói cho bộ biên dịch rằng một con trỏ integer sẽ được nhận. 19
- Khái niệm về mảng Cách 1 § Các tham số chính thức dưới dạng một con trỏ, như sau: 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Kỹ thuật thi công 1: Phần III - Đặng Xuân Trường
150 p | 352 | 133
-
Bài giảng Kỹ thuật chế tạo máy: Chương 2 - Trương Quốc Thanh
27 p | 181 | 40
-
Bài giảng Kỹ thuật thi công: Chương 7 - ThS. Nguyễn Hoài Nghĩa, PGS.TS. Lưu Trường Văn (Phần 4.)
42 p | 104 | 16
-
Bài giảng Kỹ thuật thi công: Chương 7 - ThS. Nguyễn Hoài Nghĩa, PGS.TS. Lưu Trường Văn (Phần 4.2)
21 p | 139 | 15
-
Bài giảng Kỹ thuật tổ chức thi công: Chương 5 - ThS. Cao Tuấn Anh
44 p | 162 | 14
-
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
34 p | 17 | 4
-
Bài giảng Kỹ thuật lập trình hệ cơ điện tử: Chương 8 - TS. Đặng Thái Việt
43 p | 25 | 4
-
Bài giảng Kỹ thuật lập trình hệ cơ điện tử: Chương 11 - TS. Đặng Thái Việt
22 p | 20 | 3
-
Bài giảng Kỹ thuật lập trình hệ cơ điện tử: Chương 10 - TS. Đặng Thái Việt
33 p | 11 | 3
-
Bài giảng Kỹ thuật lập trình hệ cơ điện tử: Chương 12 - TS. Đặng Thái Việt
16 p | 12 | 3
-
Bài giảng Kỹ thuật lập trình hệ cơ điện tử: Chương 7 - TS. Đặng Thái Việt
31 p | 17 | 3
-
Bài giảng Kỹ thuật lập trình hệ cơ điện tử: Chương 5 - TS. Đặng Thái Việt
35 p | 13 | 3
-
Bài giảng Kỹ thuật lập trình hệ cơ điện tử: Chương 4 - TS. Đặng Thái Việt
36 p | 7 | 3
-
Bài giảng Kỹ thuật lập trình hệ cơ điện tử: Chương 3 - TS. Đặng Thái Việt
48 p | 9 | 3
-
Bài giảng Kỹ thuật lập trình hệ cơ điện tử: Chương 2 - TS. Đặng Thái Việt
25 p | 15 | 3
-
Bài giảng Kỹ thuật lập trình hệ cơ điện tử: Chương 1 - TS. Đặng Thái Việt
33 p | 15 | 3
-
Bài giảng Kỹ thuật lập trình hệ cơ điện tử: Chương 13 - TS. Đặng Thái Việt
83 p | 24 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn