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
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
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Tin học cơ sở 1 - Phan Thị Hà (chủ biên)
193 p | 193 | 22
-
Bài giảng Tin học cơ sở: Bài 16 - Đào Kiến Quốc
16 p | 142 | 13
-
Bài giảng Tin học cơ sở: Bài 3 - Đào Kiến Quốc
16 p | 141 | 13
-
Bài giảng Tin học cơ sở 1: Phần 2
87 p | 51 | 8
-
Bài giảng Tin học cơ sở: Bài 1 - Thông tin và xử lý thông tin
19 p | 143 | 8
-
Bài giảng Tin học cơ sở 1: Phần 1
110 p | 39 | 7
-
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 | 25 | 5
-
Bài giảng Tin học cơ sở: Chương 4 - Các thành phần nhập liệu
39 p | 69 | 5
-
Bài giảng Tin học cơ sở 1 - Chương 0: Giới thiệu môn học
8 p | 151 | 5
-
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 | 40 | 5
-
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 | 37 | 4
-
Bài giảng Tin học cơ sở 3 bài 3: Table and relation
43 p | 12 | 4
-
Bài giảng Tin học cơ sở 2: Chương 0 - ThS. Nguyễn Mạnh Sơn
7 p | 119 | 4
-
Bài giảng Tin học cơ sở: Chương 6 - An toàn thông tin, các hướng phát triển mới trong công nghệ thông tin
15 p | 93 | 4
-
Bài giảng Tin học cơ sở: Chương 4 - Hệ thống thông tin và ngôn ngữ lập trình
18 p | 65 | 4
-
Bài giảng Tin học cơ sở 2: Chương 2 - ThS. Nguyễn Mạnh Sơn
38 p | 72 | 3
-
Bài giảng Tin học cơ sở 2: Chương 0 - Nguyễn Ngọc Duy
4 p | 82 | 2
-
Bài giảng Tin học cơ sở - Chương 1: Giới thiệu chung
13 p | 57 | 1
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