Tải bản đầy đủ (.ppt) (22 trang)

Chương 7: KiỂU DỮ LiỆU MẢNG pps

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 (389.53 KB, 22 trang )

Chương 7:
Chương 7:


KiỂU DỮ LiỆU MẢNG
KiỂU DỮ LiỆU MẢNG
THĐC - Văn Thị Thiên Trang - Khoa CNTT
2
Nội dung

Định nghĩa và khai báo mảng 1 chiều, mảng nhiều
chiều

Truyền mảng cho hàm

Các bài toán trên mảng 1 chiều

Chuỗi kí tự, giới thiệu các hàm xử lý chuỗi
THĐC - Văn Thị Thiên Trang - Khoa CNTT
3
Định nghĩa mảng

Khi làm việc với các cấu trúc dữ liệu dạng dãy hay
danh sách các phần tử, ta sử dụng kiểu mảng
(array)

Mảng 1 chiều: một dãy các phần tử
VD: 2 4 0 1 5 2

Mảng nhiều chiều: một bảng các phần tử
VD: 1 0 1 2 3 5


3 1 8 4 5 2
2 7 5 0 1 2
THĐC - Văn Thị Thiên Trang - Khoa CNTT
4
Định nghĩa mảng

Mảng một chiều

Dãy các phần tử có cùng kiểu dữ liệu

Các phần tử được sắp xếp theo trật tự nhất định

Mỗi phần tử được xác định bằng một số thứ tự duy nhất trong mảng (còn gọi là chỉ số)
0 1 2 3 4
Ví dụ mảng

Mảng số nguyên

Mảng số thực
THĐC - Văn Thị Thiên Trang - Khoa CNTT
5
1.2 2.0 -1.25 4.1 3.3
0 1 2 3 4
2 4 8 7 1
0 1 2 3 4
THĐC - Văn Thị Thiên Trang - Khoa CNTT
6
Khai báo mảng

Mảng 1 chiều


Tên mảng: đặt tùy ý, là tên biến mảng

Kích thước: số lượng phần tử tối đa của mảng

Kiểu: là kiểu của mỗi phần tử của mảng

Chỉ số của phần tử đánh từ 0 kích thước mảng -1
<Kiểu dữ liệu> <Tên mảng>[Kích
thước];
THĐC - Văn Thị Thiên Trang - Khoa CNTT
7
Khai báo mảng

VD: int a[10];

Truy xuất đến từng phần tử của mảng

VD:
int a[10];
a[0]=-1; a[1]=4;
printf(“a[%d]=%d”, 1, a[1]);
a[0] A[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]
Chỉ số 0 1 2 3 4 5 6 7 8 9
Tên_biến_mảng[chỉ số];
THĐC - Văn Thị Thiên Trang - Khoa CNTT
8
Truyền mảng cho hàm

Cú pháp


VD
void Nhap(int a[], int n){…}
float Tong(float a[], int n){…}
<Kiểu dl trả về> <Tên hàm>(<Kiểu dl> <Tên mảng>[], int <số phần tử>, …)
THĐC - Văn Thị Thiên Trang - Khoa CNTT
9
Một số bài toán trên mảng 1 chiều

Viết chương trình thực hiện:

Nhập mảng số nguyên gồm n phần tử (với n nhập từ bàn phím)

Xuất mảng vừa nhập

Tính tổng các phần tử trong mảng
THĐC - Văn Thị Thiên Trang - Khoa CNTT
10
Nhập mảng 1 chiều
void
void NhapMang(int a[], int &n)
{
//nhập số lượng phần tử của mảng
printf(“Nhap so pt cua mang”);
scanf(“%d”, &n);
//nhập giá trị cho mỗi phần tử của mảng
for(int i=0; i<n; i++)
{
printf(“a[%d]=“, i);
scanf(“%d”, &a[i]);

}
}
THĐC - Văn Thị Thiên Trang - Khoa CNTT
11
Xuất mảng 1 chiều
void
void XuatMang(int a[], int n)
{
for(int i=0; i<n; i++)
printf(“%4d”, a[i]);
}
Ví dụ

Nhập mảng 1 chiều các số thực

Xuất mảng 1 chiều các số thực
THĐC - Văn Thị Thiên Trang - Khoa CNTT
12
THĐC - Văn Thị Thiên Trang - Khoa CNTT
13
Bài tập
1.Nhập mảng gồm n số nguyên, n nhập từ bàn phím
với 0<n<5
2.Hiển thị các phần tử dương nhỏ hơn 5
3.Hiển thị các phần tử nguyên tố có trong mảng
4.Liệt kê các số chính phương trong mảng
5.Tính trung bình cộng các phần tử trong mảng
6.Tìm phần tử lớn nhất/nhỏ nhất
THĐC - Văn Thị Thiên Trang - Khoa CNTT
14

Mảng 2 chiều

Mỗi phần tử của mảng là một mảng khác

VD: Ma trận

Khai báo
2 4 0 5
1 3 8 6
9 2 7 4
<Kiểu> <Tên mảng>[Kích thước chiều 1][Kích thước chiều 2];
Ví dụ

Mảng các số nguyên

Mảng các số thực
THĐC - Văn Thị Thiên Trang - Khoa CNTT
15
2 4 0 5
1 3 8 6
9 2 7 4
2.1 4.4 0 5
1 3.3 8 6
9.9 2 7.2 4
THĐC - Văn Thị Thiên Trang - Khoa CNTT
16
Mảng 2 chiều

VD: int a[5][5];
a[0][0] a[0][1] a[0][2] a[0][3] a[0][4]

a[1]
[0]
a[1][1] a[1][2] a[1][3] a[1][4]
a[2][0] a[2][1] a[2][2] a[2][3] a[2][4]
a[3]
[0]
a[3][1] a[3][2] a[3][3] a[3][4]
a[4][0] a[4][1] a[4][2] a[4][3] a[4][4]
Hàng 0
1
2
3
4
Cột 0 1 2 3 4
THĐC - Văn Thị Thiên Trang - Khoa CNTT
17
Mảng 2 chiều

Truy xuất phần tử của mảng

Truyền mảng 2 chiều cho hàm
Tên_mảng[chỉ số 1][chỉ số 2]
<Kiểu> <Tên mảng>[][số pt chiều 2]
THĐC - Văn Thị Thiên Trang - Khoa CNTT
18
Nhập, xuất mảng 2 chiều

VD: Nhập ma trận gồm m dòng, n cột
void
void NhapMang(int a[][100], int &m, int &n)

{
//nhập số dòng
printf(“Nhap so dong va cot”);
scanf(“%d%d”, &m, &n);
//nhập số cột
for(int i=0; i<m; i++)
for(int j=0; j<n; j++)
{
printf(“a[%d][%d]=“,I,j );
scanf(“%d”, &a[i][j]);
}
}
Xuất mảng
THĐC - Văn Thị Thiên Trang - Khoa CNTT
19
THĐC - Văn Thị Thiên Trang - Khoa CNTT
20
Mảng 2 chiều

Viết chương trình thực hiện

Nhập ma trận gồm m dòng và n cột (m, n nhập từ bàn phím

Xuất ma trận

Hiển thị các phần tử trên đường chéo chính

Tính tổng các phần tử của ma trận
THĐC - Văn Thị Thiên Trang - Khoa CNTT
21

Chuỗi kí tự

Tham khảo tài liệu
THĐC - Văn Thị Thiên Trang - Khoa CNTT
22

×