Xem mẫu
- ĐẠ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
- 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
- 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
- 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
- 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
- Common Type System
Type
Value Type Reference Type
User
Primitive Enum Pointer Interface Self describing
defined
User
Boxed Delegate
defined
6
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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