Bài giảng Ngôn ngữ lập trình C: Mảng một chiều, chuỗi - TS. Ngô Hữu Dũng

70 8 0
Bài giảng Ngôn ngữ lập trình C: Mảng một chiều, chuỗi - TS. Ngô Hữu Dũng

Đ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 Ngôn ngữ lập trình C: Mảng một chiều, chuỗi cung cấp cho người học các kiến thức: Dữ liệu kiểu mảng, khai báo biến mảng, số phần tử của mảng, truy xuất đến một phần tử, truyền mảng cho hàm,... Mời các bạn cùng tham khảo nội dung chi tiết.

TRƯỜNG ĐẠI HỌC CƠNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH Ngơn ngữ lập trình C Mảng chiều, chuỗi Đặt vấn đề Ví dụ     Chương trình cần lưu trữ số nguyên? => Khai báo biến int a1, a2, a3; Chương trình cần lưu trữ 100 số nguyên? => Khai báo 100 biến kiểu số nguyên! Người dùng muốn nhập n số nguyên? => Không thực được! Giải pháp   Kiểu liệu cho phép lưu trữ dãy số ngun dễ dàng truy xuất Ngơn ngữ lập trình C - Mảng, chuỗi Dữ liệu kiểu mảng Khái niệm      Là kiểu liệu có cấu trúc người lập trình định nghĩa Biểu diễn dãy biến có kiểu Ví dụ: dãy số nguyên, dãy ký tự… Kích thước xác định khai báo không thay đổi NNLT C định khối nhớ liên tục cho biến kiểu mảng Ngôn ngữ lập trình C - Mảng, chuỗi Khai báo biến mảng (tường minh) Tường minh  []; [][]…[];  , …, : số lượng phần tử chiều Lưu ý   Phải xác định cụ thể (hằng) khai báo Mảng nhiều chiều: = N1*N2*…*Nn  Bộ nhớ sử dụng = *sizeof()  Bộ nhớ sử dụng phải 64KB (65535 Bytes) Một dãy liên tục có số từ đến -1   Ngôn ngữ lập trình C - Mảng, chuỗi Khai báo biến mảng (tường minh) Ví dụ  int Mang1Chieu[10]; 9 Mang1Chieu int Mang2Chieu[3][4]; Mang2Chieu Ngơn ngữ lập trình C - Mảng, chuỗi 10 11 Khai báo biến mảng (kô tường minh) Cú pháp   Không tường minh (thông qua khai báo kiểu) typedef []; typedef []…[]; ; Ví dụ  typedef int Mang1Chieu[10]; typedef int Mang2Chieu[3][4]; Mang1Chieu m1, m2, m3; Mang2Chieu m4, m5; Ngơn ngữ lập trình C - Mảng, chuỗi Số phần tử mảng Phải xác định cụ thể số phần tử lúc khai báo, không sử dụng biến thường  int n1 = 10; int a[n1]; const int n2 = 20; int b[n2]; Nên sử dụng thị tiền xử lý #define để định nghĩa số phần tử mảng  #define n1 10 #define n2 20 int a[n1]; int b[n1][n2]; //  int a[10]; //  int b[10][20]; Ngơn ngữ lập trình C - Mảng, chuỗi Khởi tạo giá trị cho mảng lúc khai báo Gồm cách sau   Khởi tạo giá trị cho phần tử mảng int a[4] = {2912, 1706, 1506, 1904};  Khởi tạo giá trị cho số phần tử đầu mảng a 2912 1706 1506 1904 int a[4] = {2912, 1706}; a 2912 1706 0 Ngơn ngữ lập trình C - Mảng, chuỗi Khởi tạo giá trị cho mảng lúc khai báo Gồm cách sau   Khởi tạo giá trị cho phần tử mảng int a[4] = {0};  Tự động xác định số lượng phần tử a 0 0 int a[] = {2912, 1706, 1506, 1904}; a 2912 1706 1506 1904 Ngơn ngữ lập trình C - Mảng, chuỗi Truy xuất đến phần tử  Thông qua số [][]…[]  Ví dụ  Cho mảng sau int a[4];  Các truy xuất   10 Hợp lệ: a[0], a[1], a[2], a[3] Không hợp lệ: a[-1], a[4], a[5], … => Cho kết thường không mong muốn! Ngơn ngữ lập trình C - Mảng, chuỗi Thư viện string.h  size_t strlen(const char * str)      Trả chiều dài chuỗi ký tự str strlen(“hello”) = 5, strlen(hello) = size_t: Unsigned integral type const char: Bởi hàm không thay đổi giá trị str char * strcpy(char * destination, const char * source)       56 Chép nội dung chuỗi source sang chuỗi destination bao gồm ký tự NULL Chuỗi destination phải đủ chứa chuỗi source (bao gồm ký tự NULL) Bản thân hàm trả destination strcpy(hello, “Hi!”) trả chuỗi “Hi!” hello = “Hi!” char * destination: Hàm thay đổi giá trị destination const char * source: Hàm không thay đổi giá trị source Kỹ thuật lập trình | DHTH11C | HK1 | 20162017 Ngô Hữu Dũng Thư viện string.h (2)  int strcmp( const char * str1, const char * str2 )      So sánh chuỗi str1 với chuỗi str2, so sánh ký tự từ đầu đến phát điểm khác đến cuối chuỗi (‘\0’) Giá trị trả >0: str1 > str2 Giá trị trả =0: str1 = str2 Giá trị trả str1 > str2 Hàm có đối số hai chuỗi cần so sánh Mã giả   Khai báo khởi tạo cho biến chạy Duyệt phần tử    66 Gặp phần tử khác Hoặc kết thúc hai chuỗi So sánh phần tử cuối trả giá trị so sánh tương ứng Kỹ thuật lập trình | DHTH11C | HK1 | 20162017 Ngơ Hữu Dũng Ví dụ tham khảo hàm so sánh chuỗi int stringCompare(const char str1[], const char str2[]) { int i = 0; while(str1[i]==str2[i]&&str1[i]!='\0'&&str2[i]!='\0 ') i++; if(str1[i]>str2[i]) return 1; else if (str1[i]-1   Ngôn ngữ lập trình C - Mảng, chuỗi Khai báo biến mảng (tường minh) Ví dụ  int Mang1Chieu[10]; 9 Mang1Chieu int Mang2Chieu[3][4]; Mang2Chieu Ngơn ngữ lập trình C - Mảng, chuỗi 10... tố có mảng thành số Chèn số đằng sau số nguyên tố mảng Xóa tất số ngun tố có mảng Ngơn ngữ lập trình C - Mảng, chuỗi Ngơn ngữ lập trình C Chuỗi ký tự Khái niệm Chuỗi  Mảng kiểu ký tự   Chuỗi. .. nguyên tố từ mảng a sang mảng b hàm tách số nguyên tố từ mảng a sang mảng c Cách 2: Duyệt từ phần tử mảng a, số ngun tố đưa vào mảng b, ngược lại đưa vào mảng c Ngôn ngữ lập trình C - Mảng, chuỗi Hàm

Ngày đăng: 11/05/2021, 03:34

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