Bài giảng Ngôn ngữ lập trình: Mảng, con trỏ và mảnh động - Nguyễn Thị Phương Dung
lượt xem 2
download
Bài giảng Ngôn ngữ lập trình: Mảng, con trỏ và mảnh động cung cấp cho người học những kiến thức như: Mảng-khái niệm, cách khai báo và sử dụng; Con trỏ-khái niệm, cách khai báo và sử dụng; Mảng động-khái niệm, cách khai báo và sử dụng. Mời các bạn cùng tham khảo!
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Ngôn ngữ lập trình: Mảng, con trỏ và mảnh động - Nguyễn Thị Phương Dung
- NGÔN NGỮ LẬP TRÌNH Mảng, con trỏ và mảng động fit.hnue.edu.vn/~dungntp/NNLT 06/03/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 1
- NỘI DUNG • Mảng: khái niệm, cách khai báo và sử dụng • Con trỏ : khái niệm, cách khai báo và sử dụng • Mảng động: khái niệm, cách khai báo và sử dụng 06/03/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 2
- Mảng
- Mảng là gì? • Mảng là một tập các biến có cùng kiểu được đặt chung 1 tên • Thường được dùng để tránh khai báo nhiều biến đơn giản 06/03/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 4
- Khai báo mảng • Cú pháp: – kieucuamang tenmang[sophantu]; – kieucuamang tenmang[sophantu] = {các giá trị khởi tạo}; – kieucuamang tenmang[] = {các giá trị khởi tạo}; 06/03/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 5
- Khai báo mảng • Khai báo mảng là cấp phát một dải vùng nhớ, bao gồm các địa chỉ liên tiếp nhau – VD: int a[5]; // Khai báo 5 phần tử kiểu int -> cấp phát 1 dải vùng nhớ là 5*2byte 0 1 2 3 4 Chỉ số 30 37 90 Giá trị của 1 phần tử số phần tử của mảng 06/03/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 6
- Khởi tạo mảng • Khởi tạo cùng khai báo: int a[5] = {2,4,7,1,3}; – Nếu giá trị khởi tạo nhiều hơn kích thước mảng thì sẽ báo lỗi – Nếu không đủ giá trị khởi tạo thì những phần tử còn lại sẽ nhận giá trị 0 – Nếu kích thước mảng không được khai báo thì danh sách khởi tạo sẽ xác định kích thước mảng • int n[] = { 1, 2, 3, 4, 5 }; => n có 5 phần tử • Nếu không khởi tạo thì các phần tử của mảng nhận giá trị mặc định: int a[5]; 06/03/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 7
- Sử dụng mảng • Truy cập các phần tử của mảng thông qua các chỉ số – VD: int a[5]; • a[0] = 3; • a[1] = 7; • ….. 06/03/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 8
- Sử dụng mảng • Chỉ số của các phần tử được đánh số từ 0 đến n-1 (với n là tổng số các phần tử của mảng) • Nếu truy cập đến chỉ số ngoài vùng 0 => n-1 thì: – Sẽ bị báo lỗi out of range – Hoặc không báo lỗi, nhưng ảnh hưởng đến biến khác nằm ở địa chỉ mà phần tử mảng đó có thể chiếm giữ 06/03/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 9
- Mảng trong hàm • Một phần tử của mảng có thể làm đối số cho 1 hàm – VD: int a[5], n; • Việc gọi fx(n) cũng giống như việc gọi fx(a[4]) 06/03/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 10
- Mảng trong hàm • Một mảng cũng có thể làm tham số cho 1 hàm – VD: void sapxep(int a[], int n); • Khi gọi hàm có tham số là 1 mảng chỉ cần truyền tên mảng (không cần truyền kích cỡ mảng), đối số truyền vào sẽ là địa chỉ đầu mảng – VD: sapxep(a, 5); 06/03/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 11
- Mảng nhiều chiều • Mảng nhiều chiều được coi là mảng của mảng. • Khai báo: int a[2][2]; • Gán giá trị cho 1 phần tử: a[1][0]=2.5; • Khởi tạo: double sales[2][2]={{1.2,3.0},{-1.0,2.3}}; 12
- Ví dụ mảng 1 chiều: Xâu ký tự • Trong C++, xâu ký tự là một mảng các phần tử kiểu char và kết thúc bằng ký tự null. • Có hai cách khai báo: char str[] = { `H', `e', `l', `l', `o', ` `, `W','o','r','l','d', `\0' }; char str[] = "Hello World"; 13
- Bài tập 1. Viết chương trình khai báo một mảng gồm n phần tử kiểu nguyên. Xuất ra màn hình những phần tử trong mảng là số nguyên tố. Tính tổng các phần tử đó 06/03/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 21
- Bài tập 2. Viết chương trình C++ nhập 10 giá trị nguyên, sau đó tìm giá trị lớn nhất, nhỏ nhất, tìm giá trị có tần suất xuất hiện nhiều nhất, sắp xếp mảng theo thứ tự tăng dần, giảm dần và hiển thị kết quả. 06/03/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 22
- Bài tập 3. Viết chương trình C++ để nhập và hiển thị một ma trận có kích thước là 5x5, trong đó: các phần tử trên đường chéo được điền giá trị 0, các phần tử của tam giác dưới đường chéo được điền các giá trị -1, và ở tam giác trên là được điền với các giá trị 1 06/03/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 23
- Bài tập 4. Viết chương trình C++ để tính tổng mỗi hàng, mỗi cột của một ma trận có kích cỡ n x m, và nếu là ma trận vuông thì tính tổng đường chéo 06/03/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 24
- Con trỏ
- Xem cách làm việc với bộ nhớ • Khởi tạo chương trình Vùng nhớ được cấp phát khi khởi động • Nếu khai báo: chương trình – 1 biến int => chiếm 4 byte – 1 biến char => chiếm1 byte – 1 biến double => 8 byte – 1 biến float => 4 byte – … – 1 biến mảng double 1 tỷ phần tử => tràn bộ nhớ
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Ngôn ngữ lập trình Java căn bản
115 p | 350 | 104
-
Bài giảng Ngôn ngữ lập trình C++: Chương 1 - Trần Minh Châu
17 p | 250 | 54
-
Bài giảng Ngôn ngữ lập trình C# - Nguyễn Hồng Phương
409 p | 214 | 41
-
Bài giảng Ngôn ngữ lập trình ứng dụng: Phần 1 – ĐH CNTT&TT
45 p | 112 | 13
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 1: Ngôn ngữ lập trình C) - Chương 1: Ôn tập một số nội dung chính của NNLT C
31 p | 157 | 13
-
Bài giảng Ngôn ngữ lập trình bậc cao - Th.S Đoàn Thị Thu Huyền
44 p | 150 | 10
-
Bài giảng Ngôn ngữ lập trình C: Chương 1 - TS. Nguyễn Thị Hiền
12 p | 62 | 9
-
Bài giảng Ngôn ngữ lập trình - Nguyễn Văn Linh
109 p | 118 | 8
-
Bài giảng Ngôn ngữ lập trình C - Chương 1: Giới thiệu ngôn ngữ C
4 p | 104 | 8
-
Bài giảng Ngôn ngữ lập trình C và C++: Bài 1 - TS. Đỗ Đăng Khoa
53 p | 112 | 7
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 2: Ngôn ngữ lập trình C++) - Chương 5: Các lớp nhập/xuất trong C++
19 p | 132 | 7
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 2: Ngôn ngữ C++) - Chương 2: Giới thiệu về ngôn ngữ lập trình C++
49 p | 137 | 7
-
Bài giảng Ngôn ngữ lập trình C: Chương 1 - PhD. Nguyễn Thị Huyền
12 p | 55 | 7
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 2: Ngôn ngữ lập trình C++) - Chương 3: Lớp và đối tượng
52 p | 112 | 5
-
Bài giảng Ngôn ngữ lập trình C và C++: Bài 4 - TS. Đỗ Đăng Khoa
40 p | 95 | 5
-
Bài giảng Ngôn ngữ lập trình C/C++ (Bài giảng tuần 1) – Nguyễn Hải Châu
7 p | 142 | 5
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 2: Ngôn ngữ lập trình C++) - Chương 6: Mẫu (template)
27 p | 85 | 4
-
Bài giảng Ngôn ngữ lập trình: Bài 1 - Lý Anh Tuấn
30 p | 82 | 4
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