Xem mẫu

  1. ĐẠI HỌC AN GIANG KHOA KỸ THUẬT – CÔNG NGHỆ – MÔITRƯỜNG BÀI THI THIẾT KẾ BÀI GIẢNG ĐIỆN TỬ LẦN V-2013 GV dự thi: Huỳnh Cao Thế Cường
  2. CHUYÊN ĐỀ NGÔN NGỮ LẬP TRÌNH 3 Giảng viên: Huỳnh Cao Thế Cường Địa điểm: ND202 Dành cho sinh viên lớp DH12TH
  3. Nội dung môn học Tổng quan Giới thiệu về ngôn ngữ lập trình C# Biến và kiểu dữ liệu trong C# Cấu trúc điều khiển trong C# Lớp và đối tượng trong C# Thao tác với các file và luồng dữ liệung trong C# 3
  4. Nội dung bài học Khái niệm kiểu dữ liệu Kiểu giá trị Kiểu tham chiếu Bộ thu gom rác Biến và hằng Câu hỏi củng cố 4
  5. Kiểu dữ liệu là gì? Common Type System Hình thái Xử Cấu lý trúc Kiểu dữ liệu Biểu Giá diễn trị 5
  6. Common Type System Type Value Type Reference Type User Primitive Enum Pointer Interface Self describing defined User Boxed Delegate defined 6
  7. Các kiểu dữ liệu • Kiểu dữ liệu trong .NET được chia thành hai loại: • Kiểu giá trị (Value Types) • Kiểu tham chiếu (Reference Types) • Mỗi kiểu dữ liệu trong .NET là một đối tượng, nghĩa là nó có các thuộc tính và phương thức riêng. 7
  8. Các kiểu dữ liệu Predefined Types Value Reference Types Types Enumeration Struct String Object Types Types Simply Types Numeric Bool Types Floating- Integer Decimal Sbyte, byte, short, point Types Types ushort, int, uint, long, ulong, char Double Float 8
  9. Kiểu giá trị (Value Types) • Các thể hiện của kiểu giá trị được lưu trữ trong một vùng nhớ được gọi là stack • Xét ví dụ: public void Method1() stack { int i=4; int y=i; y=4 Hai biến có hai vùng } i=4 nhớ khác nhau 9
  10. Kiểu tham chiếu (Reference Types) • Kiểu tham chiếu lưu trữ địa chỉ dữ liệu của chúng trên stack. • Dữ liệu thực sự mà các địa chỉ tham chiếu tới được lưu trữ trong một vùng bộ nhớ được gọi là heap • Hầu hết các kiểu dữ liệu trong .NET Framework là kiểu tham chiếu. • Xét ví dụ sau: public void Method1() stack heap { cls1 obj = new cls1(); cls1 obj1 = obj; obj1(ref) } obj(ref) cls1 Cả hai biến tham chiếu obj và obj1 đều chỉ đến một thể hiện của đối tượng cls1 10
  11. Bộ thu gom rác (Garbage collector) • Garbage collector tiến hành hủy các đối tượng không còn được tham chiếu, giúp giải phóng vùng nhớ heap • Xét ví dụ sau: public void Method1() stack heap { int i = 4; int y = 2; cls1(ref) class1 cls1 = new class1(); y=2 cls1 Object } i=4 Các biến kiểu giá trị i, y, cls(ref) sẽ bị hủy. Tuy nhiên Kết thúc phương đối tượng cls1 vẫn tồn tại trong bộ nhớ cho đến khi thức Method1 bộ thu gom rác tiến hành làm việc 11
  12. Các kiểu giá trị (Value Types) Kiểu số Kiểu liệt kê Kiểu Kiểu luận lý giá trị Kiểu do người dùng định nghĩa 12
  13. Các kiểu giá trị (Value Types) • Kiểu số • Là kiểu cơ sở do .NET Framework cung cấp • Mỗi kiểu số có kích thước riêng Dựa vào miền để Làm thế nào giá Vấn đề trị của kiểu số lựa chọn kiểu số Cần lưu trữ các dữ liệu dạng số sau: phù hợp với yêu • Lương của nhân viên Số nguyên từ cầu lưu trữ? • Tuổi của người 500,000  20,000,000 • Điểm của sinh viên Số nguyên từ 1  130 tuổi Số thập phân từ 0.0  10.0 điểm 13
  14. Miền giá trị của kiểu số Kiểu/Alias C# Kích thước Miền giá trị (range) Lương của sinh viên Điểm của nhân viên Tuổi của người System.Sbyte/sbyte 1 byte -128  127 1  10.0 500.000  20.000.000 0.0 130 System.byte/byte 1 byte 0  255 System.Short/short 2 bytes -32768  32767 System.Integer/int 4 bytes -2147483648  21474836487 System.Uinteger/uint 4 bytes 0  4294967295 System.Long/long 8 bytes -9223372036854775808  9223372036854775807 System.Single/float 4 bytes -3.402823E+38  3.402823E+38 System.Double/double 8 bytes -1.79769313486232E+308  1.79769313486232E+308 System.Decimal/double 16 bytes -79228162514264337593543950335  79228162514264337593543950335 System.Char/char 2 bytes N/A System.Boolean/bool 4 bytes N/A 14
  15. Các kiểu giá trị • Việc sử dụng alias hoàn toàn tương đương với cách sử dụng tên kiểu theo cách đầy đủ, tuy nhiên hầu hết các lập trình viên sử dụng alias để chúng ngắn gọn hơn. • Khi gán các biến kiểu giá trị với nhau, dữ liệu được sao chép từ biến này tới biến kia và được lưu trữ tại hai vị trí khác nhau trên stack • Các kiểu giá trị thường được dùng để trình bày các giá trị đơn giản Slide 11 15
  16. Các kiểu giá trị • Kiểu liệt kê (Enumerations) • Kiểu liệt kê là các ký hiệu có liên quan với nhau chứa các giá trị cố định. • Kiểu liệt kê được dùng để cung cấp một danh sách chọn lựa cho lập trình viên sử dụng • Lưu ý: khi khai báo kiểu liệt kê chỉ có thể sử dụng các kiểu số nguyên như byte, sbyte, short, ushort, int, uint, long hoặc ulong. 16
  17. Kiểu liệt kê (Enumerations) • Khi nào nên sử dụng kiểu liệt kê? Vấn đề Giải pháp Khó nhớ Cần lưu trữ nhân xưng Sử dụng kiểu liệt kê • Mr, Ms, Mrs, Dr • Sử dụng kiểu số nguyên enum Titles : int { Mr, Ms, Mrs, Dr }; • 1  Mr Titles nx = Titles.Dr; • 2  Ms Console.WriteLine("{0}.", nx); • 3  Mrs // In ra màn hình "Dr." • 4  Dr int nx = 4; // Ngầm hiểu đang lưu trữ nhân xưng là Dr Slide 11 17
  18. Các kiểu giá trị • Kiểu do người dùng định nghĩa (User-defined Types) • Kiểu do người dùng định nghĩa còn được gọi là các struct. Giống như các kiểu giá trị khác, các thể hiện của kiểu do người dùng định nghĩa được lưu trữ trên stack • struct là một kiểu cấu trúc hỗn hợp của nhiều kiểu khác nhằm mục đích dễ dàng làm việc với dạng dữ liệu có liên quan với nhau • struct có cấu trúc tương tự như class, tuy nhiên struct có kiểu giá trị còn class có kiểu tham chiếu. 18
  19. Kiểu do người dùng định nghĩa dữ liệu • Khi nào nên sử dụng kiểu do người dùng định nghĩa dữ liệu? Thông tin học sinh Thông tin khách hàng • Mã số • Số điện thoại • Họ và tên • Họ và tên • Ngày sinh • Địa chỉ liên lạc • Giới tính • Tên lớp • Địa chỉ liên lạc Các thông tin có liên quan của một đối tượng 19
  20. Kiểu do người dùng định nghĩa dữ liệu Khai báo Sử dụng struct HocSinh HocSinh hs; { hs.MaSo = “A01”; public string MaSo; hs.HoTen = “Hoàng Thị Ngọc”; public string HoTen; hs.NgaySinh = public DateTime NgaySinh; DateTime.Parse(“24/1/1998”); public bool GioiTinh; hs.GioiTinh = false; public string TenLop; Hs.DiaChi = “An Giang”; public string DiaChi; } 20
nguon tai.lieu . vn