Ngôn ngữ lập trình - Chương 1.3 (HUST)

LI
lienhejb
0 次下载
25
0

资料内容

第 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

第 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

第 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

第 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

第 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

第 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

第 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

第 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

第 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

第 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

第 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

第 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

第 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

第 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

第 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

第 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

第 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

第 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

第 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

第 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

显示前 20 页。下载资料查看完整内容。

评论 (0)

登录 以加入讨论

暂无评论。快来抢沙发吧!