Trang 1
goupee.vn Trường Đại Học Bách Khoa Hà Nội goupee.com Viện: Điện Tử - Viễn Thông Bộ Môn: Điện tử - Kỹ thuật máy tính Ngôn ngữ lập trình C/C++ Chương 1: Ôn tập ngôn ngữ C cuu duong than cong . comCác kiểu dữ liệu có cấu trúc 1 fb.com/goupee.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 2
goupee.vn goupee.com Các kiểu dữ liệu có cấu trúc Kiểu liệt kê: enum Kiểu bản ghi: struct Kiểu hợp: union Kiểu bản ghi có trường ở mức bit: bit field struct cuu duong than cong . com 2 fb.com/goupee.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 3
goupee.vn goupee.com Kiểu enum Ý nghĩa: là kiểu dữ liệu mà miền giá trị của nó là một số giá trị mà ta muốn và có thể liệt kê ra. VD: các giá trị logic (true, false), các ngày trong một tuần, các mức tính thuế thu nhập,v.v Các thao tác cơ bản: Định nghĩa: tạo ra một kiểu dữ liệu mới trước khi khai báo sử dụng Khai báo: khai báo các biến kiểu enum đã được định nghĩa ở trên Gán giá trị: cập nhật giá trị cho biến kiểu enumcuu duong than cong . com 3 fb.com/goupee.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 4
goupee.vn goupee.com Kiểu enum – Định nghĩa Cách định nghĩa: Kiểu liệt kê được định nghĩa với từ khóa enum, và có hai cách có thể được dùng để định nghĩa: Cách 1: không cần dùng từ khóa typedef và Cách 2: có sử dụng từ khóa typedef này. cuu duong than cong . com 4 fb.com/goupee.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 5
goupee.vn goupee.com Kiểu enum – Định nghĩa Cách 1: không dùng từ khóa typedef. enum tên_kiểu {phần_tử_1, phần_tử_2, …, phần_tử_N}; VD: enum ngayTrongTuan {ThuHai, ThuBa, ThuTu, ThuNam, ThuSau, ThuBay, ChuNhat}; enum gioitinh {Nam, Nu}; cuu duong than cong . com 5 fb.com/goupee.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 6
goupee.vn goupee.com Kiểu enum – Định nghĩa Cách 2: sử dụng từ khóa typedef. typedef enum { phần_tử_1, phần_tử_2, …, phần_tử_N } tên_kiểu ; VD: typedef enum {True, False} boolean; cuu duong than cong . com 6 fb.com/goupee.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 7
goupee.vn goupee.com Kiểu enum – Khai báo Khai báo biến kiểu enum tương tự như cách khai báo các biến thông thường: Cú pháp: tên_kiểu v; tên_kiểu v1,v2; VD: ngayTrongTuan d1, d2; //Khai báo 2 biến enum gioitinh gt = Nam; //Khai báo và khởi tạo giá trịcuu duong than cong . com 7 fb.com/goupee.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 8
goupee.vn goupee.com Kiểu enum – Khai báo Ngoài ra, các biến có thể được khai báo ngay khi định nghĩa kiểu với cách định nghĩa không sử dụng từ khóa typedef Cú pháp: enum [tên_kiểu] {phần_tử_1, phần_tử_2, …, phần_tử_N} biến1, biến2; VD: enum ngayTrongTuan {ThuHai, ThuBa, ThuTu, ThuNam, ThuSau, ThuBay, ChuNhat} d;cuu duong than cong . com//vừa định nghĩa kiểu, vừa khai báo biến enum gioitinh {Nam, Nu} gt; //khai báo biến ngầm định kiểu 8 fb.com/goupee.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 9
goupee.vn goupee.com Kiểu enum – Gán giá trị Bản chất giá trị liệt kê của kiểu enum là các hằng số nguyên, với phần tử liệt kê đầu tiên có giá trị là 0, phần tử thứ hai có giá trị là 1, v.v Các giá trị này có thể được đặt tường minh khi định nghĩa hay khai báo. VD: typedef enum {True=1, False=0} boolean; enum Colors {BLUE=1,RED=3,GREEN=2} c; cuu duong than cong . com 9 fb.com/goupee.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 10
goupee.vn goupee.com Ví dụ Viết một chương trình nhập một giá trị nguyên biểu một trong các ngày trong một tuần. Chương trình sẽ kiểm tra giá trị đó để in ra ngày tương ứng. Việc làm trên sẽ lặp lại cho đến khi giá trị nhập vào là -1 thì kết thúc chương trình. cuu duong than cong . com 10 fb.com/goupee.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 11
goupee.vn goupee.com Ví dụ #include <stdio.h> case wednesday: #include <conio.h> printf("Hom nay la thu tu\n");break; main(){ case thursday: enum day {monday, tuesday, wednesday, printf("Hom nay la thu nam\n");break; thursday, friday, saturday, sunday}; case friday: printf("Hom nay la thu sau\n");break; enum day d; case saturday: do { printf("Hom nay la thu bay\n");break; printf("Nhap ngay hom nay:(nhap -1 de thoat)"); case sunday: scanf("%d",&d); printf("Hom nay la chu nhat\n");break; switch (d) { default: case monday: if (d !=-1) printf("Du lieu khong hop printf("Hom nay la thu hai\n");break;cuu duong than cong . comle\n");} case tuesday: printf("Hom nay la thu ba\n");break; } while (d != -1); getch(); }// end main 11 fb.com/goupee.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 12
goupee.vn goupee.com Kiểu struct Ý nghĩa: là cấu trúc cho phép bên trong chứa các trường dữ liệu mà có kiểu dữ liệu có thể khác nhau Các thao tác cơ bản: Định nghĩa Khai báo biến Truy nhập vào các trường Gán giá trị cuu duong than cong . com 12 fb.com/goupee.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 13
goupee.vn goupee.com Kiểu struct – Định nghĩa Có hai cách để định nghĩa kiểu struct: Cách 1: không sử dụng từ khóa typedef Cách 2: sử dụng từ khóa typedef cuu duong than cong . com 13 fb.com/goupee.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 14
goupee.vn goupee.com Kiểu struct – Định nghĩa Cách 1: không sử dụng từ khóa typedef struct tên_kiểu { Khai báo các trường; }; struct nguoi { VD: char ten[30]; struct ngaysinh { int tuoi; int ngay; char gioitinh; // „M‟ cho int thang; cuu duong than cong . comnam, „F‟ cho nữ int nam; struct ngaysinh sinhngay; }; }; 14 fb.com/goupee.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 15
goupee.vn goupee.com Kiểu struct – Định nghĩa Cách 2: sử dụng từ khóa typedef typedef struct { Khai báo các trường; } tên_kiểu ; VD: typedef struct { char sohieu[30] ; char chuyennganh;cuu duong than cong . com int soluong; } lophoc ; 15 fb.com/goupee.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 16
goupee.vn goupee.com Kiểu struct – Khai báo Tương tự kiểu enum, việc khai báo biến kiểu struct cũng có thể theo 1 trong 2 cách: Cách 1: khai báo sau khi định nghĩa kiểu struct Cách 2: kết hợp khai báo và định nghĩa kiểu cuu duong than cong . com 16 fb.com/goupee.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 17
goupee.vn goupee.com Kiểu struct – Khai báo Cách 1: lophoc lh1, lh2; [struct] tên_kiểu v; struct ngaysinh [struct] tên_kiểu v1,v2; ns; Cách 2: struct tên_kiểu { struct ngaysinh { Khai báo các trường; int ngay; } v1, v2; int thang; cuu duong than cong . comint nam; } ns1, ns2; 17 fb.com/goupee.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 18
goupee.vn goupee.com Truy nhập vào các trường Có 2 cách truy nhập: typedef struct { Cách 1: dùng biến thông char sohieu[30] ; thường, sử dụng cú pháp char chuyennganh; “tên_biến.tên_trường” int soluong; Cách 2: dùng biến con } lophoc ; trỏ, sử dụng cú pháp lophoc lh; “tên_biến->tên_trường” lophoc * p = & lh; scanf(“%s”, lh.sohieu); scanf(“%c”, &p- cuu duong than cong . com>chuyennganh); scanf(“%d”, &p->soluong); 18 fb.com/goupee.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 19
goupee.vn goupee.com Kiểu struct - Gán giá trị Hai biến cùng một kiểu struct có thể được gán cho nhau. Việc gán này sẽ cho thay cho việc gán lần lượt tất cả các trường của hai biến này cho nhau. VD: lophoc lh1, lh2; lh1.sohieu = lh2.sohieu; lh1=lh2; lh1.chuyennganh= lh2.chuyennganh; lh1.soluong = lh2.soluong; cuu duong than cong . com 19 fb.com/goupee.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 20
goupee.vn goupee.com Ví dụ Viết chương trình quản lý một danh sách nhân viên với các chức năng: Nhập vào một danh sách N nhân viên (N là hằng số cho trước) In ra nội dung danh sách đó cuu duong than cong . com 20 fb.com/goupee.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt
Hiển thị 20 trang đầu. Tải tài liệu để xem đầy đủ.
Bình luận (0)
Chưa có bình luận nào. Hãy là người đầu tiên!