1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Kiến trúc máy tính (Phần 2): Chương 4 - Nguyễn Văn Huy

24 99 0

Đ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

Bài giảng Kiến trúc máy tính - Chương 4: Mảng và chuỗi cung cấp cho người học các kiến thức: Mảng, mảng một chiều, mảng hai chiều, mãng chuỗi, chuỗi. Cuối bài giảng có phần bài tập để người học ôn tập và củng cố kiến thức đã học.

4.1 Mảng Mảng tập hợp hữu hạn phần tử có kiểu liệu Các phần tử mảng lưu trữ khối gồm ô nhớ liên tục nhau, có tên (cũng tên mảng) phân biệt với số Chỉ số xác định vị trí mảng Mảng Mảng chia làm loại: mảng chiều mảng nhiều chiều (mảng chiều trở lên) Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật 4.1.1 Mảng chiều A) Khai báo mảng: Kiểu_dữ_liệu Tên_mảng [số_phần_tử] ; Lưu ý: số_phần_tử ( kích thước mảng) phải xác định thời điểm khai báo phải số Ví dụ: int A[100]; //khai báo mảng số nguyên A gồm 100 phần tử Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật 4.1.1 Mảng chiều B) Truy xuất liệu mảng: Truy xuất phần tử mảng theo cú pháp: Tên_mảng[chỉ_số] Trong chỉ_số số nguyên đến n-1, với n kích thước mảng Ví dụ: Mảng A có phần tử, phần tử thứ A[1]= - Chỉ số Mảng A Phần tử A[0] -7 A[1] A[2] A[3] Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật 4.1.1 Mảng chiều C) Khởi tạo giá trị cho mảng chiều khai báo: Kiểu_dữ_liệu Tên_mảng[số_phần_tử] = { giá_tri_1, giá_trị_2,…}; Trong đó, giá_trị_1, giá_trị_2,… giá trị tương ứng khởi tạo cho phần tử mảng theo thứ tự Số lượng giá trị khơng vượt q kích thước mảng Ví dụ 1: Khởi tạo giá trị cho tất phần tử mảng: int A[5]={1,5,-8,7,0}; Ví dụ 2: Khởi tạo vài giá trị đầu mảng, phần tử sau mặc định 0: int A[5]={2,4,1}; Ví dụ 3: Khởi tạo giá trị cho tất phần tử: int A[5]={0}; Ví dụ 4: Khởi tạo mảng mà khơng khai báo kích thước: int A[]={1,5,-8}; Khi mảng A có kích thước có phần tử Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật 4.1.1 Mảng chiều D) Dùng mảng chiều làm tham số hàm: Việc truyền phần tử đơn lẻ vào hàm hồn toàn giống với truyền biến vào hàm Đối với trường hợp muốn truyền tồn mảng cho hàm ta cần phải khai báo mảng tham số hình thước hàm Ví dụ: int Max(int A[12], int kich_thuoc); Lưu ý: - Có thể khơng cần ghi kích thước mảng phần khai báo tham số hàm, ví dụ: int Max(int A[], int kich_thuoc); ) - Khi gọi hàm truyền mảng ta ghi tên mảng mà khơng có cặp ngoặc [] ,ví dụ: Gọi hàm Max ví dụ trên, truyền tham số mảng int B[12] , kích_thước 12 sau: Max( B, 12) ; Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật Ví dụ: Dùng mảng chiều làm tham số hàm Kết chạy chương trình : - Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật 4.1.2 Mảng hai chiều Dạng đơn giản thông dụng mảng nhiều chiều mảng hai chiều Một mảng hai chiều mảng chứa mảng chiều Để cho dễ hiểu người ta thường biểu diễn mảng hai chiều dạng ma trận gồm hàng cột Tuy nhiên, mặt vật lý phần tử mảng hai chiều lưu khối nhớ liên tục A) Khai báo mảng hai chiều: Kiểu_dữ_liệu Tên_mảng[số_hàng][số_cột] ; Khi kích thước mảng tích (số_hàng*số_cột) Ví dụ: float A[3][4]; /*Mảng số thực A gồm 12 phần tử chia thành hàng, cột*/ Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật 4.1.2 Mảng hai chiều B) Truy xuất phần tử mảng: Mỗi phần tử mảng có dạng: Tên_mảng[chỉ_số_hàng][chỉ_số_cột] Trong đó, chỉ_số_hàng có giá trị từ đến (số_hàng -1)và chỉ_số_cột có giá trị từ đến (số_cột - 1) Ví dụ: Mảng int A[3][2] minh họa hình dưới: Chỉ số (0, 0) (0, 1) (1, 0) (1, 1) (2, 0) (2, 1) A[0][0] A[0][1] A[1][0] A[1][1] A[2][0] A[2][1] -9 Mảng A Phần tử Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật 4.1.2 Mảng hai chiều C) Khởi tạo giá trị cho mảng hai chiều khai báo: Thứ tự phần tử mảng A[i][j] khởi tạo theo thứ tự sau: … j-1 … i-1 Ví dụ 1: Khởi tạo mảng số nguyên A[3][2] giống mảng chiều: int A[3][2] = 2{2, 7, 9, 0, 4, -3}; -9 10 Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật 4.1.2 Mảng hai chiều Ví dụ 2: Khởi tạo theo dòng (hàng), phần tử dòng nằm cặp dấu {}: int A[3][2]={{2, 7}, {9, 0}, {4,-3}}; Ví dụ 3: Khởi tạo giá trị cho vài phần tử đầu mảng, phần tử lại tự động nhận giá trị 0: int A[3][2]={{2, 7}, {9}, {4,-3}}; Ví dụ 4: Khởi tạo giá trị cho tất phần tử mảng: int A[3][2]={0}; Ví dụ 5: Khởi tạo giá trị cho mảng mà không bao gồm khai báo chiều thứ hay số hàng ( chiều thứ hai hay số cột bắt buộc phải có): int A[][2]={{2, 7}, {9, 0}, {4,-3}}; 11 Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật 4.1.2 Mảng hai chiều D) Mảng hai chiều làm tham số cho hàm: Tương tự mảng chiều, mảng hai chiều dùng làm tham số cho hàm Khi khai báo tham số mảng hai chiều, cần phải rõ số phần tử chiều, nhiên số phần tử chiều vắng 11 Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật Ví dụ mảng hai chiều Kết chạy chương trình: - - 13 Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật 4.2 Chuỗi A) Khái niệm Chuỗi hay xâu kí tự xem mảng chiều gồm phần tử có kiểu char Theo quy ước, chuỗi kết thúc ký tự null ('\0' : kí tự rỗng) Ví dụ: Chuỗi “Lap Trinh C” lưu trữ sau: L a p T r i 14 n h C \0 Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật 4.2 Chuỗi B) Khai báo chuỗi char tên_chuỗi[kích_thước_chuỗi]; Ví dụ: char ten[25]; Ý nghĩa: Khai báo chuỗi “ten” có chiều dài 25 kí tự Do chuỗi kết thúc kí tự ‘\0’ nên chuỗi chứa 24 kí tự C) Khởi tạo chuỗi char tên_chuỗi[kích_thước_chuỗi] = “ Chuỗi ”; Hoặc char tên_chuỗi[] = “ Chuỗi” ; Ví dụ: char sinh_vien[] = “Cao Van To”; /*Độ dài chuỗi số kí tự +1 ( thêm kí tự ‘\0’ ), độ dài chuỗi sinh_vien 11 */ 15 Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật 4.3 Mảng Chuỗi Mảng chuỗi mảng phần tử mảng chuỗi Cú pháp khai báo : char Tên_mảng[số_lượng_chuỗi][độ_dài_chuỗi]; Trong : số_lượng_chuỗi số lượng phần tử tối đa mảng, độ_dài_chuỗi kích thước phần tử 16 Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật Ví dụ mảng chuỗi Kết chạy chương trình: - 17 Khoa CNTT - Bài giảng THĐC - Khối ngành kỹ thuật Bài tập luyện tập Bài 1: Viết chương trình nhập giá trị cho dãy số thực gồm n phần tử ( n

Ngày đăng: 15/05/2020, 22:20

Xem thêm:

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w