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

LI
lienhejb
0 téléchargements
25
0

Contenu du document

Page 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

Page 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

Page 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

Page 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

Page 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

Page 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

Page 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

Page 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

Page 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

Page 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

Page 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

Page 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

Page 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

Page 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

Page 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

Page 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

Page 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

Page 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

Page 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

Page 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

Affichage des 20 premières pages. Téléchargez le document pour le voir en entier.

Commentaires (0)

Se connecter pour rejoindre la discussion

Aucun commentaire pour le moment. Soyez le premier !