Bài giảng Tin học đại cương - Bài 7: Mảng một chiều, hai chiều - Nguyễn Thị Phương Thảo

1. Khái niệm mảng một chiều

 Ví dụ: Nhập dữ liệu điểm môn Tin học đại

cương cho 120 sinh viên lớp N03. Đếm và hiển

thị ra màn hình các điểm thi trên 8.

 Sử dụng 120 biến phân biệt d1, d2,. . ., d120

để lưu trữ và xử lí điểm thicó các nhược điểm

- Việc quản lí các biến không dễ dàng

- Khó sử dụng cấu trúc lặp

- Không tổng quát, khó nâng cấp chương trình

→ Giải pháp:sửdụng kiểu dữ liệu mảng

Bài giảng Tin học đại cương - Bài 7: Mảng một chiều, hai chiều - Nguyễn Thị Phương Thảo trang 1

Trang 1

Bài giảng Tin học đại cương - Bài 7: Mảng một chiều, hai chiều - Nguyễn Thị Phương Thảo trang 2

Trang 2

Bài giảng Tin học đại cương - Bài 7: Mảng một chiều, hai chiều - Nguyễn Thị Phương Thảo trang 3

Trang 3

Bài giảng Tin học đại cương - Bài 7: Mảng một chiều, hai chiều - Nguyễn Thị Phương Thảo trang 4

Trang 4

Bài giảng Tin học đại cương - Bài 7: Mảng một chiều, hai chiều - Nguyễn Thị Phương Thảo trang 5

Trang 5

Bài giảng Tin học đại cương - Bài 7: Mảng một chiều, hai chiều - Nguyễn Thị Phương Thảo trang 6

Trang 6

Bài giảng Tin học đại cương - Bài 7: Mảng một chiều, hai chiều - Nguyễn Thị Phương Thảo trang 7

Trang 7

Bài giảng Tin học đại cương - Bài 7: Mảng một chiều, hai chiều - Nguyễn Thị Phương Thảo trang 8

Trang 8

Bài giảng Tin học đại cương - Bài 7: Mảng một chiều, hai chiều - Nguyễn Thị Phương Thảo trang 9

Trang 9

Bài giảng Tin học đại cương - Bài 7: Mảng một chiều, hai chiều - Nguyễn Thị Phương Thảo trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 22 trang xuanhieu 8180
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Tin học đại cương - Bài 7: Mảng một chiều, hai chiều - Nguyễn Thị Phương Thảo", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Tin học đại cương - Bài 7: Mảng một chiều, hai chiều - Nguyễn Thị Phương Thảo

Bài giảng Tin học đại cương - Bài 7: Mảng một chiều, hai chiều - Nguyễn Thị Phương Thảo
 TIN ĐẠI CƯƠNG
MẢNG MỘT CHIỀU, 
 HAI CHIỀU
 Nguyễn Thị Phương Thảo
 Bộ môn KTMT và M, Khoa CNTT
 Trường Đại học Thủy Lợi
 1
 Nội dung chính
1. Khái niệm mảng một chiều
2. Khai báo mảng
3. Sử dụng mảng
4. Bài tập
5. Mảng 2 chiều
 2
 1. Khái niệm mảng một chiều
 . Ví dụ: Nhập dữ liệu điểm môn Tin học đại
 cương cho 120 sinh viên lớp N03. Đếm và hiển
 thị ra màn hình các điểm thi trên 8.
 . Sử dụng 120 biến phân biệt d1, d2,. . ., d120
 để lưu trữ và xử lí điểm thi có các nhược điểm
 - Việc quản lí các biến không dễ dàng
 - Khó sử dụng cấu trúc lặp
 - Không tổng quát, khó nâng cấp chương trình
→ Giải pháp: sử dụng kiểu dữ liệu mảng
 3
 Mảng
. Mảng là một dãy hữu hạn các phần tử có
 cùng kiểu dữ liệu và chiếm một vùng liên tục
 trong bộ nhớ
. Các phần tử của mảng được truy cập thông
 qua chỉ số của chúng (index)
. Ví dụ : Mảng A gồm 5 giá trị nguyên kiểu int.
 Các phần tử được đánh số từ 0 đến 4.
 4
 2. Khai báo mảng
. Cú pháp :
 [];
. Ví dụ :
 . int A[5]; //mảng A có 5 phần tử dạng int
 . float B[10] ; //mảng B có 10 phần tử dạng float với chỉ số
 từ 0 đến 9
. là một hằng
 5
 Khai báo mảng
. Có thể gán giá trị ban đầu cho các phần tử của mảng khi
 khai báo mảng bằng cách đặt các giá trị trong hai dấu { }
. Ví dụ :
 . int A[5] = {100, 34, 23, 213, 500 } ;
 . int A[ ] = {100, 34, 23, 213, 500 } ; //không chỉ định cỡ của
 mảng → khai báo mảng với cỡ đủ để chứa các giá trị khởi tạo
 . int A[5] = {100, 34, 23 } ; //điền các giá trị này từ đầu mảng,
 điền phần còn lại với giá trị 0
 6
 3. Sử dụng mảng
. Sử dụng chỉ số đặt trong cặp dấu [ ] để truy cập đến từng
 phần tử trong mảng : []
 int A[5] = {100, 34, 23, 213, 500 } ;
 → A[0] = 100, A[1] = 34, A[2] = 23, A[3] = 213, A[4] = 500
. Có thể thao tác với các phần tử của mảng như thao tác với
 một biến thông thường
 . A[0] -= 9; → A[0] = 91
 . A[3] *= 2; → A[3] = 426
. Chỉ số có thể là một biến nguyên hoặc một biểu thức
 nguyên
 . size = 5; → A[size-1] = 500 //phần tử cuối cùng của mảng
 . A[size/2] = A[2] = 23
 7
 Chú ý
. Kích thước mảng phải cố định (mảng tĩnh)
. Mảng không thể thay đổi kích thước trong quá trình chương
 trình chạy
. Có thể dùng hằng có tên để chỉ định kích thước mảng
Trình biên dịch báo lỗi vì Trình biên dịch không báo lỗi vì 
kich_thuoc là biến có thể kich_thuoc là hằng. Mảng a có 10
thay đổi giá trị phần tử.
 8
 Chú ý
. Chỉ số được đánh số từ 0 đến size-1.
. C++ "cho phép" vượt ra khỏi miền, trình biên
 dịch không phát hiện ra lỗi này. Trong trường hợp
 này
 Kết quả không đoán trước được
 Lập trình viên phải tự kiểm soát miền của chỉ
 số
. Lỗi hay gặp :
 float diemthi[120] ;
 diemthi[120] = 8.5; //chỉ số 120 nằm ở ngoài
 miền
 9
 MỘT SỐ THAO TÁC CƠ BẢN VỚI MẢNG
. Nhập dữ liệu cho mảng
. In các giá trị của mảng ra màn hình
 10
 Một số bài toán với mảng
. Nhập, xuất dữ liệu của mảng
. Tính tổng các phần tử của mảng (các phần tử
 thỏa mãn điều kiện cho trước) 
. Đếm số các phần tử dương, các phần tử chia 
 hết cho 1 số nào đó
 11
 Một số bài toán với mảng
. Tìm một phần tử x trong mảng
. Tìm phần tử lớn nhất/nhỏ nhất và vị trí của
 chúng trong mảng
. Sắp xếp mảng theo thứ tự tăng dần/giảm
 dần
. Tìm phần tử xuất hiện nhiều nhất trong mảng
 12
 TÌM PHẦN TỬ LỚN NHẤT CỦA MẢNG
Trong trường hợp mảng có nhiều số bằng nhau và lớn
nhất thì các vị trí được hiển thị như thế nào?
 13
SẮP XẾP MẢNG THEO THỨ TỰ TĂNG
 14
 4. BÀI TẬP
Bài 1: Nhập vào một dãy 10 số thực. Hiển thị dãy số
đó trên màn hình.
Bài 2: Nhập vào một dãy 10 số nguyên và một số
nguyên n. Đếm và chỉ ra vị trí các phần tử của dãy có
giá trị
 . Bằng n.
 . Nhỏ hơn n.
 . Là ước số của n.
Bài 3: Nhập vào một dãy 10 số thực. Tìm phần tử nhỏ
nhất và vị trí của nó trong dãy số.
 15
5. MẢNG HAI CHIỀU
5.1. Khái niệm mảng hai chiều
 . Mảng hai chiều là sự mở rộng của mảng một
 chiều. Về bản chất, nó là một danh sách các
 mảng một chiều.
 . Các phần tử của mảng 2 chiều được truy cập
 thông qua hai chỉ số của chúng
 . Ví dụ : Mảng A gồm 3*5 phần tử được biểu
 diễn như sau
 16
5.2. Khai báo mảng 2 chiều
 . Cú pháp :
 [số hàng] [số cột];
 Ví dụ :
 int A[3][5]; //mảng A có 3*5 phần tử dạng int
 . Truy cập đến các phần tử trong mảng :
 [] []
 Ví dụ : A[1][2] = 8;
 17
Khai báo mảng 2 chiều (tiếp)
 . Có thể gán giá trị ban đầu cho các phần tử của mảng
 khi khai báo mảng
 Ví dụ :
 int A[3][5] = {
 {0, 1, 2, 3, 4} , //hàng thứ nhất
 {5, 6, 7, 8, 9} , //hàng thứ hai
 {10, 11, 12, 13, 14} //hàng thứ ba
 } ;
 Hoặc: 
 int A[3][5] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14} ;
 Hai cách làm trên là tương đương
 18
5.4. Sử dụng mảng 2 chiều
 ◮ Tương tự như mảng một chiều, chỉ khác là có hai chỉ số
 đặt trong hai cặp dấu [ ]
 ◮ Nhắc lại :
 ◮ kích thước mảng phải cố định
 ◮ chỉ số được đánh số từ 0
 ◮ lập trình viên phải tự kiểm soát miền của chỉ số vì trình biên
 dịch không báo lỗi khi chỉ số vượt ra khỏi miền
 19
5.5. Một số thao tác cơ bản
 . Nhập dữ liệu cho mảng 2 chiều
 . In các giá trị của mảng ra màn hình
 20
5.5. Một số bài toán với mảng hai chiều
 . Tương tự như với mảng một chiều, có các bài
 toán thực hiện tính toán trên toàn bộ mảng :
 - Tính tổng các phần tử của mảng
 - Đếm số các phần tử dương
 - Tìm phần tử lớn nhất/nhỏ nhất và vị trí của chúng trong mảng
 . Các bài toán quy về mảng một chiều: tính toán
 trên một hàng, một cột hay trên đường chéo của
 mảng hai chiều
 21
5. 6. Bài tập
 Bài 1: Nhập vào một ma trận vuông các số thực.
 Tính trung bình cộng của các phần tử trên đường
 chéo chính của ma trận.
 Bài 2: Nhập vào một ma trận các số thực. Tìm phần
 tử nhỏ nhất và vị trí của nó trong ma trận.
 22

File đính kèm:

  • pdfbai_giang_tin_hoc_dai_cuong_bai_7_mang_mot_chieu_hai_chieu_n.pdf