intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Phương pháp lập trình - Chương 8: Kiểu cấu trúc (2016)

Chia sẻ: Bình Yên | Ngày: | Loại File: PPT | Số trang:29

39
lượt xem
4
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng "Phương pháp lập trình - Chương 8: Kiểu cấu trúc" giới thiệu khái quát về kiểu dữ liệu, kiểu dữ liệu cấu trúc, kiểu dữ liệu liệt kê enum, từ khóa typedef. Mời các bạn cùng tham khảo nội dung chi tiết.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Phương pháp lập trình - Chương 8: Kiểu cấu trúc (2016)

  1. Chương 8
  2. Nội dung trình bày 1. Giới thiệu 2. Kiểu cấu trúc 3. Kiểu liệt kê enum 4. Từ khóa typedef
  3. 1. Giới thiệu  Vấn đề: các kiểu dữ liệu cơ sở không đủ để giải  quyết các bài toán phức tạp  Ví dụ: Viết chương trình tính lương cho nhân viên,  hoặc viết chương trình cho nhập danh sách sinh viên   giải quyết bài toán phức tạp vì C không có kiểu  nhân viên, sinh viên  Giải quyết: Cần phải có cách để tạo ra các kiểu dữ  liệu theo như ý muốn để giải quyết bài toán phức tạp  Có 5 cách để tạo kiểu dữ liệu tùy biến ◦ Structure (Cấu trúc) ◦ bit­field ◦ Union ◦ Enumeration ◦ typedef
  4. Nội dung trình bày 1. Giới thiệu 2. Kiểu cấu trúc 3. Kiểu liệt kê enum 4. Từ khóa typedef
  5. 2. Cấu trúc: Giới thiệu  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)  Ví  dụ:  Cần  tạo  cấu  trúc  để  lưu  trữ  bảng  dữ  liệu  sau: Mã số Họ tên Điểm Kết quả 0123 Lê An 19 Đậu 0124 Nguyễn Bê 12 Rớt ◦Cấu  trúc  này  gồm  các  thành  viên:  mã  số,  họ  tên,  điểm, kết quả
  6. 2. Cấu trúc: Khai báo struct structureName  structureName: Tên của cấu trúc {  type: Kiểu dữ liệu của type member1; thành viên tương ứng type member2;  member1,..., memberN: ... Tên các biến thành viên của cấu trúc type memberN;  varNames: Tên các biến .. . cấu trúc (nếu có) phân } [varNames]; cách nhau bởi dấu phẩy  Struct phải được khai báo liền sau những dòng include
  7. 2. Cấu trúc: Ví dụ 1  Tạo một cấu trúc sinh viên gồm các thông tin: mã  số  sinh  viên  (chuỗi),  họ  tên  (chuỗi),  năm  sinh  (số), địa chỉ (chuỗi) struct SinhVien { char MaSV[10]; char TenSV[30]; int NamSinh; char DiaChi[50]; } sv1, sv2;  Có 2 biến kiểu cấu trúc SinhVien là: sv1, sv2
  8. 2. Cấu trúc: Ví dụ 2  Thành phần của cấu trúc có thể có kiểu là một  cấu trúc đã được định nghĩa trước struct NGAY { int ngay; int thang; int nam; }; struct HOSO { char hoten [30]; struct NGAY ns; long LCB; long thuong; long thuclanh; };
  9. 2. Cấu trúc: Khai báo biến cấu trúc  Cú pháp (dùng 1 trong 2 cách): struct structureName varName; structureName varName; ◦Cách thứ 2 tương tự cách khai báo biến thông thường  Ví dụ: ◦Khai báo biến s1, s2 có kiểu SinhVien struct SinhVien s1, s2; // c1 SinhVien s1, s2; // c2
  10. 2. Cấu trúc: Truy cập biến cấu trúc  Dùng toán tử  chấm  (dot operator) để truy cập các  thành viên của một biến cấu trúc  Cú pháp: varName.memberName  Phải dùng  toán  tử  chấm  trong  lệnh  nhập  (cin,  gets),  lệnh  xuất  (cout,  puts)  và  các  lệnh  gán  thành viên  Ví dụ: gets(sv1.MaSV) gets(sv1.TenSV); gets(sv1.NamSinh); cout
  11. 2. Cấu trúc: 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ụ:  Hoặc có thể gán từng thành  struct SinhVien sv1, sv2; viên: sv1.MaSV= “a001”; sv2.MaSV = sv1.MaSV; sv1.TenSV=“Nguyen van A”; sv2.TenSV=sv1.MaSV; sv1.NamSinh=1977; sv2.NamSinh=sv1.NamSinh sv2 = sv1; ; sv1 a001 Nguyen Van A 1977 sv2
  12. 2. Cấu trúc: 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 đó  Ví dụ:  struct  DS{    char hoten[25];   float toan, ly, hoa; }; DS bangdiem[50]; //mảng 50 phần tử kiểu DS
  13. 2. Cấu trúc: Mảng các cấu trúc  Để  truy  cập  đến  từng  thành  viên  của  từng  phần  tử  của  mảng,  ta  dùng  chỉ  mục  của  phần  tử  và  toán tử chấm  Ví dụ: Cho nhập liệu vào mảng bangdiem for( int i=0; i
  14. 2. Cấu trúc: Truyền tham số kiểu  cấu trúc a. Truyền thành viên của biến cấu trúc vào hàm Ví dụ: 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; }
  15. 2. Cấu trúc: Truyền tham số kiểu  cấu trúc (tt) Ví dụ (tiếp theo): void main() { diem a, b; cout
  16. 2. Cấu trúc: Truyền tham số kiểu  cấu trúc (tt) b. Truyền toàn bộ biến cấu trúc đến hàm Ví dụ: struct diem { int x; int y; }; double khcach( diem a, diem b ) { double kc; kc = sqrt(pow((b.x­a.x),2)+pow((b.y­a.y),2)); return kc; }
  17. 2. Cấu trúc: Truyền tham số kiểu  cấu trúc (tt) Ví dụ (tiếp theo): void main() { diem a, b; cout
  18. 2. Cấu trúc: Truyền tham số kiểu  cấu trúc (tt) c. Truyền mảng cấu trúc đến hàm Ví dụ: struct diem { int x; int y; }; void NhapMangToaDo( diem list[], int n ) { for (int i=0; i
  19. 2. Cấu trúc: Truyền tham số kiểu  cấu trúc (tt) Ví dụ (tiếp theo): void XuatMangToaDo( diem list[], int n ) {  for (int i=0; i
  20. 2. Cấu trúc: Con trỏ cấu trúc structureName *structurePointers;
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2