Bài giảng "Tin học đại cương - Phần 2: Lập trình bằng ngôn ngữ C++" cung cấp cho người học các kiến thức: Mảng một chiều (Dãy), thuật toán tách dãy, thuật toán sắp xếp, thuật toán đổi chỗ, thuật toán xóa phần tử,... Mời các bạn cùng tham khảo.
AMBIENT/
Chủ đề:
Nội dung Text: Bài giảng Tin học đại cương: Phần 2 - ThS. Phạm Thanh Bình (4)
- Bài 8 – Mảng một chiều (Dãy)
Khái niệm mảng một chiều
Khai báo mảng
Nhập/xuất mảng
Các bài toán về mảng một chiều
Bộ môn Kỹ thuật máy tính – Khoa
CNTT Tin học đại cương 2 1
- 1. Khái niệm mảng một chiều
Mảng một chiều là một công cụ cho
phép tổ chức quản lý dữ liệu dưới dạng
“dãy”
Ví dụ:
Xét dãy số sau đây:4
A: 5 7 1 9
A0 A1 A2 A3 A4
Bộ môn Kỹ thuật máy tính – Khoa
CNTT Tin học đại cương 2 2
- Các phần tử của mảng
Mảng một chiều bao gồm nhiều phần tử,
mỗi phần tử được đặc trưng bởi hai yếu
tố: Giá trị của phần tử và vị trí của phần
tử trong mảng
Một phần tử bất kỳ của mảng thường
được kí hiệu là A[i], trong đó:
+ A là tên mảng
+ i là vị trí của phần tử trong mảng
Bộ môn Kỹ thuật máy tính – Khoa
CNTT Tin học đại cương 2 3
- 2. Khai báo mảng
Muốn sử dụng mảng một chiều trong
chương trình thì phải khai báo nó
Khai báo mảng thực chất là sự khai báo
đồng thời nhiều biến có cùng kiểu dữ liệu
Có nhiều cách khai báo khác nhau
Bộ môn Kỹ thuật máy tính – Khoa
CNTT Tin học đại cương 2 4
- Các cách khai báo mảng một chiều:
Cách 1:
KiểuDL TênMảng[Số phần tử tối đa];
Ví dụ 1:
int A[100];
Mảng này có tối đa 100 phần tử, mỗi phần
tử là một số nguyên
Khai báo trên sẽ tạo ra 100 biến nguyên:
A[0], A[1], ... , A[99]
Bộ môn Kỹ thuật máy tính – Khoa
CNTT Tin học đại cương 2 5
- Ví dụ 2:
char B[60];
Mảng này có tối đa 60 phần tử, mỗi
phần tử là một kí tự
Khai báo trên sẽ tạo ra 60 biến kiểu kí tự:
B[0], B[1], ... , B[59]
Bộ môn Kỹ thuật máy tính – Khoa
CNTT Tin học đại cương 2 6
- Cách 2:
vector TênMảng(Số phần tử tối đa);
Ví dụ:
vector A(100);
Mảng này có tối đa 100 phần tử, mỗi phần
tử là một số nguyên
Chú ý: Muốn sử dụng cách khai báo này thì phải
viết dòng sau đây ở đầu chương trình:
#include
Bộ môn Kỹ thuật máy tính – Khoa
CNTT Tin học đại cương 2 7
- 3. Nhập/xuất mảng
Nhập dữ liệu cho mảng từ bàn phím:
Thực chất là nhập dữ liệu cho nhiều biến,
do đó cần sử dụng vòng lặp.
Ví dụ 1:
Nhập một dãy số nguyên có 8 phần tử.
Cần lặp 8 lần!
Bộ môn Kỹ thuật máy tính – Khoa
CNTT Tin học đại cương 2 8
- Các lệnh nhập:
int A[8];
for (int i = 0; i
- Các lệnh xuất (hiển thị):
Ví dụ 2:
Hiện dãy số vừa nhập (8 phần tử) ra màn hình.
cout
- Chương trình:
#include
using namespace std;
main()
{ int A[8];
for (int i = 0; i
- Cách 2:
#include
#include
using namespace std;
main()
{ vector A(8);
for (int i = 0; i
- Bài tập:
Nhập một dãy số thực có N phần tử (N là
một giá trị bất kỳ nhập từ bàn phím).
Hiện dãy vừa nhập ra màn hình.
Bộ môn Kỹ thuật máy tính – Khoa
CNTT Tin học đại cương 2 13
- Nội dung chương trình:
#include
using namespace std;
main()
{ float A[100]; int N ;
cout N ;
for (int i = 0; i
- 4. Các bài toán về mảng một chiều
Bài toán tính tổng, đếm số lượng, trung
bình cộng
Bài toán tìm giá trị lớn nhất, nhỏ nhất, vị
trí phần tử
Thêm bớt phần tử
Bài toán đổi chỗ, sắp xếp dãy
...
Bộ môn Kỹ thuật máy tính – Khoa
CNTT Tin học đại cương 2 15
- Ví dụ 1:
Nhập một dãy có N số thực từ bàn phím
rồi tính tổng của chúng
Hiện tổng và hiện dãy ra màn hình.
Bộ môn Kỹ thuật máy tính – Khoa
CNTT Tin học đại cương 2 16
- Thuật toán tính tổng?
+ Ban đầu tổng S bằng 0
+ Mỗi khi nhập được một số thì đem cộng
nó vào tổng S
(Lặp lại N lần)
Bộ môn Kỹ thuật máy tính – Khoa
CNTT Tin học đại cương 2 17
- Thuật toán tính tổng N số:
S = 0;
cout N ;
for (int i = 0; i
- Bài tập:
Nhập một dãy có N số thực từ bàn phím
rồi tính trung bình cộng của chúng
Hiện trung bình cộng và hiện dãy ra màn
hình.
Bộ môn Kỹ thuật máy tính – Khoa
CNTT Tin học đại cương 2 19
- Bài tập ứng dụng:
1. Nhập lượng mưa của bảy ngày trong tuần
từ bàn phím rồi tính lượng mưa trung bình.
2. Giả sử một học kì có N môn học. Hãy
nhập điểm các môn học từ bàn phím rồi
tính điểm trung bình của học kì
(tạm coi các môn có hệ số bằng nhau)
Bộ môn Kỹ thuật máy tính – Khoa
CNTT Tin học đại cương 2 20