Professional Documents
Culture Documents
Nội dung
3. Bài tập
Design by Minh An
1
1. Mảng một chiều
Design by Minh An
• Khái niệm:
– Mảng một chiều là một dãy liên tiếp các biến có cùng kiểu
dữ liệu.
• Khai báo:
<Kiểu_dữ_liệu> <Tên_mảng><[Kích_thước]>;
– Kiểu dữ liệu: có thể là các kiểu cơ sở, cấu trúc
– Tên mảng: Một tên phù hợp với quy tắc
– Kích thước: Số nguyên dương
Design by Minh An
2
Khái niệm mảng một chiều (tt)
• Ví dụ:
int a[10];
0 1 2 3 4 5 6 7 8 9
Mảng a
Design by Minh An
Design by Minh An
3
2.1. Đưa dữ liệu vào mảng
0 1 2 3 4 5 6 7 8 9
Mảng a
8
Design by Minh An
0 1 2 3 4 5 6 7 8 9
Mảng a
3 -5 1 9 2 8 6
Design by Minh An
4
Đưa dữ liệu vào mảng (tt)
Design by Minh An
Design by Minh An
5
2.2. Hiển thị mảng lên màn hình
Design by Minh An
1. Tìm kiếm
Design by Minh An
6
3.1. Kỹ thuật tìm kiếm
i
0 1 2 3 4 5 6 7 8 9
Mảng a
n=7 3 -5 1 9 2 8 6
Design by Minh An
Design by Minh An
7
Tính toán và thống kê số liệu (tt)
i
0 1 2 3 4 5 6 7 8 9
Mảng a
n=7 3 -5 1 9 2 8 6
Design by Minh An
8
3.3. Xóa một phần tử dữ liệu trong mảng
Vị trí thứ k = 3 i
0 1 2 3 4 5 6 7 8 9
Mảng a
n=7 3 -5 1 9 2 8 6
0 1 2 3 4 5 6 7 8 9
Mảng a
n=6 3 -5 9 2 8 6
Design by Minh An
Design by Minh An
9
3.4. Chèn một phần tử dữ liệu vào mảng
• Chèn phần tử x = 12 vào vị trí thứ k = 3 trong mảng a.
Vị trí thứ k = 3 i
0 1 2 3 4 5 6 7 8 9
Mảng a
n=7 3 -5 1 9 2 8 6
x
12
0 1 2 3 4 5 6 7 8 9
Mảng a
n=7 3 -5 1 9 2 8 6
0 1 2 3 4 5 6 7 8 9
Mảng a
n=8 3 -5 12 1 9 2 8 6
Design by Minh An
Design by Minh An
10
3.5. Sắp xếp dữ liệu trong mảng
1 3 4 0 2 0 3 4 1 2 0 1 3 4 2 0 1 2 3 4
1 3 4 0 2 0 1 4 3 2 0 1 2 4 3
0 3 4 1 2 0 1 4 3 2
0 3 4 1 2
Design by Minh An
Design by Minh An
11
4. Bài tập
1. Một hiệu thuốc mỗi ngày bán được n đơn thuốc. Đơn thuốc
thứ i bán được số tiền là mi. Cài đặt chương trình cho chủ
hiệu thuốc thực hiện các yêu cầu:
• Nhập số lượng đơn thuốc (n) bán được trong ngày (1 ≤ n ≤ 30).
• Nhập vào danh sách gồm số tiền của n đơn thuốc.
• Sau khi nhập chủ hiệu thuốc có thể chọn thực hiện các yêu cầu sau
thông qua một menu bằng cách bấm phím.
– Hiển thị danh sách số tiền lên màn hình gồm 2 cột như sau:
Số TT Số tiền (vnđ)
1 540000
… …
Tổng cộng: … vnđ
– Xem đơn thuốc thứ bao nhiêu có số tiền ít nhất.
– Xóa số tiền của đơn thuốc thứ k trong DS (do nhập thừa).
Design by Minh An
Bài tập
2. Lớp 8A1 có n HS (1 ≤ n ≤ 30) sẽ TK năm học vào ngày mai.
Cài đặt chương trình cho GVCN lớp thực hiện các yêu cầu:
• Nhập số lượng học sinh (n) của lớp.
• Nhập vào danh sách gồm điểm của n học sinh.
• Sau khi nhập GVCN có thể chọn thực hiện các yêu cầu sau thông
qua một menu bằng cách bấm phím.
– Hiển thị danh sách điểm lên màn hình gồm 3 cột như sau:
Số TT Điểm TK Xếp loại
1 7.5 Khá
… … …
Trung bình chung: … vnđ
– Xem điểm thấp nhất lớp, cao nhất lớp.
– Chèn thêm điểm HS thứ k vào DS (do GVCN nhập thiếu).
– Sắp xếp danh sách theo thứ tự điểm giảm dần.
Design by Minh An
12
Bài tập mảng 1 chiều
3. Có n HS khối lớp 6 (1 ≤ n ≤ 100) dự thi kiểm tra chất lượng.
Cài đặt chương trình cho giáo vụ thực hiện các yêu cầu:
• Nhập số lượng học sinh (n) của khối.
• Nhập vào danh sách gồm điểm hai môn toán và văn của n học sinh.
• Sau khi nhập GVCN có thể chọn thực hiện các yêu cầu sau thông qua
một menu bằng cách bấm phím.
– Hiển thị danh sách điểm lên màn hình gồm 5 cột như sau:
Số TT Toán Văn TB Kết quả
1 7.5 6.5 7.0 Đạt
… … …
(Kết quả là đạt nếu điểm TB ≥ 5.0 và không có môn nào dưới 4.0)
– Xem danh sách HS không đạt và số lượng HS không đạt.
– Xem DS 10 HS có điểm trung bình cao nhất.
– Xóa các HS bỏ thi (điểm cả hai môn đều = 0).
Ghi chú: Sử dụng hai mảng 1 chiều để lưu điểm 2 môn)
Design by Minh An
Design by Minh An
13
2.1. Khái niệm mảng hai chiều
❖ Mảng đa chiều đơn giản nhất và thường được dùng nhất
là mảng hai chiều gồm các dòng và các cột.
Cột
Chỉ số
cột
0 1 2
Chỉ số
dòng 0 0 1 0
1 0 1 0
2 1 0 1 Dòng
Dữ liệu
3 1 1 1
Design by Minh An
<Kiểu_Dữ_Liệu> <tên_mảng><[M][N]>;
Trong đó M là số dòng, N là số cột của mảng.
❖ Ví dụ:
int b[4][3]; 0 1 2
0
Dòng b[0]
1
2
Mảng b
3
Dòng b[0] (hay b[i] nói chung) là 1 mảng 1 chiều với các
phần tử là b[0][0], b[0][1], b[0][2]
Design by Minh An
14
Khái niệm mảng hai chiều (tt)
❖ Về logic, một mảng hai chiều giống như một BẢNG
THÀNH TÍCH của các vận động viên cử tạ, gồm các
dòng và các cột.
❖ Bảng thành tích của 4 vận động viên cử tạ, mỗi vận
động viên cử 3 lần.
Design by Minh An
❖ Mảng hai chiều b lưu trữ BẢNG THÀNH TÍCH của các
vận động viên cử tạ.
0 1 2
Design by Minh An
15
2. Khởi tạo mảng hai chiều
❖ Khởi tạo mảng trong lệnh khai báo.
int b[4][3] = {
{134, 136, 140},
{134, 135, 137},
{135, 137, 143},
{123, 135, 136}
};
Design by Minh An
Design by Minh An
16
3. Xử lý mảng hai chiều
Design by Minh An
Design by Minh An
17
Xử lý mảng hai chiều (tt)
Design by Minh An
0 1 2 3 4 5
0 0 1 2 3 4 5
1 17 18 19 20 21 6
2 16 27 28 29 22 7
3 15 26 25 24 23 8
4 14 13 12 11 10 9
Design by Minh An
18
Xử lý mảng hai chiều (tt)
4) Chương trình quản lý kết quả bóng đá:
− Có n (n ≤ 20, n nhập từ bàn phím) đội bóng thi đấu vòng
tròn một lượt theo thể lệ: Đội thắng được 3 điểm, đội thua
được 0 điểm, hòa mỗi đội 1 điểm.
− Cài đặt chương trình:
✓ Nhập vào kết quả chính xác của các trận đấu.
✓ Lập bảng ghi điểm số của mỗi đội trong mỗi trận đấu.
✓ Hiển thị bảng điểm số ra màn hình.
✓ Lập bảng tổng sắp gồm các cột: Số thứ tự đội, số trận
thắng, thua, hòa, hiệu số bàn thắng – thua, tổng điểm,
xếp hạng.
✓ Cho biết đội vô địch (có tổng điểm cao nhất, hiệu số bàn
thắng – thua cao nhất, nhiều trận thắng nhất, số bàn
thắng nhiều nhất, trận thua ít nhất, số bàn thua ít nhất).
Design by Minh An
Thank you…!
Design by Minh An
19