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

Kỹ thuật lập trình - Cấu trúc

4 2 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Tài liệu tham khảo chuyên ngành công nghệ thông tin - Kỹ thuật lập trình - Cấu trúc

Đặt vấn đề Để biểu diễn dãy phần tử kiểu ta biết sử dụng mảng Tuy nhiên phần tử không kiểu chẳng hạn, liệu sinh viên gồm: - mã sinh viên (là chuỗi) - họ tên sinh viên (chuỗi) - điểm trung bình (số thực) - giới tính (số ngun) - mảng khơng cịn phù hợp Trong C cấu trúc dùng để biểu diễn đối tượng Định nghĩa: Cấu trúc (struct) dãy hữu hạn phần tử (có thể khơng kiểu liệu với nhau) gọi trường hay thành phần cấu trúc Chương Cấu trúc (structure) Khai báo kiểu cấu trúc Định nghĩa kiểu liệu trước: Khai báo kiểu sinh viên: typedef struct SinhVien { char ma[10]; char hoTen[30]; float diemTB; int gTinh; }; SinhVien sv1,sv2; SinhVien lop[50]; //khai báo mảng lop gồm 50 sv - typedef struct { //khai báo thành phần }; Khai báo biến sau: Ví dụ: khai báo số phức: typedef struct SoPhuc { float phanThuc; float phanAo; }; SoPhuc z,z1,z2; //khai báo biến SoPhuc Khai báo kiểu cấu trúc (tt) ; Truy xuất liệu biến cấu trúc Qui tắc: để truy xuất liệu biến cấu trúc ta phải truy xuất thành phần nó, theo cú pháp: . Ví dụ: với biến khai báo ví dụ trước ta truy xuất sau: printf(“%0.2f”,z.phanThuc);//in phần thực z for(i=0;ihoTen tương đương với sv1.hoTen Mảng cấu trúc (tt) void inDS2(SinhVien *p, int n) { int i; for(i=0;ihoTen); } Một số ví dụ sử dụng struct Ví dụ 1: Thực phép toán phân số //Biểu diễn phân số: typedef struct PhanSo { int tu; int mau; } PhanSo p,p1,p2; Một số ví dụ sử dụng struct (tt) //hàm rút gọn phân số: void rutGon(PhanSo *p) { Một số ví dụ sử dụng struct (tt) //hàm in phân số hình: void inPS(PhanSo p) { printf(“%d/%d”,p.tu,p.mau); } //hàm tìm ước chung lớn số nguyên: int ucln(int x, int y) { while(x*y) if(x>y)x=x%y; else y=y%x; return (x+y); } Một số ví dụ sử dụng struct (tt) //hàm nhập phân số từ bàn phím: void nhapPS(PhanSo *p) { int tam; printf(“\ntu so = “);scanf(“%d”,&tam); p->tu=tam; printf(“\nmau so = “);scanf(“%d”,&tam); p->mau=tam; if(mautu,p->mau); p->tu=(p->tu)/d; p->mau=(p->mau)/d; } tu=-tu; mau=-mau; } rutGon(p); } Một số ví dụ sử dụng struct (tt) Một số ví dụ sử dụng struct (tt) //hàm cộng phân số: PhanSo cong(PhanSo p, PhanSo q) { //hàm nhân phân số: PhanSo nhan(PhanSo p, PhanSo q) { PhanSo t; t.tu=p.tu*q.mau+p.mau*q.tu; t.mau=p.mau*q.mau; rutGon(&t); return t; } Hỏi đáp PhanSo t; t.tu=p.tu*q.tu; t.mau=p.mau*q.mau; rutGon(&t); return t; } ... “);scanf(“%d”,&tam); p->tu=tam; printf(“ mau so = “);scanf(“%d”,&tam); p->mau=tam; if(mautu,p->mau); p->tu=(p->tu)/d; p->mau=(p->mau)/d; } tu=-tu; mau=-mau; } rutGon(p);... printf(“ lop[i].hoTen); } Truy xuất liệu biến cấu trúc (tt) Chú ý: gán trực tiếp biến cấu trúc kiểu Ví dụ: sv1 = sv2; sv1 = lop[10]; Nếu p trỏ cấu trúc phép truy xuất thành phần p sau: p-> Ví dụ:... trúc Nhận xét: Cách truy xuất mảng cấu trúc tương tự mảng thông thường Tức phải truy xuất phần tử mảng nhiên với phần tử mảng ta áp dụng quy tắc truy xuất biến cấu trúc Ví dụ: hàm sau in danh sách

Ngày đăng: 08/05/2021, 19:20

Xem thêm:

TỪ KHÓA LIÊN QUAN