Cơ sở lập trình - Trường ĐH Thương mại - 12

Ví dụ

struct dia_chi

{

int so_nha;

char phuong[20]; char quan[15]; char thanh_pho[15];

} A,B;

Hoặc

struct

{

int so_nha;

Có thể bạn quan tâm!

Xem toàn bộ 113 trang tài liệu này.

char phuong[20]; char quan[15]; char thanh_pho[15];

} A,B;

Cơ sở lập trình - Trường ĐH Thương mại - 12


struct sinh_vien

{

char ho_ten[30]; date ngay_sinh; char maSV[10];

};

Hoặc

struct

{

char ho_ten[30]; date ngay_sinh; char maSV[10];

} sv1,sv2;

07/2020 Cơ sở lập trình177



Lưu ý: Nếu sử dụng typedef để định nghĩa kiểu struct thì khi khai báo biến chỉ cần dùng tên kiểu (bỏ từ khóa struct)

Ví dụ

date ngay_sinh,ngay_nhap_hoc; dia_chi A, B;

sinh_vien X, Y;


07/2020 Cơ sở lập trình178

Cú pháp

Ten_cau_truc.ten_thanh_phan

Ten_cau_truc.ten_cau_truc.ten_thanh_phan

Cách 1: dùng khi biến hoặc mảng là thành phần trực tiếp của một cấu trúc

Ví dụ: A.phuong, A.quan, A.thanh_pho

Các cách khác: dùng khi biến hoặc mảng là thành phần trực tiếp của một cấu trúc mà bản thân cấu trúc này lại là thành phần của 1cấu trúc lớn hơn.

Ví dụ: X.ngay_sinh.ngay


07/2020 Cơ sở lập trình 179


Chú ý

Có thể sử dụng phép toán lấy địa chỉ đối với thành phần cấu trúc để nhập số liệu trực tiếp cho thành phần cấu trúc

Có thể gán hai biến cấu trúc cho nhau

Có thể khởi tạo cho biến cấu trúc bằng cách viết vào sau khai báo của chúng một danh sách các giá trị cho các thành phần.



07/2020 Cơ sở lập trình 180


5.3.1 Khai báo biến mảng cấu trúc

5.3.2 Truy nhập phần tử mảng cấu trúc


07/2020 Cơ sở lập trình 181



Cách khai báo: Tương tự như với các kiểu dữ liệu cơ sở, chỉ thêm từ khóa struct

Ví dụ

struct sinh_vien ds1[50],ds2[100];

struct dia_chi xom5[100];



07/2020 Cơ sở lập trình 182

Khởi tạo cho biến cấu trúc: tương tự mảng

Ví dụ

struct month

{

int number; char *name;

} year[] ={

{1,”january”},{2,”february”},…,{12,”december”}

}

Để xác định số phần tử của year ta có thể dùng toán tử sizeof: int n= sizeof(year)/sizeof(struct month);



07/2020 Cơ sở lập trình 183


Tương tự như mảng thông thường: thông qua tên và chỉ số của phần tử

Ví dụ

struct sinh_viên ds[50]; for (int i=0;i<50;i++)

{ fflush(stdin);gets(ds[i].ho_ten); scanf(“%d”,&ds[i].ngay_sinh.ngay); scanf(“%d”,&ds[i].ngay_sinh.ngay); scanf(“%d”,&ds[i].ngay_sinh.ngay); fflush(stdin); gets(ds[i].MaSV);

}

07/2020


Cơ sở lập trình 184


5.4.1 Kiểu enum (kiểu liệt kê)

5.4.2 Kiểu typedef


07/2020 Cơ sở lập trình 185


Ý nghĩa: định nghĩa kiểu dữ liệu bằng cách liệt kê ra tất cả các giá trị mà ta muốn có.

Cú pháp

enum name {// liệt kê các giá trị};

Trong đó enum là từ khóa, name là tên của kiểu

Ví dụ

enum ten_mua {xuan, ha, thu, dong};

enum ten_mua mua;


07/2020 Cơ sở lập trình 186

Đặc điểm

Các giá trị được liệt kê thực chất tương ứng là

một dãy số tự nhiên bắt đầu từ 0.

Ví dụ: xuan, ha, thu, dong tương ứng với 0, 1, 2, 3 printf(“%d”,thu); in ra giá trị là 2.

Lưu ý: Không thể đọc trực tiếp và ghi ra giá trị của kiểu liệt kê, vì mỗi giá trị tương ứng với một số tự nhiên


07/2020 Cơ sở lập trình 187


Khái niệm: kiểu typedef là kiểu dữ liệu do người

dùng định nghĩa với từ khóa typedef.

Ý nghĩa

Cho phép đặt lại tên cho các kiểu dữ liệu đã tồn tại

Ví dụ: typedef int so_nguyen;

Làm cho chương trình dễ đọc, ngắn gọn và có thể dễ dàng chuyển mã code sang máy khác

Ví dụ:

int ds1[20],ds2[20],ds3[20],ds4[20];

typedef int ds[20]; // thay bằng

ds ds1,ds2,ds3,ds4;

kiểu struct khai báo biến không cần từ khóa struct


07/2020 Cơ sở lập trình 188


5.5.1 Khái niệm và phân loại tệp

5.5.2 Các bước xử lý tệp

5.5.3 Một số hàm dùng chung cho các kiểu tệp (tự học)

5.5.4 Tệp nhị phân

5.5.5 Tệp văn bản


07/2020 Cơ sở lập trình 189


Khái niệm: Tệp là một tập hợp các dữ liệu có liên quan với nhau và có cùng kiểu được nhóm lại với nhau tạo thành một dãy. Chúng thường được lưu trong một thiết bị nhớ ngoài với một tên cụ thể.

Đặc điểm

So sánh với struct và mảng (kiểu dữ liệu từng phần

tử, số phần tử, lưu trữ, truy nhập)

Biến đệm (cửa sổ tệp), bộ nhớ đệm, EOF, feof (hàm)

Phân loại

Theo cách truy cập: tệp truy cập tuần tự và tệp truy cập trực tiếp (C chỉ định nghĩa tệp tuần tự)

Theo bản chất dữ liệu: tệp văn bản và tệp nhị phân


07/2020 Cơ sở lập trình 190


Khai báo biến tệp

Mở tệp (để đọc hoặc ghi dữ liệu)

Xử lý dữ liệu (đọc hoặc ghi dữ liệu)

Đóng tệp


07/2020 Cơ sở lập trình 191


Khai báo biến tệp

Cú pháp: FILE *name;

Trong đó:

FILE: là từ khóa

name: là tên con trỏ tệp (biến tệp)

Ví dụ

FILE *f;


07/2020 Cơ sở lập trình 192

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 01/10/2023