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

Bài giảng Ngôn ngữ lập trình C: Dữ liệu kiểu cấu trúc - Ninh Thị Thanh Tâm

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

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

Mục đích của chương học "Dữ liệu kiểu cấu trúc" này nhằm giúp sinh viên có thể biết cách khai báo các kiểu dữ liệu phức tạp: cấu trúc; biết cách biểu diễn các kiểu danh sách liên kết nhờ cấu trúc tự trỏ; biết được các thao tác trên danh sách liên kết.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Ngôn ngữ lập trình C: Dữ liệu kiểu cấu trúc - Ninh Thị Thanh Tâm

  1. NGÔN NGỮ LẬP TRÌNH C Dữ liệu kiểu cấu trúc Ninh Thị Thanh Tâm Khoa CNTT – HV Quản lý Giáo dục
  2. Mục đích  Biết cách khai báo các kiểu dữ liệu phức tạp: cấu trúc  Cách biểu diễn các kiểu danh sách liên kết nhờ cấu trúc tự trỏ  Các thao tác trên danh sách liên kết
  3. Nội dung  Cấu trúc  Khái niệm, định nghĩa  Khai báo cấu trúc  Đặt tên kiểu dữ liệu  Thao tác trên biến cấu trúc  Truyền biến cấu trúc cho hàm  Các cấu trúc tự trỏ  Ngăn xếp - LIFO  Hàng đợi - FIFO  Cây nhị phân – BINARY TREE
  4. Cấu trúc  Khái niệm, định nghĩa  Khai báo cấu trúc  Đặt tên kiểu dữ liệu  Thao tác trên biến cấu trúc  Truyền biến cấu trúc cho hàm
  5. Khái niệm, định nghĩa  Cấu trúc:  Một kiểu dữ liệu bao gồm nhiều thành phần có thể thuộc nhiều kiểu dữ liệu khác nhau
  6. Khai báo cấu trúc  Khai báo kiểu dữ liệu cấu trúc: struct { };  struct là từ khóa đứng trước một khai báo cấu trúc  là tên hợp lệ, dùng làm tên cấu trúc  tương tự khai báo biến
  7. Ví dụ struct sinhvien { char ho_ten[30]; float diemtb; }; struct diem { float x,y; };
  8. Khai báo cấu trúc (2)  Khai báo biến cấu trúc: struct ; Ví dụ: struct sinhvien sv, dssv[100]; struct diem p, q, dsdiem[50];
  9. Khai báo cấu trúc (3)  Khai báo đồng thời cấu trúc và biến cấu trúc: struct [] { } ;
  10. Ví dụ struct dagiac { int n; struct diem dsdinh[20]; } dg1, dg2;  Có thể khai báo trực tiếp kiểu của các thành phần là biến cấu trúc bên trong một cấu trúc lớn hơn struct dagiac { int n; struct { float x, y; } dsdinh[20]; } dg1, dg2;
  11. Đặt tên kiểu dữ liệu  Từ khóa typedef  Cho phép thêm tên mới cho một kiểu dữ liệu  Cú pháp typedef ;  là kiểu dữ liệu muốn thêm tên  là tên mới muốn đặt  Dùng để định nghĩa các kiểu dữ liệu phức hợp thành một tên duy nhất để dễ dàng khi viết
  12. Ví dụ  typedef unsigned char byte;  byte được xem như kiểu dữ liệu tương đương với unsigned char  Có thể sử dụng trong khai báo các biến như kiểu dữ liệu khác
  13. Ví dụ /*struct1.c*/ #include #include typedef unsigned char byte; void main() { byte ch = 12, ch1; int i; clrscr(); ch1 = ch; for (i=0; i
  14. Sử dụng typedef với cấu trúc  Cho phép đơn giản hóa cách viết khai báo  Ví dụ: struct sinhvien { char hoten[30]; float diemtb; }; typedef struct sinhvien sv; typedef struct sinhvien *ptr_sv;  Cấu trúc struct sinhvien sẽ là sv  Định nghĩa một kiểu con trỏ cấu trúc có tên là ptr_sv  Khi đó:  sv sv1, sv2, dssv[100]; ~ struct sinhvien sv1, sv2, dssv[100];  ptr_sv ptrsv; ~ struct sinhvien *ptrsv;
  15. Thao tác trên biến cấu trúc  Truy cập thành phần trong cấu trúc  Truy cập tới thành phần cấu trúc từ con trỏ cấu trúc  Nhập dữ liệu cho biến cấu trúc
  16. Truy cập thành phần trong cấu trúc  Cần đến tên thành phần và biến tương ứng  Cú pháp: .  Dấu chấm (.) là toán tử truy cập thành phần cấu trúc  Nếu có nhiều cấu trúc lồng nhau thì sử dụng nhiều dấu (.) tương ứng  Ví dụ:  p.x= 0; p.y = 5;  dg1.dsdinh[10].x = 0; dg1.n = 10;
  17. Truy cập thành phần cấu trúc từ con trỏ cấu trúc  Nếu ptr là con trỏ cấu trúc, có 2 cách để truy cập tới thành phần của nó  Cách 1: (*ptr).  Cách 2: ptr->
  18. Nhập dữ liệu cho biến cấu trúc  Nên sử dụng biến trung gian  Nhập dữ liệu qua biến trung gian  Gán các giá trị nhập được cho các thành phần cần nhập  Ví dụ float temp; printf("Toa do x="); scanf("%f", &temp); p.x = temp; printf("Toa do y="); scanf("%f", &temp); p.y = temp;
  19. Ví dụ /*struct2.c*/ #include #include struct sinhvien { char hoten[30]; float diemtb; }; void main() { int n; int k; int i; struct sinhvien dssv[100]; char name[30]; float temp; clrscr();
  20. n = 0; do { printf("Nhap thong tin sinh vien thu %d\n",n+1); printf("Ho ten:"); fflush(stdin); gets(name); if (strcmp(name,"")!=0) { strcpy(dssv[n].hoten,name); printf("Diem:"); scanf("%f",&temp); dssv[n++].diemtb = temp; } } while (strcmp(name,"")!=0);
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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