Danh mục

Bài giảng Kỹ thuật lập trình - Chương 4: Các kiểu dữ liệu có cấu trúc

Số trang: 45      Loại file: pdf      Dung lượng: 453.25 KB      Lượt xem: 12      Lượt tải: 0    
10.10.2023

Xem trước 5 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bài giảng Kỹ thuật lập trình - Chương 4: Các kiểu dữ liệu có cấu trúc, cung cấp cho người học những kiến thức như: Kiểu mảng; Kiểu xâu ký tự; Kiểu cấu trúc. Mời các bạn cùng tham khảo!
Nội dung trích xuất từ tài liệu:
Bài giảng Kỹ thuật lập trình - Chương 4: Các kiểu dữ liệu có cấu trúc BÀI GIẢNG HỌC PHẦN KỸ THUẬT LẬP TRÌNHCHƯƠNG 4: CÁC KIỂU DỮ LIỆU CÓ CẤU TRÚC Nội dung4.1. Kiểu mảng4.2. Kiểu xâu ký tự4.3. Kiểu cấu trúc 2 4.1. Kiểu mảng• Khái niệm mảng• Khai báo và sử dụng mảng• Các thao tác cơ bản trên mảng• Một số chương trình với mảng 3 Khái niệm mảng• Là một kiểu dữ liệu có cấu trúc, bao gồm một tập hữu hạn các phần tử có cùng kiểu dữ liệu, có tên chung, được lưu trữ kế tiếp nhau trong bộ nhớ• Kích thước của mảng được xác định ngay khi khai báo và là cố định• Các phần tử trong mảng có tên chung là tên của mảng và được phân biệt với nhau thông qua chỉ số của chúng• Mảng thường được dùng để lưu một dãy giá trị như: dãy số nguyên, dãy số thực, dãy kí tự, ma trận, … 4 Khai báo và sử dụng mảng (1)• Khai báo mảng: kiểu_dữ_liệu tên_mảng[N1][N2]…[Nn] trong đó:- kiểu_dữ_liệu: là kiểu dữ liệu của các phần tử mảng- tên_mảng: tên biến mảng- N1, N2, …, Nn: kích thước các chiều của mảng Số phần tử của mảng: N1 * N2 * … * Nn• Ví dụ: - int a[10], b[20]; - float matran[10][20]; 5 Khai báo và sử dụng mảng (2)• Có thể sử dụng chỉ thị #define để xác định kích thước các chiều của mảng Ví dụ: #define N1 20 #define N2 30 int a[N1]; float b[N1][N2]; 6 Khai báo và sử dụng mảng (3)• Kết hợp khởi tạo giá trị trong khai báo mảng:- Khởi tạo giá trị cho mọi phần tử của mảng Ví dụ: int a[3] = {4,5,9}; float x[2][3] = {{2,1.5,3}, {1,3,4.25}};- Khởi tạo giá trị cho một số phần tử đầu mảng Ví dụ: int b[5] = {2,6,1};- Khi không khai báo kích thước, kích thước mảng bằng với số lượng giá trị khởi tạo Ví dụ: int c[] = {15,20,36,54}; 7 Khai báo và sử dụng mảng (4)• Khai báo hằng kiểu mảng:- Cách 1: #define tên_mảng {giá_trị_1, …, giá_trị_n}Không truy cập được vào các phần tử của mảng- Cách 2: const kiểu_dữ_liệu tên_mảng[N1] … [Nn] = {giá_trị_1, …, giá_trị_n} Ví dụ: const int hangmang1[4] = {10,20,25,40}; const float hangmang2[] = {4.5,9.25}; const float hangmang3[5] = {1.5,2,5}; 8 Khai báo và sử dụng mảng (5)• Lưu trữ dữ liệu kiểu mảng:- Các phần tử của mảng được lưu trữ tại các ô nhớ kế tiếp nhau trong bộ nhớ- Kích thước bộ nhớ lưu trữ: N1 * N2 * … * Nn * sizeof(kiểu_dữ_liệu)- Các phần tử trong mảng được đánh chỉ số, phần tử đầu tiên có chỉ số là 0, phần tử thứ i có chỉ số là i-1- Biến mảng lưu trữ địa chỉ của ô nhớ đầu tiên trong vùng nhớ được cấp phát 9 Khai báo và sử dụng mảng (6)• Sử dụng mảng:- Cú pháp truy cập vào các phần tử mảng: tên_mảng[chỉ_số_1][chỉ_số_2] … [chỉ_số_n]- Ví dụ: int a[4]; Các truy cập hợp lệ: a[0], a[1], a[2], a[3] Các truy cập không hợp lệ: a[-2], a[-1], a[4], a[5], … 10 Khai báo và sử dụng mảng (7)• Sử dụng mảng: (tiếp)- Lấy địa chỉ của phần tử mảng (áp dụng cho mảng 1 chiều): &tên_mảng[chỉ_số]; Ví dụ: &a[1]- Tên mảng biểu thị địa chỉ đầu của mảng, tức là: a = &a[0] 11 Các thao tác cơ bản trên mảng (1)• Phép gán mảng:- Không được thực hiện phép gán thông thường cho một biến mảng- Chỉ có thể thực hiện phép gán giá trị cho các phần tử của mảng- Ví dụ: int a[3] = {4,5,9},b[3],i; Phép gán không hợp lệ: b = a; Phép gán hợp lệ: for(i=0;i Các thao tác cơ bản trên mảng (2)• Nhập dữ liệu cho mảng từ bàn phím: Sử dụng hàm scanf để nhập dữ liệu cho từng phần tử của mảng Ví dụ: int a[10]; Nhập dữ liệu cho phần tử a[1]: scanf(%d,&a[1]); Nhập dữ liệu cho tất cả các phần tử của mảng: sử dụng cấu trúc lặp for int i; for(i=0;i Các thao tác cơ bản trên mảng (3)• Nhập dữ liệu cho mảng từ bàn phím (tiếp): Lưu ý: Phép lấy địa chỉ không áp dụng cho các phần tử của mảng nhiều chiều (trừ trường hợp mảng 2 chiều gồm các số nguyên)  cần sử dụng biến trung gian khi nhập dữ liệu cho mảng nhiều chiều Ví dụ: float a[10][20];Nhập dữ liệu cho các phần tử của mảng: int i,j; float x; for(i=0;i Các thao tác cơ bản trên mảng (4)• Xuất dữ liệu của mảng ra màn hình: Sử dụng hàm printf để xuất dữ liệu từng phần tử của mảng ra màn hình Ví dụ: int a[10]; Xuất dữ liệu của phần tử a[1]: printf(a[1] = %d,a[1]); Xuất dữ liệu của tất cả các phần tử mảng sử dụng cấu trúc lặp for: int i; for(i=0;i ...

Tài liệu được xem nhiều: