
Bài giảng C Programming introduction: Tuần 14 - Cấu trúc
Số trang: 34
Loại file: pdf
Dung lượng: 1.35 MB
Lượt xem: 15
Lượt tải: 0
Xem trước 4 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng "C Programming introduction: Tuần 14 - Cấu trúc" trình bày những nội dung chính sau đây: Khai báo cấu trúc; Sử dụng typedef; Truy cập vào các trường; Bài tập thực hành;... Mời các bạn cùng tham khảo!
Nội dung trích xuất từ tài liệu:
Bài giảng C Programming introduction: Tuần 14 - Cấu trúcNội dung• Cấu trúc – Ôn tập • Khai báo cấu trúc • Sử dụng typedef • Truy cập vào các trường – Thực hànhCấu trúc• Cấu trúc trong C là một tập hợp các phần tử có kiểu khác nhau.Định nghĩa struct trong Cstruct struct-name{ field-type1 field-name1; field-type2 field-name2; field-type3 field-name3;...};VD• Định nghĩa struct sinh viên có các thông tin tên, tuổi, và điểmstruct student { char name[20]; int age; float grade; };VD• Định nghĩa cấu trúc car chứa các thông tin tên, model, và năm sản xuất struct car { char* make; char* model; int year; };Khai báo và khởi tạo biến• Sử dụng từ khóa struct khi khai báo biếnstruct student s1;struct car mycar;struct student s1 = (“Nguyen Le”, 19, 8.0);struct car mycar = (“Fiat”, Punto, 2004);Định nghĩa cấu trúc với typedeftypedef struct student { char name[20]; int age; float grade; } student_t; Chương trình có các kiểu mới student_ttypedef struct car { và car_t char* make; char* model; int year; }car_t;Khai báo biến• Với typedef, không cần sử dụng từ khóa struct khi khai báo biến• VD: car_t mycar; student_t excellentP;Truy cập vào thành viên củastruct• Sử dụng toán tử ‘.’ car_t mycar; mycar.year = 2004; student_t excellentp; excellentp.age = 18; excellentp.grade = 7.8;Bài tập 14.1a) Tạo ra cấu trúc Date chứa các trường ngày, tháng, nămb) Viết hàm nhập dữ liệu cho cấu trúc có kiểm tra tính hợp lệ của dữ liệuc) Viết hàm datecmp để so sánh hai ngày date_1 và date_2 -1 nếu date_1 < date_2 0 nếu date_1 = date_2 1 nếu date_1 > date_2d) Viết chương trình yêu cầu người dùng nhập vào hai ngày và in ra kết quả so sánh VD: 2/10/1997 > 23/8/1997Lời giải#include typedef struct date{ unsigned char day; unsigned char month; int nam;}date_t;Lời giảidate input_date(){ date tmp; do { printf(The day (between 1 and 31):); scanf(%u,&tmp.day); } while ((tmp.day 31)) do { printf(The month (between 1 and 12):); scanf(%u,&tmp.month); } while ((tmp.day 12)) do { printf(The year (between 1 and 10000):); scanf(%d,&tmp.year); } while ((tmp.day 1000)) return tmp;}Lời giảiint datecmp(date d1, date d2){ if (d1.year < d2.year) return -1; else if (d1.year > d2.year) return 1; else { if (d1.month < d2.month) return -1; else if (d1.month > d2.month) return 1; else { if (d1.day < d2.day) return -1; else if (d1.day > d2.day) return 1; else return 0; } }}Lời giảiint main(){ date date1, date2; int m; printf(Enter the first date. ); date1= input_date(); printf(Enter the second date. ); date2= input_date(); m = datecmp(date1, date2); if (m==0) printf(Two date are identical. ); else if (mBài tập 14.2• Viết chương trình sử dụng cấu trúc để lưu thông tin thời tiết trong tháng – Tổng lượng mưa – Nhiệt độ cao nhất – Nhiệt độ thấp nhất – Nhiệt độ trung bình• Chương trình sử dụng mảng 12 phần tử để lưu thông tin thời tiết các tháng trong năm. Chương trình yêu cầu người dùng nhập thông tin từng tháng, tính toán và in ra lượng mưa trung bình, tổng lượng mưa, nhiệt độ cao nhất và nhiệt độ thấp nhất trong năm.• Kiểm tra dữ liệu: Nhiệt độ nằm trong khoảng -40 đến 50 độ Celcius.Lời giải#include typedef struct wt{ int total_rain; // in mm int high_temp; // in celcius int low_temp;}wearther;const int MONTHS = 12;Lời giảiint main() { weather data[MONTHS]; int i; char months[MONTHS][10]={January, February, March, April}; int total_rain = 0; int max_temp = -100; int max_month = 0; int min_temp = 100; int min_month = 0;// read input data for each month for (i = 0; i < MONTHS; i++) { printf(Weather Data for %d: , months[i]); printf( Total Rainfall (mm): ); scanf(%d,&data[i].total_rain); printf( High Temperature (C): ); scanf(%d,&data[i].high_temp); printf( Low Temperature (C): ); scanf(%d,&data[i].low_temp); }Lời giải // find min, max temperature for (i = 0; i < MONTHS; i++) { total_rain += data[i].total_rain; if (max_temp < data[i].high_temp) { max_temp = data[i].high_temp; max_month = i; } if (min_temp > data[i].low_temp) { min_temp = data[i].low_temp; min_month = i; } } printf ( Weather Statistic for the Year: ; printf ( Total Rainfall: %d mm , total_rain); printf ( Monthly Rainfall: %2.3f mm , double(total_rain)/MONTHS ); printf ( Highest Temperature: : %d °C in %s , max_temp, months[max_month]); printf ( Lowest Temperature: : %d °C in %s , min_temp, months[min_month]); return 0;}Bài tập 14.3 • Viết chương trình quản ...
Nội dung trích xuất từ tài liệu:
Bài giảng C Programming introduction: Tuần 14 - Cấu trúcNội dung• Cấu trúc – Ôn tập • Khai báo cấu trúc • Sử dụng typedef • Truy cập vào các trường – Thực hànhCấu trúc• Cấu trúc trong C là một tập hợp các phần tử có kiểu khác nhau.Định nghĩa struct trong Cstruct struct-name{ field-type1 field-name1; field-type2 field-name2; field-type3 field-name3;...};VD• Định nghĩa struct sinh viên có các thông tin tên, tuổi, và điểmstruct student { char name[20]; int age; float grade; };VD• Định nghĩa cấu trúc car chứa các thông tin tên, model, và năm sản xuất struct car { char* make; char* model; int year; };Khai báo và khởi tạo biến• Sử dụng từ khóa struct khi khai báo biếnstruct student s1;struct car mycar;struct student s1 = (“Nguyen Le”, 19, 8.0);struct car mycar = (“Fiat”, Punto, 2004);Định nghĩa cấu trúc với typedeftypedef struct student { char name[20]; int age; float grade; } student_t; Chương trình có các kiểu mới student_ttypedef struct car { và car_t char* make; char* model; int year; }car_t;Khai báo biến• Với typedef, không cần sử dụng từ khóa struct khi khai báo biến• VD: car_t mycar; student_t excellentP;Truy cập vào thành viên củastruct• Sử dụng toán tử ‘.’ car_t mycar; mycar.year = 2004; student_t excellentp; excellentp.age = 18; excellentp.grade = 7.8;Bài tập 14.1a) Tạo ra cấu trúc Date chứa các trường ngày, tháng, nămb) Viết hàm nhập dữ liệu cho cấu trúc có kiểm tra tính hợp lệ của dữ liệuc) Viết hàm datecmp để so sánh hai ngày date_1 và date_2 -1 nếu date_1 < date_2 0 nếu date_1 = date_2 1 nếu date_1 > date_2d) Viết chương trình yêu cầu người dùng nhập vào hai ngày và in ra kết quả so sánh VD: 2/10/1997 > 23/8/1997Lời giải#include typedef struct date{ unsigned char day; unsigned char month; int nam;}date_t;Lời giảidate input_date(){ date tmp; do { printf(The day (between 1 and 31):); scanf(%u,&tmp.day); } while ((tmp.day 31)) do { printf(The month (between 1 and 12):); scanf(%u,&tmp.month); } while ((tmp.day 12)) do { printf(The year (between 1 and 10000):); scanf(%d,&tmp.year); } while ((tmp.day 1000)) return tmp;}Lời giảiint datecmp(date d1, date d2){ if (d1.year < d2.year) return -1; else if (d1.year > d2.year) return 1; else { if (d1.month < d2.month) return -1; else if (d1.month > d2.month) return 1; else { if (d1.day < d2.day) return -1; else if (d1.day > d2.day) return 1; else return 0; } }}Lời giảiint main(){ date date1, date2; int m; printf(Enter the first date. ); date1= input_date(); printf(Enter the second date. ); date2= input_date(); m = datecmp(date1, date2); if (m==0) printf(Two date are identical. ); else if (mBài tập 14.2• Viết chương trình sử dụng cấu trúc để lưu thông tin thời tiết trong tháng – Tổng lượng mưa – Nhiệt độ cao nhất – Nhiệt độ thấp nhất – Nhiệt độ trung bình• Chương trình sử dụng mảng 12 phần tử để lưu thông tin thời tiết các tháng trong năm. Chương trình yêu cầu người dùng nhập thông tin từng tháng, tính toán và in ra lượng mưa trung bình, tổng lượng mưa, nhiệt độ cao nhất và nhiệt độ thấp nhất trong năm.• Kiểm tra dữ liệu: Nhiệt độ nằm trong khoảng -40 đến 50 độ Celcius.Lời giải#include typedef struct wt{ int total_rain; // in mm int high_temp; // in celcius int low_temp;}wearther;const int MONTHS = 12;Lời giảiint main() { weather data[MONTHS]; int i; char months[MONTHS][10]={January, February, March, April}; int total_rain = 0; int max_temp = -100; int max_month = 0; int min_temp = 100; int min_month = 0;// read input data for each month for (i = 0; i < MONTHS; i++) { printf(Weather Data for %d: , months[i]); printf( Total Rainfall (mm): ); scanf(%d,&data[i].total_rain); printf( High Temperature (C): ); scanf(%d,&data[i].high_temp); printf( Low Temperature (C): ); scanf(%d,&data[i].low_temp); }Lời giải // find min, max temperature for (i = 0; i < MONTHS; i++) { total_rain += data[i].total_rain; if (max_temp < data[i].high_temp) { max_temp = data[i].high_temp; max_month = i; } if (min_temp > data[i].low_temp) { min_temp = data[i].low_temp; min_month = i; } } printf ( Weather Statistic for the Year: ; printf ( Total Rainfall: %d mm , total_rain); printf ( Monthly Rainfall: %2.3f mm , double(total_rain)/MONTHS ); printf ( Highest Temperature: : %d °C in %s , max_temp, months[max_month]); printf ( Lowest Temperature: : %d °C in %s , min_temp, months[min_month]); return 0;}Bài tập 14.3 • Viết chương trình quản ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng C Programming introduction C Programming introduction Ngôn ngữ lập trình C Khai báo cấu trúc Sử dụng typedef Truy cập vào các trườngTài liệu có liên quan:
-
101 trang 211 1 0
-
Tìm hiểu về ngôn ngữ lập trình C: Phần 1 - Quách Tuấn Ngọc
211 trang 154 0 0 -
161 trang 139 1 0
-
Giáo trình Vi điều khiển PIC: Phần 1
119 trang 130 0 0 -
Bài giảng Phương pháp lập trình: Chương 9 - GV. Từ Thị Xuân Hiền
36 trang 119 0 0 -
Đồ án vi xử lý đề tài : nghiên cứu thiết kế mạch đo khoảng cách sử dụng vi điều khiển Pic 16F887
45 trang 116 1 0 -
Tìm hiểu về ngôn ngữ lập trình C: Phần 2 - Quách Tuấn Ngọc
210 trang 96 0 0 -
ĐỀ CƯƠNG THI TRẮC NGHIỆM MÔN LẬP TRÌNH CÓ CẤU TRÚC
43 trang 78 0 0 -
Bài giảng Cấu trúc dữ liệu và giải thuật: Phần 1 - ThS. Hoàng Thế Phương
128 trang 73 0 0 -
96 trang 58 2 0
-
88 trang 56 0 0
-
Giáo trình về môn Lập trình C căn bản
131 trang 54 0 0 -
109 trang 47 0 0
-
C# và các lớp cơ sở System.object
9 trang 46 0 0 -
111 trang 44 2 0
-
Bài giảng Lập trình Java cơ bản: Chương 3 - GV. Võ Hoàng Phương Dung
55 trang 38 0 0 -
Ngôn ngữ lập trình C++ - PGS.TS Trần Đình Quế
186 trang 35 0 0 -
111 trang 35 0 0
-
102 trang 35 0 0
-
Bài giảng Ngôn ngữ lập trình C - Võ Đức Hoàng
192 trang 34 0 0