Mảng, con trỏ và xâu ký tự - Tin học đại cương (IT1110) | Trường Đại học Bách khoa Hà Nội

Nhập điểm thi môn tin cho lớp gồm 50 sinh viên rồi đưa ra số lượng sinh viên phải học lại

Môn:
Trường:

Đại học Bách Khoa Hà Nội 2.8 K tài liệu

Thông tin:
3 trang 7 tháng trước

Bình luận

Vui lòng đăng nhập hoặc đăng ký để gửi bình luận.

Mảng, con trỏ và xâu ký tự - Tin học đại cương (IT1110) | Trường Đại học Bách khoa Hà Nội

Nhập điểm thi môn tin cho lớp gồm 50 sinh viên rồi đưa ra số lượng sinh viên phải học lại

68 34 lượt tải Tải xuống
lOMoARcPSD| 27879799
lOMoARcPSD| 27879799Mảng, con trỏ và xâu ký tự
*Nhập điểm thi môn n cho lớp gồm 50 sinh viên rồi đưa ra số ợng sinh
viên phải học lại
- Tên biến là tên sinh viên: int An, Anh, Binh1, Cuong,…- Tên biến dạng
dx” với x là chỉ số thứ tự của SV trong lớp: int d1, d2,…, d50.
Nhận xét 1: Không hợp lý
- Có quá nhiều biến
- Khó khan cho các thao tác duyệt toàn bộ danh sách.Nhận xét 2: Các
biến chung ý nghĩa, nh chất.
1. Khái niệm mảng
*Kiểu mảng là một kiểu dữ liệu gồm:
- Một số hữu hạn thành phần.
- Các thành phần có cùng 1 kiểu: kiểu cơ sở hay là kiểu thànhphần
* Mỗi phần tử của mgnr được tham khảo thông qua:- Tên mảng và chỉ
số của phần tử trong mảng.
* Khai báo mảng.
// khai báo mảng 50 phần tử có kiểu dữ liệu int // : int
DienTin[50]
// Mảng 10 phần tử kiểu số thực //: 昀氀 oat A[10]
*Cấp phát bộ nhớ cho mảng
- Các phần tử trong mảng được cấp phát các ô nhớ kết iteeps nhau trong bộ
nhwos
- Kích thước của mảng bằng kích thước một phần tử nhân với số phần tử
lOMoARcPSD| 27879799
VD: int A[10] // mảng A gồm 10 phần tử nguyên // Kích thưc
mảng A: 10 x 4 = 40 bytes.
*Truy nhập phần tử của mảng
- int a[10] :
VD: int A[10];
For (int I = 0; I < 10; i++) A[i] = 2 * I;
=> A = [0,2,4,6,8,10,12,14,16,18]
- Chú ý: C không kiểm tra vượt quá giới hạn của mảng khi truy
cập.VD: int A[3], B[4], C[3];
0
2
4
6
8
10
12
14
16
18
A[0]
A[1]
A[2]
B[0]
B[1]
B[2]
B[3]
C[0]
C[1]
C[2]
A[5] = B[2] trong trường hợp vượt quá bộ nhớ của A
*Mảng nhiều chiều
- int t[3][4];
T[0][0]
T[0][1]
T[0][2]
T[1][0]
T[2][1]
A[0]
A[2]
A[3]
A[4]
A[5]
A[6]
A[7]
A[8] | A[9]
lOMoARcPSD| 27879799
VD: int a[4] = {1,4} a[0]=1, a[1]=4, a[2]=0, a[3]=0.
* Khởi tạo giá trị co mảng Chú ý
- Số lượng giá trị khởi tạo không được lớn hơn số ợng phần tử trong mảng
+ Nếu số lượng này nhỏ hơn, các phần tử còn lại đươncj khởi tạo giá trọ
0
Int A[3][4] = {{1},{4,5}};
Int A[3][4] = {}; Tất cả đều mang giá trị 0
- Có thể xác định kích thước mảng thông qua số giá trị khởi tạo nếu để trống kích thước mảng
Int A2[] = {2,4,6,8,10,12,14,16] Máy thiểu kích thước của A
là 8.
*Các thao tác thường gặp
- Nhập/xuất dữ liệu cho mảng: Mảng 1 chiều, ma trận.
- Bài toán đếm: Đếm số phần tử, nh otans trên các phần tử
- Tìm kiếm phần tử: Lớn nhất/nhỏ nhất/bất kỳ- Sắp xếp phần tử trong mảng: Theo thứ tự,
nguyên tắc - Chèn/xóa phần tử.
1. Nhập dữ liệu
- DÙng hàm scanf(): Int table[10
*Lưu ý
- Nếu số phần tử của mảng chỉ được biết tại thời điểm thực
| 1/3

Preview text:

lOMoAR cPSD| 27879799
Mảng, con trỏ và xâu ký tự lOMoAR cPSD| 27879799
*Nhập điểm thi môn tin cho lớp gồm 50 sinh viên rồi đưa ra số lượng sinh viên phải học lại
- Tên biến là tên sinh viên: int An, Anh, Binh1, Cuong,…- Tên biến dạng
“dx” với x là chỉ số thứ tự của SV trong lớp: int d1, d2,…, d50.
Nhận xét 1: Không hợp lý - Có quá nhiều biến
- Khó khan cho các thao tác duyệt toàn bộ danh sách.Nhận xét 2: Các
biến chung ý nghĩa, tính chất. 1. Khái niệm mảng
*Kiểu mảng là một kiểu dữ liệu gồm:
- Một số hữu hạn thành phần.
- Các thành phần có cùng 1 kiểu: kiểu cơ sở hay là kiểu thànhphần
* Mỗi phần tử của mgnr được tham khảo thông qua:- Tên mảng và chỉ
số của phần tử trong mảng. * Khai báo mảng.
// khai báo mảng 50 phần tử có kiểu dữ liệu int // : int DienTin[50]
// Mảng 10 phần tử kiểu số thực //: 昀氀 oat A[10]
*Cấp phát bộ nhớ cho mảng
- Các phần tử trong mảng được cấp phát các ô nhớ kết iteeps nhau trong bộ nhwos
- Kích thước của mảng bằng kích thước một phần tử nhân với số phần tử lOMoAR cPSD| 27879799
VD: int A[10] // mảng A gồm 10 phần tử nguyên // Kích thước A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] | A[9] mảng A: 10 x 4 = 40 bytes.
*Truy nhập phần tử của mảng - int a[10] : VD: int A[10];
For (int I = 0; I < 10; i++) A[i] = 2 * I;
=> A = [0,2,4,6,8,10,12,14,16,18]
- Chú ý: C không kiểm tra vượt quá giới hạn của mảng khi truy
cập.VD: int A[3], B[4], C[3]; 0 2 4 6 8 10 12 14 16 18 A[0] A[1] A[2] B[0] B[1] B[2] B[3] C[0] C[1] C[2]
A[5] = B[2] trong trường hợp vượt quá bộ nhớ của A *Mảng nhiều chiều - int t[3][4]; T[0][0] T[0][1] T[0][2] T[1][0] … T[2][1] lOMoAR cPSD| 27879799
VD: int a[4] = {1,4} a[0]=1, a[1]=4, a[2]=0, a[3]=0.
* Khởi tạo giá trị co mảng Chú ý
- Số lượng giá trị khởi tạo không được lớn hơn số lượng phần tử trong mảng
+ Nếu số lượng này nhỏ hơn, các phần tử còn lại đươncj khởi tạo giá trọ 0 Int A[3][4] = {{1},{4,5}};
Int A[3][4] = {}; Tất cả đều mang giá trị 0
- Có thể xác định kích thước mảng thông qua số giá trị khởi tạo nếu để trống kích thước mảng
Int A2[] = {2,4,6,8,10,12,14,16] Máy tự hiểu kích thước của A là 8.
*Các thao tác thường gặp
- Nhập/xuất dữ liệu cho mảng: Mảng 1 chiều, ma trận.
- Bài toán đếm: Đếm số phần tử, tính otans trên các phần tử
- Tìm kiếm phần tử: Lớn nhất/nhỏ nhất/bất kỳ- Sắp xếp phần tử trong mảng: Theo thứ tự,
nguyên tắc - Chèn/xóa phần tử. 1. Nhập dữ liệu
- DÙng hàm scanf(): Int table[10 *Lưu ý
- Nếu số phần tử của mảng chỉ được biết tại thời điểm thực