Chuong 5 mang pascal, mang pascal full

37 160 0
Chuong 5  mang pascal, mang pascal full

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

mang pascalchương 5 mảng con trỏ tham chiếubài tập kiểu mảng 1 chiều pascalchương trình phát thanh măng non tháng 5các bài tập về mảng 1 chiều pascalxóa các phần tử trùng nhau trong mảng 1 chiều pascalđếm số nguyên tố trong mảng 1 chiều pascalsắp xếp mảng tăng dần pascal

NGÔN NGỮ C Chương 5: KiỂU MẢNG (ARRAY TYPE) Giáo viên: Tạ Thúc Nhu Khoa CNTT trường ĐH Lạc Hồng I- Tổng Quan: • Mảng tập hợp nhiều biến nhớ có kiểu, gọi kiểu phần tử mảng, cấp phát vị trí liên tục nhớ • Mỗi phần tử (biến nhớ) mảng xác định dựa tên mảng số xác định vị trí phần tử mảng • Chỉ số phần tử mảng số ngun khơng âm • Số lượng số dùng để xác định phần tử mảng gọi số chiều mảng Khai báo mảng N chiều: [S1][S2]…[Sn]; Mã hóa II-MẢNG MỘT CHIỀU Mã hóa 1- Khái niệm: • Mảng chiều tập biến nhớ kiểu, phần tử xác định tên mảng số trở • Ví dụ: Mảng A có phần tử thuộc kiểu số nguyên: A Chỉ số phần tử Tên phần tử 2 1 A[0] A[1] A[2] A[3] A[4] A[5] Mã hóa 2- Khai Báo Mảng Chiều: a) Khai báo trực tiếp: [] = {gt1, , gtn} ; • Nếu số giá trị khởi đầu < số phần tử phần tử lại gán giá trị khởi đầu = b) Khai báo gián tiếp: – Định nghĩa kiểu mảng chiều mới: typedef []; – Khai báo mảng chiều thuộc kiểu mảng định nghĩa: = {gt1, , gtn} ; Mã hóa 3- Một Số Thao Tác Trên Mảng Chiều: Mã hóa 3.1 Địa vùng nhớ phần tử mảng chiều là: Cách 1: Dùng phép toán lấy địa &TênMảng[ chỉsố] Cách 2: Dùng phép toán cộng địa TênMảng + chỉsố • Tên mảng chứa địa phần tử mảng Nhập giá trị cho phần tử mảng ta sử dụng cách sau: – scanf("mã định dạng", &TênMảng[ chỉsố ] ); – scanf("mã định dạng", TênMảng + chỉsố ); Mã hóa 3.2 Duyệt qua phần tử mảng: Sử dụng vòng lặp thay đổi số: • Từ đến N-1 • Hoặc từ N-1 giảm đến Ví dụ: Viết chương trình nhập N số thực (N A[ i ] thay cs = i Phần tử cs có giá trị A[cs] nhỏ End 10 Mã hóa 2- Khai báo mảng hai chiều: a) Khai báo trực tiếp: TênMảng[SoDong][SoCot] = {giá trị phần tử}; Ví dụ: float B[4][5] = {{9, 5, 2, 2}, {5, 1, 8, 1}, {9, 7, 5, 7} }; – B mảng chiều – B có phần tử B[0], ,B[3] – Mỗi phần tử B[d] mảng chiều có phần tử B[d][0], B[d][1], B[d][2], B[d][3], B[d][4] biến thuộc kiểu số thực • Có thể khai báo khơng định tổng số dòng: Khi tổng số dòng phụ thuộc vào số dòng gán TênMảng[ ] [SoCot]= {giá trị phần tử}; 23 Mã hóa 2- Khai báo mảng hai chiều: (tt) b) Khai báo gián tiếp: • Định nghĩa kiểu mảng chiều: typedef Tênkiểumảng[SốDòng][SốCột]; • Khai báo mảng thuộc kiểu định nghĩa: TênKiểuMảng TênMảng ; Ví dụ: Khai báo kiểu mảng chiều có dòng, cột chứa 20 biến số thực typedef float BangThuc[4][5]; BangThuc B = {{9, 5, 2, 2}, {5, 1, 8, 1}, {9, 7, 5, 7} }; 24 Mã hóa 3- Duyệt qua phần tử mảng chiều: for ( d = 0; d < SD; d++) 2 7 { for (c = 0; c < SC; c++) { Xử lý phần tử B[ d ][ c ] } } 25 Mã hóa Ví dụ: Nhập In mảng chiều for ( d = 0; d < SD; d++) for (c = 0; c < SC; c++) { printf(“PT[%d][%d]=“, c, d); scanf(“%f”, &B[ d ][ c ] ); } #include #include #define SoDong 20 #define SoCot 10 //Khai bao kieu mang chieu printf("Bang so da nhap:\n"); typedef float BangThuc[SoDong][SoCot]; for ( d = 0; d < SD; d++) { void main() { BangThuc B; int SD, SC; int d, c; for (c = 0; c < SC; c++) printf(“ %f “, B[d] [c]); printf("\n"); printf("\nNhap So dong va so cot :"); } scanf("%d %d", &SD, &SC); } printf("Nhap gia tri cac phan tu:\n"); 26 Mã hóa 4- Hàm có tham số mảng chiều: Khai báo tham số hình thức mảng chiều: Cách 1: Khai báo trực tiếp KiểuHàm TênHàm( KiểuPT TênMảng[ ][SoCot], ) Chú ý: Không cần khai báo số dòng, số cột phải với số cột mảng thực khai báo nơi gọi hàm Cách 2: Khai báo gián tiếp qua kiểu mảng: typedef KiểuPT TênKiểuMảng[SoDong][SoCot]; KiểuHàm TênHàm( TênKiểuMảng TênMảng, ) Gọi hàm truyền mảng: Tham số thực phải tên mảng: TênHàm( TênMảng, ) 27 Mã hóa Ví dụ: Viết chương trình cộng ma trận MxN (M, N

Ngày đăng: 04/11/2018, 10:29

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan