Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 42 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
42
Dung lượng
1,13 MB
Nội dung
Các kiểudữliệucơ bản
Chương 2
Kiểu tập tin
4
Kiểu mảng và chuỗi
1
Kiểu cấu trúc
2
Kiểu con trỏ
3
Độ phức tạp thuật toán
5
Nội dung
Nội dung
Nội dung
Nội dung
02/21/14
www.lhu.edu.vn
Chương 2 Cáckiểudữliệucơ bản
Kiểu chuỗi (String)
Kiểu chuỗi (String)
Một chuỗi là dãy liên tiếp các ký tự kết thúc bằng
ký tự \0 có mã ASCII bằng 0 (NULL character)
Trong C chuỗi có tối đa 65535 ký tự
Các hàm xử lý chuỗi được đặt trong thư viện
string.h của C.
Các cấu trúc lưu trữ trên bộ nhớ chính
Các cấu trúc lưu trữ trên bộ nhớ chính
02/21/14
www.lhu.edu.vn
Chương 2 Cáckiểudữliệucơ bản
Kiểu chuỗi (String)
Kiểu chuỗi (String)
Khai báo chuỗi: có thể dùng các cách sau
char S[10]; //Khai báo một chuỗi ký tự S có chiều dài
// tối đa 10 (kể cả kí tự kết thúc)
char S[]="ABC";// Khai báo một chuỗi ký tự S có
chiều
// dài bằng chiều dài của chuỗi "ABC"
// và giá trị khởi đầu của S là "ABC"
char *S ="ABC";//Giống cách khai báo trên.
Các kiểudữliệucó cấu trúc
Các kiểudữliệucó cấu trúc
Các cấu trúc lưu trữ trên bộ nhớ chính
Các cấu trúc lưu trữ trên bộ nhớ chính
02/21/14
www.lhu.edu.vn
Chương 2 Cáckiểudữliệucơ bản
Kiểu chuỗi (String)
Kiểu chuỗi (String)
Một số thao tác trên chuỗi
Một số thao tác trên chuỗi
Các kiểudữliệucó cấu trúc
Các kiểudữliệucó cấu trúc
So sánh 2 chuỗi: strcmp
Sao chép chuỗi: strcpy
Độ dài chuỗi: strlen
Kiểm tra 1 chuỗi nằm trong chuỗi kia: strstr
Cắt 1 từ ra khỏi 1 chuỗi: strtok
Đổi 1 số ra chuỗi: itoa
Đổi 1 chuỗi ra số: atoi, atof,
Nhập một chuỗi: gets
Xuất một chuỗi: puts
Các cấu trúc lưu trữ trên bộ nhớ chính
Các cấu trúc lưu trữ trên bộ nhớ chính
02/21/14
www.lhu.edu.vn
Chương 2 Cáckiểudữliệucơ bản
Kiểu mảng (Array)
Kiểu mảng (Array)
Mảng là một tập hợp các biến có cùng tên và
kiểu dữ liệu, được lưu trữ liên tiếp trong bộ nhớ
Mỗi phần tử được đánh chỉ số (Index), phần tử
đầu tiên có chỉ số là 0
Trong C, một mảng n chiều có thể coi là mảng 1
chiều trong đó mỗi phần tử là 1 mảng n-1 chiều.
Các kiểudữliệucó cấu trúc
Các kiểudữliệucó cấu trúc
Các cấu trúc lưu trữ trên bộ nhớ chính
Các cấu trúc lưu trữ trên bộ nhớ chính
02/21/14
www.lhu.edu.vn
Chương 2 Cáckiểudữliệucơ bản
Kiểu mảng (Array):
Kiểu mảng (Array):
Khai báo mảng
Khai báo mảng
<Kiểu dữ liệu> <Tên biến>[<Số phần tử1>][<Số phần tử2>] ;
Ví dụ, ta có thể khai báo:
Float a[10]; //khai báo mảng 1 chiều có 10 phần tử
int a[100][150];//khai báo mảng 2 chiều
int a[][]={{1, 7, -3, 8, 19},{4, 5, 2, 8, 9},{21, -7, 45, -3, 4}};
Các kiểudữliệucó cấu trúc
Các kiểudữliệucó cấu trúc
Các cấu trúc lưu trữ trên bộ nhớ chính
Các cấu trúc lưu trữ trên bộ nhớ chính
02/21/14
www.lhu.edu.vn
Chương 2 Cáckiểudữliệucơ bản
Kiểu hợp (Union)
Kiểu hợp (Union)
Union là một kiểudữliệu đặc biệt trong C, nó
tương tự kiểu struct nhưng các phần tử lại dùng
chung một vùng nhớ
Cách thức truy xuất đến các thành phần trong
kiểu Union giống như kiểu cấu trúc
Dùng kiểu Union khi cần lưu trữ dữliệu thay đổi
theo trạng thái
Các kiểudữliệucó cấu trúc
Các kiểudữliệucó cấu trúc
Các cấu trúc lưu trữ trên bộ nhớ chính
Các cấu trúc lưu trữ trên bộ nhớ chính
02/21/14
www.lhu.edu.vn
Chương 2 Cáckiểudữliệucơ bản
Kiểu hợp (Union):
Kiểu hợp (Union):
Khai báo kiểu union
Khai báo kiểu union
typedef union <tên kiểu union>
{
<KDL> <tên trường>;
<KDL> <tên trường>;
………
}[<Name>];
Các kiểudữliệucó cấu trúc
Các kiểudữliệucó cấu trúc
Ví dụ, ta có thể định nghĩa kiểu số sau:
typedef union tagNumber
{
int i;
long l;
}Number;
Number N;
Khi gán N.l=0xFF09 thì thành phần N.i sẽ nhận giá trị là 9
Các cấu trúc lưu trữ trên bộ nhớ chính
Các cấu trúc lưu trữ trên bộ nhớ chính
02/21/14
www.lhu.edu.vn
Chương 2 Cáckiểudữliệucơ bản
Kiểu cấu trúc (Structure)
Kiểu cấu trúc (Structure)
Kiểu cấu trúc (hay kiểu mẫu tin) là một tập hợp
các biến khác tên và có thể khác nhau về kiểu
dữ liệu
Cách thức truy xuất đến các thành phần trong
kiểu cấu trúc: Têncấutrúc.Tênthànhphần
Dùng kiểu cấu trúc khi muốn lưu trữ thông tin
của các đối tượng phức tạp và đa dạng
Các kiểudữliệucó cấu trúc
Các kiểudữliệucó cấu trúc
Các cấu trúc lưu trữ trên bộ nhớ chính
Các cấu trúc lưu trữ trên bộ nhớ chính
02/21/14
www.lhu.edu.vn
Chương 2 Cáckiểudữliệucơ bản
Kiểu cấu trúc (Structure):
Kiểu cấu trúc (Structure):
Khai báo kiểu cấu trúc
Khai báo kiểu cấu trúc
typedef struct <tên cấu trúc>
{
<KDL> <tên trường>;
<KDL> <tên trường>;
………
}[<TênKiểucấutrúc>];
Các kiểudữliệucó cấu trúc
Các kiểudữliệucó cấu trúc
Ví dụ, ta có thể định nghĩa kiểu cấu
trúc ngày tháng như sau:
typedef struct
{
int ngay;
int thang;
int nam;
}Ngaythang;
Ngaythang N;//khai báo biến
Các cấu trúc lưu trữ trên bộ nhớ chính
Các cấu trúc lưu trữ trên bộ nhớ chính
[...]... mới www.lhu.edu.vn Chương 2 CáckiểudữliệucơbảnCáckiểudữliệucó cấu trúc ngoài Cấu trúc lưu trữ trên bộ nhớ Kiểu tập tin (File) Các bước thao tác trên tập tin Ví dụ: FILE *fp; fp = fopen(“C:\\DSHS.DBF”, “wb”); if ( fp == 0 ) { perror(“Loi Mo File:”); exit(1); } 02/21/14 www.lhu.edu.vn Chương 2 Cáckiểudữliệucơbản Cấu trúc lưu trữ trên bộ nhớ ngoài Kiểu tập tin (File) Các bước thao tác trên... nào hết 02/21/14 www.lhu.edu.vn Chương 2 CáckiểudữliệucơbảnCác cấu trúc lưu trữ cấu trúcnhớ chính Cáckiểudữliệucó trên bộ Kiểu con trỏ (Pointer) Khai báo biến con trỏ Trực tiếp: *; Vd: int *P,*Q;//khai báo biến Gián tiếp: typedef *; ; Vd: typedef int *intPointer;//khai báo kiểu intPointer P,Q;//khai báo.. .Chương 2 CáckiểudữliệucơbảnCác cấu trúc lưu trữ cấu trúcnhớ chính Cáckiểudữliệucó trên bộ Kiểu cấu trúc (Structure): Truy xuất dữliệu Cách thức truy xuất đến các thành phần trong kiểu cấu trúc: Têncấutrúc.Tênthànhphần Để lấy địa chỉ của một thành phần trong cấu trúc, ta dùng toán tử... dữliệucơbản Cấu trúc lưu trữ trên bộ nhớ ngoài Kiểu tập tin (File) Các bước thao tác trên tập tin 3 Truy xuất dữliệu file văn bản Đọcdữliệu • • int fgetc (FILE *fp) ; • char *fgets (char * Str, int n, FILE *fp); • 02/21/14 int getc (FILE *fp) ; int fscanf (FILE *fp, const char *dk, địa chỉ các biến); www.lhu.edu.vn Chương 2 Cáckiểudữliệucơbản Cấu trúc lưu trữ trên bộ nhớ ngoài Kiểu tập... *(p).thang, *(p).nam Cách 2: pngay, pthang, pnam 02/21/14 www.lhu.edu.vn Chương 2 CáckiểudữliệucơbảnCác cấu trúc lưu trữ cấu trúcnhớ chính Cáckiểudữliệucó trên bộ Kiểu con trỏ (Pointer) Con trỏ hàm Là con trỏ dùng để chứa địa chỉ của hàm Khai báo hàm và con trỏ hàm phải trung khớp với nhau về các đối số và kiểudữliệu trả về Trước khi dùng phải gán tên hàm cho con trỏ hàm Vd : int Hoanvi(... Hàm có thể trả về: - Giá trị mẫu tin: Ngaythang tênhàm( ) - Con trỏ mẫu tin: Ngaythang *tênhàm( ) 02/21/14 www.lhu.edu.vn Chương 2 Cáckiểudữ liệu cơbản Các cấu trúc lưu trữ cấu trúcnhớ chính Cáckiểudữliệucó trên bộ Kiểu con trỏ (Pointer) Kiểu con trỏ là một kiểudữliệu đặc biệt trong C, có kích thước 2 bytes và dùng để chứa địa chỉ của một biến đã được cấp phát bộ nhớ Khi biến con trỏ... Chương 2 Cáckiểudữ liệu cơbản Các cấu trúc lưu trữ cấu trúcnhớ chính Cáckiểudữliệucó trên bộ Kiểu con trỏ (Pointer) Con trỏ và kiểu cấu trúc Lấy địa chỉ của một phần tử trong cấu trúc ta dùng toán tử & Vd :struct Ngay{ int ngay,thang,nam;}X; struct Ngay *p; p=&X; //p trỏ đến cấu trúc X Để truy xuất giá trị của pt trong cấu trúc ta có thể Cách 1: *(p).ngay, *(p).thang, *(p).nam Cách 2:. .. Cáckiểudữ liệu cơbản Các kiểudữliệucó cấu trúc ngoài Cấu trúc lưu trữ trên bộ nhớ Kiểu tập tin (File) Có 2 loại tập tin Tập tin văn bản (Text file) Tập tin nhị phân (Binary file) Các bước làm việc với tập tin 1 2 3 4 Khai báo biến tập tin Mở tập tin Truy xuất nội dung tập tin Đóng tập tin Trong C, các hàm xử lý tập tin có trong thư viện stdio.h 02/21/14 www.lhu.edu.vn Chương 2 Các kiểu. .. báo kiểu intPointer P,Q;//khai báo biến 02/21/14 www.lhu.edu.vn Chương 2 Cáckiểudữ liệu cơbản Các cấu trúc lưu trữ cấu trúcnhớ chính Cáckiểudữliệucó trên bộ Kiểu con trỏ (Pointer) Khai báo biến con trỏ Con trỏ void: con trỏ được khai báo kiểu void có thể chứa địa chỉ của bất kỳ kiểu nào Tuy nhiên trước khi sử dụng phải ép về một kiểu cụ thể Vd: int X; float Y; void *P; P=&X; //P trỏ đến X (float*)... www.lhu.edu.vn Chương 2 Cáckiểudữ liệu cơbản Các cấu trúc lưu trữ cấu trúcnhớ chính Cáckiểudữliệucó trên bộ Kiểu con trỏ (Pointer) Các thao tác Truy xuất nội dung 1 biến do biến con trỏ trỏ đến Cú pháp: *tênbiếncontrỏ Lưu ý: toán tử * và & có cùng độ ưu tiên Ví dụ: int X, *P; X=10; P=&X; //P trỏ đến X printf(“Giá trị X là: %d”,X); printf(“Giá trị do P trỏ đến: %d”,*P); 02/21/14 www.lhu.edu.vn Chương 2 Các .
Kiểu cấu trúc (Structure):
Truy xuất dữ liệu
Truy xuất dữ liệu
Các kiểu dữ liệu có cấu trúc
Các kiểu dữ liệu có cấu trúc
Cách thức truy xuất đến các. chính
02/21/14
www.lhu.edu.vn
Chương 2 Các kiểu dữ liệu cơ bản
Kiểu hợp (Union)
Kiểu hợp (Union)
Union là một kiểu dữ liệu đặc biệt trong C, nó
tương tự kiểu struct nhưng các