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

Bài giảng Lập trình C nâng cao‎: Chương 5 - Trần Minh Thái

Chia sẻ: Năm Tháng Tĩnh Lặng | Ngày: | Loại File: PPTX | Số trang:22

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

Chương 5 của bài giảng Lập trình C nâng cao ‎trình bày về kiểu dữ liệu có cấu trúc. Chương này gồm có những nội dung sau đây: Khái niệm về kiểu dữ liệu có cấu trúc, khai báo kiểu dữ liệu có cấu trúc, cách truy xuất thành phần bên trong cấu trúc, xử lý cấu trúc đơn, xử lý mảng có cấu trúc,...và một số bài tập.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Lập trình C nâng cao‎: Chương 5 - Trần Minh Thái

  1. Chương 5. Kiểu dữ liệu có cấu trúc TRẦN MINH THÁI Email: minhthai@itc.edu.vn Website: www.minhthai.edu.vn  Cập nhật: 08 tháng 04 năm 2015
  2. Nội dung #2 • Khái niệm • Khai báo • Cách truy xuất thành phần bên trong cấu trúc • Xử lý cấu trúc đơn • Xử lý mảng có cấu trúc • Bài tập
  3. Khái niệm #3 Kiểu  dữ  liệu  có  cấu  trúc  là  kiêu  ̉ dữ  liêu  ̣ do  lập  trình viên tự đinh nghi ̣ ̃a bằng cách gom nhóm các  ̉ ữ liêu c kiêu d ̣ ơ ban co ̉ ̣ ́ sẵn trong C thành môt kiêu  ̉ dữ liêu ph ̣ ức hợp gồm nhiều thành phần • Khai báo struct tên_struct { khai báo các thuộc tính; }; typedef struct tên_struct TênKDL;
  4. Khái niệm #4 • Ví dụ khai báo kiểu dữ liệu lưu thông tin của ngày: struct ttDate { char thu[10]; int ngay; int thang; int nam; }; typedef struct ttDate Date;
  5. Truy cập các thuộc tính cấu trúc #5 • Biến kiểu cấu trúc TÊNKDL tên_biến; tên_biến.tên_thuộc_tính; • Ví dụ Date x; x.ngay = 5;
  6. Truy cập các thuộc tính cấu trúc #6 • Biến con trỏ kiểu cấu trúc TÊNKDL *tên_biến_con_trỏ; tên_biến_con_trỏ ­> tên_thuộc_tính; Ví dụ: Date *x ; x = (Date*) malloc(sizeof(Date)); x ­> ngay = 5 ; 
  7. Khai báo đệ quy #7 struct tên_struct { khai báo các thuộc tính; struct tên_struct *tên_thuộc_tính_đệ_qui; };
  8. Khai báo đệ quy #8 • Ví dụ: struct ttNode { int key; struct ttNode *pNext; };
  9. Ví dụ #9 Viết chương trình nhâp va ̣ ̣ ̣ ̉ ̀o toa đô hai điêm trong  ̣ ̉ măt phăng va ̉ ̣ ̣ ̀y ̀ tính tông hai toa đô na  //File Khaibao.h #include  struct ttDiem { int x; int y; }; typedef struct ttDiem Diem;
  10. Ví dụ #10 //File caidat.cpp #include "khaibao.h" void Nhap (Diem &d) { printf(“\nNhap vao toa do diem\n”); printf(“Hoanh do : “); scanf(“%d”, &d. x); printf(“Tung do : ”); scanf(“%d”, &d.y); }
  11. Ví dụ #11 void Xuat (Diem d) { printf(“\nToa do diem  : (%d, %d)”, d.x, d.y); }  Diem Tong (Diem d1, Diem d2) { Diem temp; temp.x = d1.x + d2.x ; temp.y = d1.y + d2.y ; return temp;
  12. Ví dụ //File main.cpp #12 #include”khaibao.h” void main () { Diem A , B, AB; //khai bao 3 diem A, B, AB; Nhap (A); Xuat (A); Nhap (B); Xuat (B); printf(“\n Tong cua hai diem vua nhap la : ”);  AB = Tong  (A, B);
  13. Bài tập 1 #13 Viết chương trình nhập vào thông tin của một sinh  viên gồm: • Mã số sinh viên • Họ và tên • Điểm giữa kỳ (GK) • Điểm thực hành (TH) • Điểm lý thuyết (LT) Tính điểm tổng kết môn theo công thức:  GK*10%+TH*30%+LT*60%
  14. Bài tập 2 #14 Sử dụng kiểu dữ liệu có cấu trúc để khai báo và viết  chương  trình  (theo  phương  pháp  thủ  tục  hàm)  gồm  các chức năng sau: 1. Nhập vào 2 phân số 2. Tính  tổng  và  tích  hai  phân  số  (kết  quả  phải  là  phân số tối giản) 3. Xuất kết quả ra màn hình
  15. Bài tập 3 #15 Viết chương trình nhập vào 2 thời gian t1 và t2 (thông  tin thời gian gồm: giờ, phút và giây); tính khoảng cách  giữa t1 và t2 (đơn vị tính bằng giây)
  16. Mảng cấu trúc #16 • Cách khai báo tương tự như mang môt chiê ̉ ̣ ̉ ̀u (Kiêu  dữ liêu bây gi ̣ ờ là kiêu d ̉ ữ liêu co ̣ ́ cấu trúc). • ̣ phần  tử  trong  mang  Cách  truy  câp  ̉ cũng  như  truy  ̣ ̉ ̣ câp trên mang môt chiều. Nhưng do từng phần tử  ̉ cấu  trúc  nên  phai  có  kiêu  ̉ chi ̉ đinh  ̣ rõ  cần  lấy  thành  phần  nào,  tức  là  phai  ̉ truy  câp  ̣ đến  thành  ̉ ̀ dữ liêu c phần cuối cùng có kiêu la ̣ ơ ban ̉
  17. Nguyên tắc lập trình trên mảng cấu trúc #17 ̉ dữ  liêu  Do  kiêu  ̣ có  cấu  trúc  thường  chứa  rất  nhiều  thành  phần  nên  khi  viết  chương  trình  loai  ̣ này ta cần lưu ý:  • Xây dựng hàm xử lý cho môt kiêu câ ̣ ̉ ́u trúc. • Muốn xử lý cho mang câ ̉ ̣ ̣ ́u trúc, ta goi lai ha ̀m xử  ̣ ̉ lý cho môt kiêu câ ́u trúc đã được xây dựng bằng  ̣ cách dùng vòng lăp.  17
  18. Ví dụ #18 Viết hàm nhập vào mảng các phân số struct ttPhanSo {          int tu, mau; }; typedef struct ttPhanSo PhanSo;
  19. Ví dụ #19 void NhapPS(PhanSo &ps) { printf("Nhap tu so: ");         scanf("%d« , &ps.tu);         printf("\nNhap mau so: “);         scanf(“%d”, &ps.mau); }
  20. Ví dụ #20 void NhapMangPS(PHANSO dsps[], int n) {      for(int i=0; i
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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