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 3 - Trần Minh Thái

Chia sẻ: Bautroibinhyen27 Bautroibinhyen27 | Ngày: | Loại File: PPTX | Số trang:27

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

Bài giảng "Kỹ thuật lập trình - Chương 3: Kiểu dữ liệu có cấu trúc" cung cấp cho người học các kiến thức: 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. 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 3 - Trần Minh Thái

  1. Lập trình C Chương 3. Kiểu dữ liệu có cấu trúc (3 tiết) Trần Minh Thái Email: minhthai@huflit.edu.vn Website: www.minhthai.edu.vn Cập nhật: 28/02/2017 1
  2. Nội dung • 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 2
  3. KHÁI NIỆM VÀ KHAI BÁO 3
  4. Khái niệm ̉ dữ  liêu  Là  kiêu  ̣ (KDL)  do  lập  trình  viên  tự  đinh  ̣ nghĩa  bằng  cách  gom  nhóm  các  KDL  cơ  ban  ̉ ̣ KDL  phức  hợp  gồm  nhiều  trong  C  thành  môt  thành phần • Khai báo struct StructName { khai báo các thuộc tính; }; typedef struct StructName NewDataType; 4
  5. Khái niệm • Ví dụ khai báo kiểu dữ liệu lưu thông tin của ngày: struct StructDate { char thu[10]; int ngay; int thang; int nam; }; typedef struct StructDate Date; 5
  6. TRUY CẬP CÁC THÀNH PHẦN TRONG CẤU TRÚC 6
  7. Truy cập các thuộc tính cấu trúc • Biến kiểu cấu trúc NewDataType variableName; variableName.atributeName; • Ví dụ Date x; x.ngay = 5; 7
  8. Truy cập các thuộc tính cấu trúc • Biến con trỏ kiểu cấu trúc NewDataType *pointerName; pointerName ­> attributeName; Ví dụ: Date *x ; x = (Date*) malloc(sizeof(Date)); x ­> ngay = 5 ;  8
  9. Khai báo đệ quy struct StructName { khai báo các thuộc tính; struct StructName *attributeName;; }; 9
  10. Khai báo đệ quy • Ví dụ: struct StructNode { int key; struct StructNode *pNext; }; 10
  11. Ví dụ Viết chương trình nhâp va ̣ ̣ ̣ ̉ ̀o toa đô hai điêm trong  ̣ ̉ măt phăng, ti ̉ ́nh tông và kho ảng cách của hai toa đô  ̣ ̣ này struct StructDiem { double x; double y; }; typedef struct StructDiem Diem; void Nhap(Diem &d); void Xuat(Diem d); Diem Tong(Diem d1, Diem d2); double TinhKhoangCach(Diem, Diem); 11
  12. Ví dụ void Nhap (Diem &d) { printf("Hoanh do : "); scanf("%lf", &d.x); printf("Tung do : "); scanf("%lf", &d.y); } 12
  13. Ví dụ void Xuat (Diem d) { printf("Toa do diem: (%lf, %lf)", 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; } 13
  14. Ví dụ double TinhKhoangCach(Diem A, Diem B) { return sqrt((A.x-B.x)*(A.x-B.x)+(A.y-B.y)*(A.y-B.y)); } 14
  15. int main() { Diem A , B, AB; double kc; printf("Nhap vao toa do diem A: "); Nhap(A); printf("Toa do diem A: "); Xuat(A); printf("\nNhap vao toa do diem B: "); Nhap(B); printf("Toa do diem B: "); Xuat(B); printf("\n Toa do tong cua A va B: "); AB = Tong (A, B); Xuat (AB); kc=TinhKhoangCach(A, B); printf("\nKhoang cach A va B: %lf", kc); getch(); return 0; }
  16. BÀI TẬP 16
  17. Bài tập 1 Viết chương trình nhập vào thông tin của một sinh  viên có cấu trúc như sau: • Mã số sinh viên (mssv) • Họ và tên (hoTen) • Đ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% 17
  18. Bài tập 2 Sử  dụng  KDL  có  cấu  trúc  để  khai  báo  và  viết  chương trình 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 18
  19. Bài tập 3 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) 19
  20. MẢNG CÓ CẤU TRÚC 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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