Danh mục

Bài giảng Nhập môn lập trình C - Chương 7: Cấu trúc - Struct

Số trang: 22      Loại file: pdf      Dung lượng: 1.42 MB      Lượt xem: 13      Lượt tải: 0    
tailieu_vip

Phí tải xuống: 17,000 VND Tải xuống file đầy đủ (22 trang) 0
Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bài giảng Nhập môn lập trình C - Chương 7: Cấu trúc - Struct. Chương này trình bày một số nội dung sau: Khái niệm về cấu trúc - Struct, định nghĩa một cấu trúc, truy cập biến cấu trúc, lệnh gán cấu trúc, truyền tham số kiểu cấu trúc,... Mời các bạn tham khảo.
Nội dung trích xuất từ tài liệu:
Bài giảng Nhập môn lập trình C - Chương 7: Cấu trúc - StructKhái niệm về cấu trúc - Struct Một cấu trúc là một tập các biến được tham chiếu thông qua một tên chung. Những biến tạo nên cấu trúc được gọi là các thành viên (members). Sự khác biệt giữa kiểu cấu trúc và kiểu mảng là: các phần tử của mảng là cùng kiểu còn các phần tử của kiểu cấu trúc có thể có kiểu khác nhau.Định nghĩa một cấu trúcstruct tructureName{ type member1; type member2; ... type memberN; .. .}Định nghĩa một cấu trúc Ví dụ: struct Books { char title[50]; char author[50]; char subject[100]; int book_id; Khai báo biến kiểu Books: }; Books b1, b2Ví dụ: Tạo một struct sinh viên gồm các thông tin: mã số sinh viên, họ tên, năm sinh, địa chỉ. struct sinhvien { char *MaSv; char *TenSv; int Namsinh; char *Diachi; }; Khai báo biến kiểu sinhvien: sinhvien sv1, sv2;Truy cập biến cấu trúc Dùng toán tử dấu chấm (dot operator- dấu chấm) để truy cập các thành viên của một biến cấu trúc. Cú pháp: varNames.memberNameVí dụ: sv1.MaSv= “a001”; sv1.TenSv=“Nguyen van A”; sv2.Namsinh=1977;Ví dụ: tạo một cấu trúc phanso, có hai thành phần là tử số và mẫu số. Viết hàm nhập giátrị cho phân số,struct ps{ int tuso; int mauso; }; void input(ps &phanso) void output(ps phanso) { { printf(tu so: ); printf( Phan so : ); scanf(%d,&phanso.tuso); printf(%d, phanso.tuso); printf(mau so: ); printf(/); scanf(%d,&phanso.mauso); printf(%d, phanso.mauso); } }Lệnh gán cấu trúc Dùng lệnh gán để gán nội dung trong 1 biến cấu trúc cho một biến cấu trúc khác có cùng kiểu Ví dụ: struct coordXY { int x; int y; } diemA, diemB; diemA.x = 100; diemA.y = 200;Lệnh gán cấu trúc Gán nội dung biến cấu trúc diemA cho biến diemB: diemB = diemA ; Hoặc có thể sao chép từng thành viên: pointB.x = pointA.x; pointB.y = pointA.y;Mảng các cấu trúc Mảng cấu trúc là một mảng mà mỗi phần tử là một biến kiểu cấu trúc. Để khai báo một mảng các cấu trúc, trước hết phải khai báo cấu trúc, sau đó khai báo một mảng của cấu trúc đó.Mảng các cấu trúc Ví dụ: struct ds{ char hoten[25]; float toan,ly,hoa; };  Khai báo mảng các phần tử cấu trúc: ds bangdiem[50];//mảng 50 phần tử kiểu dsMảng các cấu trúc Dùng chỉ mục của phần tử và toán tử thành viên (.) để truy cập đến từng thành viên của từng phần tử của mảng Ví dụ: for(int i=0; iTruyền tham số kiểu cấu trúc Truyền thành viên của biến cấu trúc vào hàm  Có 2 cách truyền thành viên của biến cấu trúc vào hàm:  Truyền tham trị  Truyền tham biếnVí dụ: Truyền tham trị struct diem { int x; int y; }; double khcach(int x1, int y1, int x2, int y2) { double kc; kc=sqrt(pow((x2-x1),2)+pow((y2-y1),2)); return kc; }void main(){ diem a,b; double kcach; printf(“ toa do diem a:“); printf(“ x1=“) ;scanf(“%d”, a.x); printf(“ y1=“); scanf(“%d”, a.y); printf(“ toa do diem b:; printf(“ x2=“);scanf(“%d”,b.x); printf(“ y2=“);scanf(“%d”,b.y); printf(“ Khoang cach giua a diem:“); kcach=khcach(a.x, a.y, b.x, b.y); printf(“Khoang cach giua 2 diem: %d”, kcach);}Ví dụ: truyền tham chiếu Để truyền địa chỉ của thành viên của cấu trúc vào hàm ta dùng toán tử & đặt trước tên biến cấu trúc void doitoado(int &x, int& y, int a, int b) { x=x-a; y=y-b; } void main() { diem a,b; doitoado(a.x, a.y, 10, 10); printf( x= %d“, a.x); printf( y= %d“, a.y); }Truyền tham số kiểu cấu trúc Truyền toàn bộ biến cấu trúc đến hàm Khi một cấu trúc được dùng như một đối số của một hàm, toàn bộ cấu trúc được truyền vào tham số hình thức. Có hai cách truyền Truyền tham trị. double khcach(diem a,diem b) { double kc; kc=sqrt(pow((b.x-a.x),2)+pow((b.y-a.y),2)); return kc; }Truyền tham số kiểu cấu trúc Truyền tham chiếu void doitoado(diem &a,int n, int m) { a.x=a.x-n; a.y=a.y-m;} void main() { diem a,b; doitoado(a, 10, 10); printf( x= %d y=%d “, a.x, a.y); }Con trỏ đến cấu trúc Một biến con trỏ có thể trỏ đến một biến kiểu cấu trúc. Cú pháp khai báo một con trỏ cấu trúc structureName *structurePointers; Ví dụ: struct diem { int x; int y; }; diem *p;//p là con trỏ cấu trúc.Sử dụng con trỏ cấu trúc Để tham ...

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