![](images/graphics/blank.gif)
Bài giảng Tin học cơ sở 4: Các kiểu dữ liệu tự tạo - TS. Vũ Thị Hồng Nhạn
lượt xem 3
download
![](https://tailieu.vn/static/b2013az/templates/version1/default/images/down16x21.png)
Bài giảng Tin học cơ sở 4: Các kiểu dữ liệu tự tạo, cung cấp cho người học những kiến thức như kiểu liệt kê ENUM; khai báo kiểu struct; nhập, xuất structure; khởi tạo structure; một số kỹ thuật thao tác trên structure; dùng struct tham số cho hàm. Mời các bạn cùng tham khảo!
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Tin học cơ sở 4: Các kiểu dữ liệu tự tạo - TS. Vũ Thị Hồng Nhạn
- Tin Học Cơ Sở 4: Các kiểu dữ liệu tự tạo Vũ Thị Hồng Nhạn (vthnhan@vnu.edu.vn) Human Machine Interaction Lab. Vietnam National Univ., Hanoi
- Nội dung Ki u li t kê ENUM Khai báo ki u struct Nh p, xu t structure Kh i t o structure M t s k thu t thao tác trên structure Dùng struct tham s cho hàm 28/03/2016 Complex Data Types Page 2
- Enum M t bi n có ki u enum Có th nh n đư c m t giá tr nào đó trong các giá tr đư c li t kê Tên kiểu Dấu kết thúc enum days{Mon, Tue, Wed, Thur, Fri, Sat, Sun}; Các giá trị được liệt kê Khai báo bi n có ki u enum V.d. enum days thutrongtuan; 28/03/2016 Complex Data Types Page 3
- Enum enum days{Sun, Mon, Tue, Wed, Thur, Fri, Sat}; Tương đương #define Sun 0 #define Mon 1 … #define Sat 6 M c đ nh ph n t đư c đánh ch m c: 0..n Vd. Sun=0,…,Sat=6 Ta có th thay đ i enum days{Sun=0, Mon=2, Tue,Wed, Thur, Fri, Sat}; Sun=0, Mon=2…, Sat=7 28/03/2016 Complex Data Types Page 4
- Enum enum days myday; //tương đương int myday for(myday= Sun; myday
- enum Ví dụ 0 Tính ti n lương 1 tu n cho m t nhân viên, Lương m t ngày = lương cơ b n * s gi làm Tr th 7, CN đư c tính ph tr i (tương ng 1.5 và 2 l n cơ b n) Input Nh p vào lương cơ b n Nh p gi làm vi c t th 2~Ch nh t Output T ng lương c a c tu n 28/03/2016 Complex Data Types Page 6
- enum Ví dụ 0 #define PHUTROI_T7 1.5 #define PHUTROI_CN 2.0 enum days{CHUNHAT, THUHAI, THUBA, THUTU, THUNAM, THUSAU, THUBAY}; typedef enum days ngaytrongtuan; //định nghĩa lại //khai báo hàm xác định ngày mai là thứ mấy ngaytrongtuan tomorrow(weekday); int main(){ int hour; float basePay, dailySalary, totalSalary=0.0; char cDay[][10]={"Chu Nhat","Thu Hai","Thu Ba","Thu Tu","Thu Nam","Thu Sau","Thu Bay"}; ngaytrongtuan day; printf("Nhap vao luong co ban: "); scanf("%f", &basePay); printf("Nhap vao gio lam viec tu Thu 2 toi Chu Nhat:\n"); 28/03/2016 Complex Data Types Page 7
- enum Ví dụ 0 day=CHUNHAT; do{ day = tomorrow(day); printf(“Nhập vào giờ làm việc của thứ %s:", cDay[day]); scanf("%d", &hour); switch(day){ case THUHAI: case THUBA: case THUTU: case THUNAM: case THUSAU: dailySalary = basePay; break; case THUBAY: dailySalary =basePay * PHUTROI_T7; break; case CHUNHAT: dailySalary = basePay*PHUTROI_CN; break; } totalSalary += dailySalary* hour; }while(day!=CHUNHAT); printf("Tong luong tuan =%8.2f VNDong\n",totalSalary); getch(); return 0; } 28/03/2016 Complex Data Types Page 8
- enum Ví dụ 0 //hàm chọn ngày kế tiếp ngaytrongtuan tomorrow(ngaytrongtuan today){ ngaytrongtuan nextday; switch(today){ case CHU_NHAT : nextday= THU_HAI; break; case THU_HAI : nextday = THU_BA; break; case THU_BA : nextday = THU_TU; break; case THU_TU : nextday = THU_NAM; break; case THU_NAM : nextday = THU_SAU; break; case THU_SAU : nextday = THU_BAY; break; case THU_BAY : nextday = CHU_NHAT; break; } return (nextday); } 28/03/2016 Complex Data Types Page 9
- Cấu trúc struct M ng ch có th lưu thông tin có cùng ki u d li u Struct cho phép tích h p các bi n v i nhi u ki u khác nhau Đư c đ nh nghĩa v i t khoa: struct Cách khai báo bi n ki u structure Tên struct int main(){ struct nhanvien s; struct nhanvien{ s.manv=201201; int manv; s.hoten=“Lauren Burns”; char hoten[28] } }; Các thành phần của struct Tham chiếu tới các Kết thúc bởi dấu chấm phay phần tử trong structure 28/03/2016 Complex Data Types Page 10
- Ví dụ 1 Nhâp và in ra danh sách nhân viên gồm mã nhân viên và họ tên #include //Nhập danh sách nhân viên #include for(i=0; i
- Structure & typedef Đ tránh t khóa struct, ta s d ng khai báo v i typdef typedef struct { int manv; char hoten[28] }nhanvien; 28/03/2016 Complex Data Types Page 12
- Ví dụ 2 Khởi tạo structure Nh p vào bi n s xe, cho bi t xe đó đăng ký t nh nào #include printf("Nhap vao ma so tinh: "); #include scanf(“%d”, n); #include #define MAX 6 while(i
- Structure lồng nhau Nh p và in danh sách nhân viên M i nhân viên có: mã nhân viên, h tên, gia c nh Gia c nh ph n ánh: tên v /ch ng, s con T o structure l ng nhau 28/03/2016 Complex Data Types Page 14
- Structure lồng nhau #include typedef struct{ #include char vochongname[30]; #include int socon; } giacanh; #define MAX 100 typedef struct{ int manv; char ten[30]; giacanh thanhvien; } nhanvien; 28/03/2016 Complex Data Types Page 15
- Structure lồng nhau int main(){ printf("Nhap ten: "); nhanvien nvlist[MAX]; gets(nvlist[i].ten); char ctemp[10]; int i, n; printf("Nhap ten vo/chong: "); printf("Nhap vao tong so nhan vien: "); gets(nvlist[i].thanhvien.vochongname); gets(ctemp); n= atoi(ctemp); printf("So con: "); gets(ctemp); //Nhập danh sách nhân viên nvlist[i].thanhvien.socon = for(i=0;i
- Structure lồng nhau //Hiển thị danh sách nhân viên ra màn hình printf("\n-----------------------------------------\n"); printf(" DANH SACH NHAN VIEN \n"); printf("MA SO \tHO TEN \t\t\tVO/CHONG \tSO CON\n"); for(i=0; i
- Structure lồng nhau 28/03/2016 Complex Data Types Page 18
- Truyền struct sang hàm Dạng tham trị typedef struct{ C coi structure như nh ng float x; ki u d li u sơ khai khác float y; truy n struct sang hàm dư i } point; d ng tham tr Ví d (referencestruct.c) void reset(point p){ p.x = p.y = 0; } void main(){ point a = {12.0, 42.0};//khởi tạo point b = a; reset(a); b.x = 10; printf("a: %5.1f, %5.1f\n", a.x, a.y); printf("b: %5.1f, %5.1f\n", b.x, b.y); } 28/03/2016 Complex Data Types Page 19
- Ví dụ 3 Truyền vào hàm qua tham chiếu Nh p và in ra danh sách #include //Định nghĩa các hàm #include #include void input(nhanvien nv[], int n){ char ctemp[10]; int i=0; #define MAX 20 for(i=0; i
![](images/graphics/blank.gif)
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Tin học cơ sở: Bài 16 - Đào Kiến Quốc
16 p |
145 |
13
-
Bài giảng Tin học cơ sở: Bài 3 - Đào Kiến Quốc
16 p |
146 |
13
-
Bài giảng Tin học cơ sở: Bài 1 - Thông tin và xử lý thông tin
19 p |
148 |
8
-
Bài giảng Tin học cơ sở (Basics of Informatics) - Chương 1: Thông tin và biểu diễn thông tin
18 p |
43 |
5
-
Bài giảng Tin học cơ sở 3 bài 1: Tổng quan về cơ sở dữ liệu quan hệ
11 p |
30 |
5
-
Bài giảng Tin học cơ sở 1 - Chương 0: Giới thiệu môn học
8 p |
156 |
5
-
Bài giảng Tin học cơ sở: Bài 14 - Đào Kiến Quốc
27 p |
110 |
5
-
Bài giảng Tin học cơ sở 2: Chương 0 - ThS. Nguyễn Mạnh Sơn
7 p |
124 |
4
-
Bài giảng Tin học cơ sở (Basics of Informatics) - Chương 5: Các vấn đề xã hội của công nghệ thông tin
13 p |
38 |
4
-
Bài giảng Tin học cơ sở 2: Chương 2 - ThS. Nguyễn Mạnh Sơn
38 p |
75 |
3
-
Bài giảng Tin học cơ sở: Bài 3 - Hà Nguyên Long
20 p |
65 |
3
-
Bài giảng Tin học cơ sở 2: Chương 0 - Nguyễn Ngọc Duy
4 p |
107 |
2
-
Bài giảng Tin học cơ sở: Chương 4 - Học viện Nông nghiệp Việt Nam (tt)
26 p |
69 |
2
-
Bài giảng Tin học cơ sở: Chương 2 - Học viện Nông nghiệp Việt Nam
4 p |
73 |
2
-
Bài giảng Tin học cơ sở: Chương 3 - Học viện Nông nghiệp Việt Nam
8 p |
52 |
1
-
Bài giảng Tin học cơ sở: Chương 2 - Học viện Nông nghiệp Việt Nam (TT)
37 p |
59 |
1
-
Bài giảng Tin học cơ sở - Chương 1: Giới thiệu chung
13 p |
58 |
1
-
Bài giảng Tin học cơ sở: Chương 4 - Học viện Nông nghiệp Việt Nam
4 p |
43 |
1
![](images/icons/closefanbox.gif)
![](images/icons/closefanbox.gif)
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn
![](https://tailieu.vn/static/b2013az/templates/version1/default/js/fancybox2/source/ajax_loader.gif)