Bài giảng Nhập môn lập trình - Chương 6: Kiểu dữ liệu có cấu trúc - Trần Minh Thái

Khái niệm Kiểu dữ liệu có cấu trúc thực chất là một kiểu dữ liệu do người dùng đị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 nhiều thành phần Khai báo struct tênstruct { public khai báo các thuộc tính; } Ví dụ khai báo kiểu dữ liệu lưu thông tin của ngày: struct sDate { public string thu; public int ngay; public int thang; public int nam; }

pptx16 trang | Chia sẻ: candy98 | Lượt xem: 565 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Bài giảng Nhập môn lập trình - Chương 6: Kiểu dữ liệu có cấu trúc - Trần Minh Thái, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
TRẦN MINH THÁIminhthai@huflit.edu.vnKiểu dữ liệu có cấu trúc1Khái niệmKiểu dữ liệu có cấu trúc thực chất là một kiểu dữ liệu do người dùng đị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 nhiều thành phầnKhai báo struct tênstruct { public khai báo các thuộc tính; }2Kiểu dữ liệu có cấu trúcVí dụ khai báo kiểu dữ liệu lưu thông tin của ngày:struct sDate{ public string thu; public int ngay; public int thang; public int nam;}3Truy cập các thuộc tính cấu trúcBiến kiểu cấu trúctênstruct tênbiến;tênbiến.thuộctính;Ví dụ sDate x; x.ngay = 5;45Ví dụ: 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 sDiem{ public int x; public int y;}6static void Nhap (out sDiem d){ Console.WriteLine(“Nhap vao toa do diem:”); Console.Write(“Hoanh do : “); d.x = int.Parse(Console.ReadLine()); Console.Write(“Tung do : ”); d.y = int.Parse(Console.ReadLine()); }7static void Xuat (sDiem d){ Console.WriteLine(“Toa do diem : ({0}, {1})“, d.x, d.y);} static sDiem Tong (sDiem d1, sDiem d2){ sDiem temp; temp.x = d1.x + d2.x ; temp.y = d1.y + d2.y ; return temp;}8static void Main (string []args){ sDiem A , B, AB; //khai bao 3 diem A, B, AB; Nhap (out A); Xuat (A); Nhap (out B); Xuat (B); AB = Tong (A, B); Console.WriteLine("Tong toa do cua hai diem vua nhap:”); Xuat (AB);}9Bài tập 1Viế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ênHọ và tênĐiểm giữa kỳ (GK)Điểm thực hành (TH)Điểm lý thuyết (LT)Tính điểm tổng kết môn theo công thức: GK*10%+TH*30%+LT*60%10Bài tập 2Viế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úcCách khai báo tương tự như mảng một chiều (KDL là KDL 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 (xem lại bảng các KDL cơ bản)11Nguyên tắc lập trình trên mảng cấu trúcDo 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ử lý 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. 1213Ví dụViết hàm nhập vào mảng các phân sốstruct sPhanSo{ public int tu; public int mau;}14Ví dụstatic void Nhap(out sPhanSo ps){ Console.Write("Nhap tu so: "); ps.tu = int.Parse(Console.ReadLine()); Console.Write(“Nhap mau so: “); ps.mau = int.Parse(Console.ReadLine());}15Ví dụstatic void Nhap (sPhanSo []dsps, int n){ for(int i=0; i<n; i++) { Console.WriteLine(“Nhap vao phan so thu {0}:“, i+1); Nhap(dsps[i]); }}16Bài tập 33.1. Viết chương trình nhập vào mảng các phân số, cho biết phân số có giá trị lớn nhất trong mảng3.2. Viết chương trình nhập vào danh sách các mặt hàng, in ra mặt hàng có xuất xứ “VietNam”, biết thông tin mặt hàng gồm: - Mã mặt hàng - Tên mặt hàng - Đơn giá - Xuất xứ