Professional Documents
Culture Documents
c++ How to Programming Part 4 (đã dịch)
c++ How to Programming Part 4 (đã dịch)
Chapter 4 - Arrays
Outline
4.1 Introduction
4.2 Arrays
4.3 Declaring Arrays
4.4 Examples Using Arrays
4.5 Passing Arrays to Functions
4.6 Sorting Arrays
4.7 Case Study: Computing Mean, Median and Mode
Using Arrays
4.8 Searching Arrays: Linear Search and Binary Search
• Mảng
– Cấu trúc các mục dữ liệu liên quan
– Tĩnh tại (cùng kích cỡ trong suốt chương trình)
• Một vài kiểu
– Mảng con trỏ cơ sở (giống C)
– Mảng đối tượng (C++)
4.2 Mảng
• Mảng
– Nhóm các vị trí nhớ liên tiếp
– Cùng tên và kiểu (int, char, etc.)
• Xét một phần tử
– Chỉ định tên mảng và vị trí số (chỉ mục)
– Dạng thức: arrayname[ position number ]
– Thành phần đầu tiên luôn là 0
• Mảng c có N phần tử
c[ 0 ], c[ 1 ] … c[ n - 1 ]
– Phần tử thứ N là N-1
4.2 Mảng
4.2 Arrays
Tên của mảng (Lưu ý rằng tất
cả các phần tử của mảng này
có cùng tên, c)
c[0] -45
c[1] 6
c[2] 0
c[3] 72
c[4] 1543
c[5] -89
c[6] 0
c[7] 62
c[8] -3
c[9] 1
c[10] 6453
c[11] 78
Element Value
fig04_03.cpp
0 0 (2 of 2)
1 0
2 0 fig04_03.cpp
3 0 output (1 of 1)
4 0
5 0
6 0
7 0
8 0
9 0
• Kích cỡ mảng
– Có thể được chỉ rõ bởi các hằng biến (const)
• const int size = 20;
– Các hằng biến không thể thay đổi
– Các hằng biến phải được gán giá trị ban đầu khi khai báo
– Còn được gọi là hằng hay biến chỉ đọc
Face Frequency
1 1003
2 1004
3 999
4 980
5 1013
6 1001
• Ví dụ:
– Đi từ trái sang phải, và trao đổi các phần tử cần thiết
• Mỗi pass mỗi phần tử
– Ban đầu: 3 4 2 7 6
– Pass 1: 3 2 4 6 7 (Các phần tử trao đổi)
– Pass 2: 2 3 4 6 7
– Pass 3: 2 3 4 6 7 (không cần thay đổi)
– Pass 4: 2 3 4 6 7
– Pass 5: 2 3 4 6 7
– Các phần tử nhỏ "bubble" đưa lên đầu (như 2 trong ví dụ
này)
1 1 *
2 3 ***
3 4 ****
4 5 *****
5 8 ********
6 9 *********
7 23 ***********************
8 27 ***************************
9 19 *******************
The mode is the most frequent value.
For this run the mode is 8 which occurred 27 times.
Subscripts:
fig04_20.cpp
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
output (1 of 2)
------------------------------------------------------------
0 2 4 6 8 10 12 14* 16 18 20 22 24 26 28
0 2 4 6* 8 10 12
Subscripts:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
------------------------------------------------------------
0 2 4 6 8 10 12 14* 16 18 20 22 24 26 28
16 18 20 22* 24 26 28
24 26* 28
24*
25 not found
• Nhiều subscript
– a[ i ][ j ]
– Các bảng biểu với hàng và cột
– Định rõ hàng, rồi tới cột
– “Mảng của các mảng”
• a[0] là một mảng 4 phần tử
• a[0][0] là phần tử đầu tiên của mảng đó
Column 0 Column 1 Column 2 Column 3
Hàng 0 a[ 0 ][ 0 ] a[ 0 ][ 1 ] a[ 0 ][ 2 ] a[ 0 ][ 3 ]
Hàng 1 a[ 1 ][ 0 ] a[ 1 ][ 1 ] a[ 1 ][ 2 ] a[ 1 ][ 3 ]
Hàng 2 a[ 2 ][ 0 ] a[ 2 ][ 1 ] a[ 2 ][ 2 ] a[ 2 ][ 3 ]
Ký hiệu cột
Tên mảng
Ký hiệu hàng
• Khởi tạo
– Mặc định 0
– Các giá trị khởi tạo được nhóm lại theo hàng trong các dấu
1 2
ngoặc 3 4
int b[ 2 ][ 2 ] = { { Row 0
1, 2 }, { Row 1
3, 4 } };
1 0
3 4
int b[ 2 ][ 2 ] = { { 1 }, { 3, 4 } };
– Xuất ra 0 3 4
• Tiếp theo: chương trình hiển thị giá trị khởi tạo
– Sau đó, chương trình tiếp tục tìm điểm sinh viên
– Mảng nhiều biến (bảng biểu)
– Hàng là sinh viên
– Cột là điểm Quiz1 Quiz2
Student0 95 85
Student1 89 80