Bài giảng Phương pháp lập trình - Chương 8: Kiểu cấu trúc (2016)
Số trang: 29
Loại file: ppt
Dung lượng: 1.02 MB
Lượt xem: 15
Lượt tải: 0
Xem trước 0 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng "Phương pháp lập trình - Chương 8: Kiểu cấu trúc" giới thiệu khái quát về kiểu dữ liệu, kiểu dữ liệu cấu trúc, kiểu dữ liệu liệt kê enum, từ khóa typedef. Mời các bạn cùng tham khảo nội dung chi tiết.
Nội dung trích xuất từ tài liệu:
Bài giảng Phương pháp lập trình - Chương 8: Kiểu cấu trúc (2016)Chương8Nộidungtrìnhbày1. Giớithiệu2. Kiểucấutrúc3. Kiểuliệtkêenum4. Từkhóatypedef1.Giớithiệu Vấnđề:cáckiểudữliệucơsởkhôngđủđểgiải quyếtcácbàitoánphứctạp Vídụ:Viếtchươngtrìnhtínhlươngchonhânviên, hoặcviếtchươngtrìnhchonhậpdanhsáchsinhviên giảiquyếtbàitoánphứctạpvìCkhôngcókiểu nhânviên,sinhviên Giảiquyết:Cầnphảicócáchđểtạoracáckiểudữ liệutheonhưýmuốnđểgiảiquyếtbàitoánphứctạp Có5cáchđểtạokiểudữliệutùybiến ◦ Structure (Cấutrúc) ◦ bitfield ◦ Union ◦ Enumeration ◦ typedefNộidungtrìnhbày1. Giớithiệu2. Kiểucấutrúc3. Kiểuliệtkêenum4. Từkhóatypedef2.Cấutrúc:Giớithiệu Mộtcấutrúclàmộttậpcácbiếnđượcthamchiếu thôngquamộttênchung Những biến tạo nên cấu trúc được gọi là các thànhviên(members) Ví dụ: Cần tạo cấu trúc để lưu trữ bảng dữ liệu sau: Mã số Họ tên Điểm Kết quả 0123 Lê An 19 Đậu 0124 Nguyễn Bê 12 Rớt ◦Cấu trúc này gồm các thành viên: mã số, họ tên, điểm,kếtquả2.Cấutrúc:Khaibáostruct structureName structureName: Tên của cấu trúc{ type: Kiểu dữ liệu của type member1; thành viên tương ứng type member2; member1,..., memberN: ... Tên các biến thành viên của cấu trúc type memberN; varNames: Tên các biến .. . cấu trúc (nếu có) phân} [varNames]; cách nhau bởi dấu phẩy Struct phải được khai báo liền sau những dòng include2.Cấutrúc:Vídụ1 Tạomộtcấutrúcsinhviêngồmcácthôngtin:mã số sinh viên (chuỗi), họ tên (chuỗi), năm sinh (số),địachỉ(chuỗi) structSinhVien { charMaSV[10]; charTenSV[30]; intNamSinh; charDiaChi[50]; }sv1,sv2;Có2biếnkiểucấutrúcSinhVienlà:sv1,sv22.Cấutrúc:Vídụ2 Thànhphầncủacấutrúccóthểcókiểulàmột cấutrúcđãđượcđịnhnghĩatrước struct NGAY { int ngay; int thang; int nam; }; struct HOSO { char hoten [30]; struct NGAY ns; long LCB; long thuong; long thuclanh; };2.Cấutrúc:Khaibáobiếncấutrúc Cú pháp (dùng 1 trong 2 cách): struct structureName varName; structureName varName; ◦Cách thứ 2 tương tự cách khai báo biến thông thường Ví dụ: ◦Khai báo biến s1, s2 có kiểu SinhVien struct SinhVien s1, s2; // c1 SinhVien s1, s2; // c22.Cấutrúc:Truycậpbiếncấutrúc Dùngtoántử chấm (dotoperator)đểtruycậpcác thànhviêncủamộtbiếncấutrúc Cúpháp: varName.memberName Phảidùng toán tử chấm trong lệnh nhập (cin, gets), lệnh xuất (cout, puts) và các lệnh gán thànhviên Vídụ: gets(sv1.MaSV) gets(sv1.TenSV); gets(sv1.NamSinh); cout2.Cấutrúc:Lệnhgáncấutrúc Dùnglệnhgánđểgánnộidungtrong1biếncấu trúcchomộtbiếncấutrúckháccócùngkiểu Vídụ: Hoặccóthểgántừngthành structSinhViensv1,sv2; viên: sv1.MaSV=“a001”; sv2.MaSV=sv1.MaSV; sv1.TenSV=“NguyenvanA”; sv2.TenSV=sv1.MaSV; sv1.NamSinh=1977; sv2.NamSinh=sv1.NamSinh sv2=sv1; ; sv1 a001 Nguyen Van A 1977 sv22.Cấutrúc:Mảngcáccấutrúc Mảng cấu trúc là một mảng mà mỗi phần tử là mộtbiếnkiểucấutrúc Để khai báo một mảng các cấu trúc, trước hết phải khai báo cấu trúc, sau đó khai báo một mảngcủacấutrúcđó Vídụ: structDS{ charhoten[25]; floattoan,ly,hoa; }; DSbangdiem[50]; //mảng50phầntửkiểuDS2.Cấutrúc:Mảngcáccấutrúc Để truy cập đến từng thành viên của từng phần tử của mảng, ta dùng chỉ mục của phần tử và toántửchấm Vídụ:Chonhậpliệuvàomảngbangdiem for(inti=0;i2.Cấutrúc:Truyềnthamsốkiểu cấutrúca. Truyềnthànhviêncủabiếncấutrúcvàohàm Vídụ: structdiem { intx; inty; }; doublekhcach(intx1,inty1,intx2,inty2) { doublekc; kc=sqrt(pow((x2x1),2)+pow((y2y1),2)); returnkc; }2.Cấutrúc:Truyềnthamsốkiểu cấutrúc(tt)Vídụ(tiếptheo): voidmain() { diema,b; cout2.Cấutrúc:Truyềnthamsốkiểu cấutrúc(tt)b. Truyềntoànbộbiếncấutrúcđếnhàm Vídụ: structdiem { intx; inty; }; doublekhcach(diema,diemb) { doublekc; kc=sqrt(pow((b.xa.x),2)+pow((b.ya.y),2)); returnkc; }2.Cấutrúc:Truyềnthamsốkiểu cấutrúc(tt)Vídụ( ...
Nội dung trích xuất từ tài liệu:
Bài giảng Phương pháp lập trình - Chương 8: Kiểu cấu trúc (2016)Chương8Nộidungtrìnhbày1. Giớithiệu2. Kiểucấutrúc3. Kiểuliệtkêenum4. Từkhóatypedef1.Giớithiệu Vấnđề:cáckiểudữliệucơsởkhôngđủđểgiải quyếtcácbàitoánphứctạp Vídụ:Viếtchươngtrìnhtínhlươngchonhânviên, hoặcviếtchươngtrìnhchonhậpdanhsáchsinhviên giảiquyếtbàitoánphứctạpvìCkhôngcókiểu nhânviên,sinhviên Giảiquyết:Cầnphảicócáchđểtạoracáckiểudữ liệutheonhưýmuốnđểgiảiquyếtbàitoánphứctạp Có5cáchđểtạokiểudữliệutùybiến ◦ Structure (Cấutrúc) ◦ bitfield ◦ Union ◦ Enumeration ◦ typedefNộidungtrìnhbày1. Giớithiệu2. Kiểucấutrúc3. Kiểuliệtkêenum4. Từkhóatypedef2.Cấutrúc:Giớithiệu Mộtcấutrúclàmộttậpcácbiếnđượcthamchiếu thôngquamộttênchung Những biến tạo nên cấu trúc được gọi là các thànhviên(members) Ví dụ: Cần tạo cấu trúc để lưu trữ bảng dữ liệu sau: Mã số Họ tên Điểm Kết quả 0123 Lê An 19 Đậu 0124 Nguyễn Bê 12 Rớt ◦Cấu trúc này gồm các thành viên: mã số, họ tên, điểm,kếtquả2.Cấutrúc:Khaibáostruct structureName structureName: Tên của cấu trúc{ type: Kiểu dữ liệu của type member1; thành viên tương ứng type member2; member1,..., memberN: ... Tên các biến thành viên của cấu trúc type memberN; varNames: Tên các biến .. . cấu trúc (nếu có) phân} [varNames]; cách nhau bởi dấu phẩy Struct phải được khai báo liền sau những dòng include2.Cấutrúc:Vídụ1 Tạomộtcấutrúcsinhviêngồmcácthôngtin:mã số sinh viên (chuỗi), họ tên (chuỗi), năm sinh (số),địachỉ(chuỗi) structSinhVien { charMaSV[10]; charTenSV[30]; intNamSinh; charDiaChi[50]; }sv1,sv2;Có2biếnkiểucấutrúcSinhVienlà:sv1,sv22.Cấutrúc:Vídụ2 Thànhphầncủacấutrúccóthểcókiểulàmột cấutrúcđãđượcđịnhnghĩatrước struct NGAY { int ngay; int thang; int nam; }; struct HOSO { char hoten [30]; struct NGAY ns; long LCB; long thuong; long thuclanh; };2.Cấutrúc:Khaibáobiếncấutrúc Cú pháp (dùng 1 trong 2 cách): struct structureName varName; structureName varName; ◦Cách thứ 2 tương tự cách khai báo biến thông thường Ví dụ: ◦Khai báo biến s1, s2 có kiểu SinhVien struct SinhVien s1, s2; // c1 SinhVien s1, s2; // c22.Cấutrúc:Truycậpbiếncấutrúc Dùngtoántử chấm (dotoperator)đểtruycậpcác thànhviêncủamộtbiếncấutrúc Cúpháp: varName.memberName Phảidùng toán tử chấm trong lệnh nhập (cin, gets), lệnh xuất (cout, puts) và các lệnh gán thànhviên Vídụ: gets(sv1.MaSV) gets(sv1.TenSV); gets(sv1.NamSinh); cout2.Cấutrúc:Lệnhgáncấutrúc Dùnglệnhgánđểgánnộidungtrong1biếncấu trúcchomộtbiếncấutrúckháccócùngkiểu Vídụ: Hoặccóthểgántừngthành structSinhViensv1,sv2; viên: sv1.MaSV=“a001”; sv2.MaSV=sv1.MaSV; sv1.TenSV=“NguyenvanA”; sv2.TenSV=sv1.MaSV; sv1.NamSinh=1977; sv2.NamSinh=sv1.NamSinh sv2=sv1; ; sv1 a001 Nguyen Van A 1977 sv22.Cấutrúc:Mảngcáccấutrúc Mảng cấu trúc là một mảng mà mỗi phần tử là mộtbiếnkiểucấutrúc Để khai báo một mảng các cấu trúc, trước hết phải khai báo cấu trúc, sau đó khai báo một mảngcủacấutrúcđó Vídụ: structDS{ charhoten[25]; floattoan,ly,hoa; }; DSbangdiem[50]; //mảng50phầntửkiểuDS2.Cấutrúc:Mảngcáccấutrúc Để truy cập đến từng thành viên của từng phần tử của mảng, ta dùng chỉ mục của phần tử và toántửchấm Vídụ:Chonhậpliệuvàomảngbangdiem for(inti=0;i2.Cấutrúc:Truyềnthamsốkiểu cấutrúca. Truyềnthànhviêncủabiếncấutrúcvàohàm Vídụ: structdiem { intx; inty; }; doublekhcach(intx1,inty1,intx2,inty2) { doublekc; kc=sqrt(pow((x2x1),2)+pow((y2y1),2)); returnkc; }2.Cấutrúc:Truyềnthamsốkiểu cấutrúc(tt)Vídụ(tiếptheo): voidmain() { diema,b; cout2.Cấutrúc:Truyềnthamsốkiểu cấutrúc(tt)b. Truyềntoànbộbiếncấutrúcđếnhàm Vídụ: structdiem { intx; inty; }; doublekhcach(diema,diemb) { doublekc; kc=sqrt(pow((b.xa.x),2)+pow((b.ya.y),2)); returnkc; }2.Cấutrúc:Truyềnthamsốkiểu cấutrúc(tt)Vídụ( ...
Tìm kiếm theo từ khóa liên quan:
Phương pháp lập trình Bài giảng Phương pháp lập trình Kiểu cấu trúc Kiểu dữ liệu Kiểu dữ liệu cấu trúc Kiểu dữ liệu liệt kê enum Từ khóa typedefGợi ý tài liệu liên quan:
-
Giáo trình Lập trình cơ bản với C++: Phần 1
77 trang 229 0 0 -
114 trang 227 2 0
-
Giáo trình Lập trình logic trong prolog: Phần 1
114 trang 179 0 0 -
Giáo trình Lập trình C căn bản: Phần 1
64 trang 162 0 0 -
Giáo trình Lập trình C căn bản
135 trang 153 0 0 -
14 trang 132 0 0
-
Giáo trình Cấu trúc dữ liệu và giải thuật: Phần 1 - Trần Hạnh Nhi
98 trang 115 0 0 -
Giáo trình lập trình hướng đối tượng - Lê Thị Mỹ Hạnh ĐH Đà Nẵng
165 trang 111 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 109 0 0 -
Tài liệu tham khảo: Cấu trúc dữ liệu và giải thuật
229 trang 107 0 0