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

Bài giảng Kỹ thuật lập trình: Chương 2 - Võ Quang Hoàng Khang

Chia sẻ: 5A4F5AFSDG 5A4F5AFSDG | Ngày: | Loại File: PDF | Số trang:41

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

Chương 2 trình bày về kiểu dữ liệu có cấu trúc. Chương này gồm có những nooiij dung cụ thể sau: Khái niệm, khai báo dữ liệu có cấu trúc, cách truy xuất thành phần bên trong cấu trúc. Mời các bạn cùng tham khảo.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Kỹ thuật lập trình: Chương 2 - Võ Quang Hoàng Khang

  1. CHƯƠNG 2. KIỂU DỮ LIỆU CÓ CẤU TRÚC VÕ QUANG HOÀNG KHANG Email: vqhkhang@gmail.com
  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ự định nghĩa bằng cách gom nhóm các kiểu dữ liệu cơ bản có 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 vào toạ độ hai điểm trong mặt phẳng và tính tổng hai toạ độ này struct ttDiem { int x; int y; }; typedef struct ttDiem Diem;
  10. VÍ DỤ #10 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Ụ #12 int 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); Xuat (AB); return 0; }
  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) Điểm tổng kết 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ư mảng một chiều (Kiểu dữ liệu bây giờ là kiểu dữ liệu có cấu trúc). Cách truy cập phần tử trong mảng cũng như truy cập trên mảng một chiều. Nhưng do từng phần tử có kiểu cấu trúc nên phải chỉ định rõ cần lấy thành phần nào, tức là phải truy cập đến thành phần cuối cùng có kiểu là dữ liệu cơ bản
  17. NGUYÊN TẮC LẬP TRÌNH TRÊN MẢNG CẤU TRÚC #17 Do kiểu dữ liệ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 loại này ta cần lưu ý: Xây dựng hàm xử ý cho một kiểu cấu trúc. Muốn xử lý cho mảng cấu trúc, ta gọi lại hà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ố typedef struct ttPhanSo { int tu, mau; }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
2=>2