Bài giảng Kỹ thuật lập trình: Chương 2 - Võ Quang Hoàng Khang
Số trang: 41
Loại file: pdf
Dung lượng: 1.24 MB
Lượt xem: 3
Lượt tải: 0
Xem trước 5 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Chương 2 trình bày về kiểu dữ liệu có cấu trúc. Chương này gồm có những nooiij dung cụ thể sau: Khái niệm, khai báo dữ liệu có cấu trúc, cách truy xuất thành phần bên trong cấu trúc. 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 Kỹ thuật lập trình: Chương 2 - Võ Quang Hoàng Khang CHƯƠNG 2.KIỂU DỮ LIỆU CÓ CẤU TRÚCVÕ QUANG HOÀNG KHANGEmail: vqhkhang@gmail.com NỘI DUNG#2 Khái niệm Khai báo Cách truy xuất thành phần bên trong cấu trúc Xử lý cấu trúc đơn Xử lý mảng có cấu trúc Bài tập KHÁI NIỆM#3 Kiểu dữ liệu có cấu trúc là kiểu dữ liệu do lập trình viên tự định nghĩa bằng cách gom nhóm các kiểu dữ liệu cơ bản có sẵn trong C thành một kiểu dữ liệu phức hợp gồm nhiều thành phần: Khai báo struct tên_struct { khai báo các thuộc tính; }; typedef struct tên_struct TênKDL; KHÁI NIỆM#4 Ví dụ khai báo kiểu dữ liệu lưu thông tin của ngày: struct ttDate { char thu[10]; int ngay; int thang; int nam; }; typedef struct ttDate Date; TRUY CẬP CÁC THUỘC TÍNH CẤU TRÚC#5 Biến kiểu cấu trúc TÊNKDL tên_biến; tên_biến.tên_thuộc_tính; Ví dụ Date x; x.ngay = 5; TRUY CẬP CÁC THUỘC TÍNH CẤU TRÚC#6 Biến con trỏ kiểu cấu trúc TÊNKDL *tên_biến_con_trỏ; tên_biến_con_trỏ -> tên_thuộc_tính; Ví dụ: Date *x ; x = (Date*) malloc(sizeof(Date)); x -> ngay = 5 ; KHAI BÁO ĐỆ QUY#7 struct tên_struct { khai báo các thuộc tính; struct tên_struct *tên_thuộc_tính_đệ_qui; }; KHAI BÁO ĐỆ QUY#8 Ví dụ: struct ttNode { int key; struct ttNode *pNext; }; VÍ DỤ#9 Viết chương trình nhập vào toạ độ hai điểm trong mặt phẳng và tính tổng hai toạ độ này struct ttDiem { int x; int y; }; typedef struct ttDiem Diem; VÍ DỤ#10 void Nhap (Diem &d) { printf(“\nNhap vao toa do diem\n”); printf(“Hoanh do : “); scanf(“%d”, &d. x); printf(“Tung do : ”) scanf(“%d”, &d.y); } VÍ DỤ#11 void Xuat (Diem d) { printf(“\nToa do diem : (%d, %d)”, d.x, d.y); } Diem Tong (Diem d1, Diem d2) { Diem temp; temp.x = d1.x + d2.x ; temp.y = d1.y + d2.y ; return temp; } VÍ DỤ#12 int main () { Diem A , B, AB; //khai bao 3 diem A, B, AB; Nhap (A); Xuat (A); Nhap (B); Xuat (B); printf(“\n Tong cua hai diem vua nhap la : ”); AB = Tong (A, B); Xuat (AB); return 0; } BÀI TẬP 1#13 Viết chương trình nhập vào thông tin của một sinh viên gồm: Mã số sinh viên Họ và tên Điểm giữa kỳ (GK) Điểm thực hành (TH) Điểm lý thuyết (LT) Điểm tổng kết Tính điểm tổng kết môn theo công thức: GK*10%+TH*30%+LT*60% BÀI TẬP 2#14 Sử dụng kiểu dữ liệu có cấu trúc để khai báo và viết chương trình (theo phương pháp thủ tục hàm) gồm các chức năng sau: 1. Nhập vào 2 phân số 2. Tính tổng và tích hai phân số (kết quả phải là phân số tối giản) 3. Xuất kết quả ra màn hình BÀI TẬP 3#15 Viết chương trình nhập vào 2 thời gian t1 và t2 (thông tin thời gian gồm: giờ, phút và giây); tính khoảng cách giữa t1 và t2 (đơn vị tính bằng giây) MẢNG CẤU TRÚC#16 Cách khai báo tương tự như mảng một chiều (Kiểu dữ liệu bây giờ là kiểu dữ liệu có cấu trúc). Cách truy cập phần tử trong mảng cũng như truy cập trên mảng một chiều. Nhưng do từng phần tử có kiểu cấu trúc nên phải chỉ định rõ cần lấy thành phần nào, tức là phải truy cập đến thành phần cuối cùng có kiểu là dữ liệu cơ bản NGUYÊN TẮC LẬP TRÌNH TRÊN MẢNG CẤU TRÚC#17 Do kiểu dữ liệu có cấu trúc thường chứa rất nhiều thành phần nên khi viết chương trình loại này ta cần lưu ý: Xây dựng hàm xử ý cho một kiểu cấu trúc. Muốn xử lý cho mảng cấu trúc, ta gọi lại hàm xử lý cho một kiểu cấu trúc đã được xây dựng bằng cách dùng vòng lặp. 17 VÍ DỤ#18 Viết hàm nhập vào mảng các phân số typedef struct ttPhanSo { int tu, mau; }PhanSo; VÍ DỤ#19 void NhapPS(PhanSo &ps) { printf(Nhap tu so: ); scanf(%d ”, , &ps.tu); printf(\nNhap mau so: “); scanf(“%d”, &ps.mau); } VÍ DỤ#20 void NhapMangPS(PHANSO dsps[], int n) { for(int i=0; i
Nội dung trích xuất từ tài liệu:
Bài giảng Kỹ thuật lập trình: Chương 2 - Võ Quang Hoàng Khang CHƯƠNG 2.KIỂU DỮ LIỆU CÓ CẤU TRÚCVÕ QUANG HOÀNG KHANGEmail: vqhkhang@gmail.com NỘI DUNG#2 Khái niệm Khai báo Cách truy xuất thành phần bên trong cấu trúc Xử lý cấu trúc đơn Xử lý mảng có cấu trúc Bài tập KHÁI NIỆM#3 Kiểu dữ liệu có cấu trúc là kiểu dữ liệu do lập trình viên tự định nghĩa bằng cách gom nhóm các kiểu dữ liệu cơ bản có sẵn trong C thành một kiểu dữ liệu phức hợp gồm nhiều thành phần: Khai báo struct tên_struct { khai báo các thuộc tính; }; typedef struct tên_struct TênKDL; KHÁI NIỆM#4 Ví dụ khai báo kiểu dữ liệu lưu thông tin của ngày: struct ttDate { char thu[10]; int ngay; int thang; int nam; }; typedef struct ttDate Date; TRUY CẬP CÁC THUỘC TÍNH CẤU TRÚC#5 Biến kiểu cấu trúc TÊNKDL tên_biến; tên_biến.tên_thuộc_tính; Ví dụ Date x; x.ngay = 5; TRUY CẬP CÁC THUỘC TÍNH CẤU TRÚC#6 Biến con trỏ kiểu cấu trúc TÊNKDL *tên_biến_con_trỏ; tên_biến_con_trỏ -> tên_thuộc_tính; Ví dụ: Date *x ; x = (Date*) malloc(sizeof(Date)); x -> ngay = 5 ; KHAI BÁO ĐỆ QUY#7 struct tên_struct { khai báo các thuộc tính; struct tên_struct *tên_thuộc_tính_đệ_qui; }; KHAI BÁO ĐỆ QUY#8 Ví dụ: struct ttNode { int key; struct ttNode *pNext; }; VÍ DỤ#9 Viết chương trình nhập vào toạ độ hai điểm trong mặt phẳng và tính tổng hai toạ độ này struct ttDiem { int x; int y; }; typedef struct ttDiem Diem; VÍ DỤ#10 void Nhap (Diem &d) { printf(“\nNhap vao toa do diem\n”); printf(“Hoanh do : “); scanf(“%d”, &d. x); printf(“Tung do : ”) scanf(“%d”, &d.y); } VÍ DỤ#11 void Xuat (Diem d) { printf(“\nToa do diem : (%d, %d)”, d.x, d.y); } Diem Tong (Diem d1, Diem d2) { Diem temp; temp.x = d1.x + d2.x ; temp.y = d1.y + d2.y ; return temp; } VÍ DỤ#12 int main () { Diem A , B, AB; //khai bao 3 diem A, B, AB; Nhap (A); Xuat (A); Nhap (B); Xuat (B); printf(“\n Tong cua hai diem vua nhap la : ”); AB = Tong (A, B); Xuat (AB); return 0; } BÀI TẬP 1#13 Viết chương trình nhập vào thông tin của một sinh viên gồm: Mã số sinh viên Họ và tên Điểm giữa kỳ (GK) Điểm thực hành (TH) Điểm lý thuyết (LT) Điểm tổng kết Tính điểm tổng kết môn theo công thức: GK*10%+TH*30%+LT*60% BÀI TẬP 2#14 Sử dụng kiểu dữ liệu có cấu trúc để khai báo và viết chương trình (theo phương pháp thủ tục hàm) gồm các chức năng sau: 1. Nhập vào 2 phân số 2. Tính tổng và tích hai phân số (kết quả phải là phân số tối giản) 3. Xuất kết quả ra màn hình BÀI TẬP 3#15 Viết chương trình nhập vào 2 thời gian t1 và t2 (thông tin thời gian gồm: giờ, phút và giây); tính khoảng cách giữa t1 và t2 (đơn vị tính bằng giây) MẢNG CẤU TRÚC#16 Cách khai báo tương tự như mảng một chiều (Kiểu dữ liệu bây giờ là kiểu dữ liệu có cấu trúc). Cách truy cập phần tử trong mảng cũng như truy cập trên mảng một chiều. Nhưng do từng phần tử có kiểu cấu trúc nên phải chỉ định rõ cần lấy thành phần nào, tức là phải truy cập đến thành phần cuối cùng có kiểu là dữ liệu cơ bản NGUYÊN TẮC LẬP TRÌNH TRÊN MẢNG CẤU TRÚC#17 Do kiểu dữ liệu có cấu trúc thường chứa rất nhiều thành phần nên khi viết chương trình loại này ta cần lưu ý: Xây dựng hàm xử ý cho một kiểu cấu trúc. Muốn xử lý cho mảng cấu trúc, ta gọi lại hàm xử lý cho một kiểu cấu trúc đã được xây dựng bằng cách dùng vòng lặp. 17 VÍ DỤ#18 Viết hàm nhập vào mảng các phân số typedef struct ttPhanSo { int tu, mau; }PhanSo; VÍ DỤ#19 void NhapPS(PhanSo &ps) { printf(Nhap tu so: ); scanf(%d ”, , &ps.tu); printf(\nNhap mau so: “); scanf(“%d”, &ps.mau); } VÍ DỤ#20 void NhapMangPS(PHANSO dsps[], int n) { for(int i=0; i
Tìm kiếm theo từ khóa liên quan:
Kỹ thuật lập trình Bài giảng Kỹ thuật lập trình Kiểu dữ liệu có cấu trúc Xử lý cấu trúc đơn Xử lý mảng có cấu trúc Khai báo dữ liệu có cấu trúcGợi ý tài liệu liên quan:
-
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 262 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 203 0 0 -
Giới thiệu môn học Ngôn ngữ lập trình C++
5 trang 193 0 0 -
Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình
30 trang 163 0 0 -
Luận văn: Nghiên cứu kỹ thuật giấu tin trong ảnh Gif
33 trang 152 0 0 -
Báo cáo thực tập Công nghệ thông tin: Lập trình game trên Unity
27 trang 118 0 0 -
Giáo trình về phân tích thiết kế hệ thống thông tin
113 trang 114 0 0 -
LUẬN VĂN: Tìm hiểu kỹ thuật tạo bóng cứng trong đồ họa 3D
41 trang 107 0 0 -
Bài giảng Kỹ thuật lập trình - Chương 10: Tổng kết môn học (Trường Đại học Bách khoa Hà Nội)
67 trang 105 0 0 -
Giáo trình Nhập môn lập trình VB6: Phần 2
184 trang 89 0 0