• Mỗi kiểu dữ liệu xây dựng sẵn trong C# được ánh xạ đến một kiểu dữ liệu được hỗ
trợ bởi CLS trong .NET.
• Theo nguồn gốc:
Kiểu dữ liệu dựng sẵn (built-in) hay cơ bản: do ngôn ngữ cung cấp;
Kiểu dữ liệu người dùng định nghĩa (user-defined): do người lập trình xây dựng.
• Hoặc theo cách thức lưu trong bộ nhớ:
Kiểu dữ liệu giá trị (value): Lưu kích thước thật trong stack;
Kiểu dữ liệu tham chiếu (reference): Lưu địa chỉ trong stack còn đối tượng thật
thì lưu trong heap.
• Có các loại kiểu dữ liệu cơ bản như: Số nguyên, logic, số thập phân, số thực và
ký tự.
37 trang |
Chia sẻ: thanhle95 | Lượt xem: 505 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Bài giảng Ngôn ngữ C# - Bài 2: Căn bản trong ngôn ngữ C# - Chử Đức Hoàng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1BÀI 2
CĂN BẢN TRONG NGÔN NGỮ C#
GV. Chử Đức Hoàng
2TÌNH HUỐNG DẪN NHẬP
Những thông tin về học viên của trường đại học quốc gia được biểudiến và thực hiện như thế nào bằng ngôn ngữ C#?
Như đã phân tích ở bài trước, việc quản lý học viên của trường đại học quốc gia liên
quan đến rất nhiều vấn đề như: điểm thi, tên, tuổi, Máy tính không tự nhận thức
được những thông tin quản lý thực mà phải biểu diễn, mã hóa để có thể xử lý những
thông tin trên.
3MỤC TIÊU
Mô tả được cách khai báo biến
Trình bày được phạm vi của biến và cấp độ truy cập
Các lệnh trong C#
Mô tả điều khiển thực hiện chương trình C#
Trình bày được cấu trúc của một chương trình C#
Xây dựng một chương trình đơn giản sử dụng C#
4NỘI DUNG
Các từ khóa1
Các kiểu dữ liệu cơ bản2
Biến, hằng3
Toán tử cơ bản4
Cấu trúc chương trình và các lệnh trong C#5
5• Ngôn ngữ C# cung cấp sẵn khoảng 80 từ khóa.
Ví dụ: abtract, class, using, namespace, break, continue, as, do, event, is, in, new,
true, if, else, float, char, finally, protected, return, string, default, for, while,.
• Trong cửa sổ mã nguồn, mặc định từ khóa có màu xanh da trời.
1.1. CÁC TỪ KHÓA
6• Mỗi kiểu dữ liệu xây dựng sẵn trong C# được ánh xạ đến một kiểu dữ liệu được hỗ
trợ bởi CLS trong .NET.
• Theo nguồn gốc:
Kiểu dữ liệu dựng sẵn (built-in) hay cơ bản: do ngôn ngữ cung cấp;
Kiểu dữ liệu người dùng định nghĩa (user-defined): do người lập trình xây dựng.
• Hoặc theo cách thức lưu trong bộ nhớ:
Kiểu dữ liệu giá trị (value): Lưu kích thước thật trong stack;
Kiểu dữ liệu tham chiếu (reference): Lưu địa chỉ trong stack còn đối tượng thật
thì lưu trong heap.
• Có các loại kiểu dữ liệu cơ bản như: Số nguyên, logic, số thập phân, số thực và
ký tự.
1.2. CÁC KIỂU DỮ LIỆU CƠ BẢN
7Kiểu dữ liệu số nguyên
Ngôn ngữ C# cung cấp 8 kiểu dữ liệu số nguyên:
Chọn kiểu dữ liệu:
1. ulong sohieusv;
2. Sbyte diemthivaotruong;
3. short hocphanthilai;
4. ulong tienhocphi;
1.2. CÁC KIỂU DỮ LIỆU CƠ BẢN (tiếp theo)
8Kiểu dữ liệu số thực và số thập phân
Số thực
Thập phân
Chọn kiểu dữ liệu:
5. Float diemthimon;
1.2. CÁC KIỂU DỮ LIỆU CƠ BẢN (tiếp theo)
9Kiểu dữ liệu logic và kí tự
Logic
Kí tự
Chọn kiểu dữ liệu:
6. char tensv;
7. char quequan;
Chuyển kiểu dữ liệu
• Trong C# cho phép thực hiện chuyển đổi giữa một số kiểu dữ liệu.
• Có hai cách để thực hiện việc chuyển đổi kiểu dữ liệu:
Chuyển đổi kiểu tự động;
Chuyển đổi kiểu tường minh.
• Ví dụ:
Chọn kiểu dữ liệu:
8. char tensv;
9. char quequan;
1.2. CÁC KIỂU DỮ LIỆU CƠ BẢN (tiếp theo)
PROPERTIES
On passing, 'Finish' button: Goes to Next Slide
On failing, 'Finish' button: Goes to Next Slide
Allow user to leave quiz: At any time
User may view slides after quiz: At any time
User may attempt quiz: Unlimited times
11
• Định danh
• Biến
• Hằng
1.3. BIẾN VÀ HẰNG
12
• Định danh là tên để nhận ra các phần tử trong các chương trình.
• Đặt tên tuân theo nguyên tắc:
Dùng ký tự chữ và số
Phải bắt đầu bằng ký tự chữ
Ký tự gạch dưới _ được xem là ký tự chữ
Không dùng từ khóa
• Ví dụ:
Hợp lệ: result_score, _number, a1
Không hợp lệ: result%, 4b
1.3.1. ĐỊNH DANH
13
• Biến là một vùng lưu trữ giá trị mang một kiểu dữ liệu nào đó.
• Cú pháp khai báo biến:
[ Từ khóa ] Kiểu dữ liệu Tên biến ;
• Ví dụ:
1. Public char tensv = “Nguyễn Thị Trang”;
• Biến phải là duy nhất.
• Biến phải chứa giá trị trước khi dùng.
• Quy tắc đặt tên biến:
Không được dùng từ khóa;
Không dùng dấu gạch dưới;
Dùng ký tự chữ và số;
Nên bắt đầu bằng ký tự chữ thường;
Không nên đặt hai biến chỉ khác nhau chữ thường và chữ hoa.
1.3.2. BIẾN TRONG C#
14
• Hằng là một biến nhưng giá trị của hằng không thay đổi trong suốt thời gian thi
hành chương trình.
• Cú pháp:
Const Kiểu dữ liệu Tên hằng = giá trị gán;
• Ví dụ:
11. Const int diemhocbongky1 = 7;
• Lưu ý khi sử dụng hằng:
Phải gán giá trị khi khai báo.
Không đè chồng giá trị lên hằng.
Không gán giá trị biến lên hằng.
• Thuận lợi khi sử dụng hằng:
Đọc chương trình dễ hơn
Soát lỗi nhanh hơn
1.3.3. HẰNG TRONG C#
PROPERTIES
On passing, 'Finish' button: Goes to Next Slide
On failing, 'Finish' button: Goes to Next Slide
Allow user to leave quiz: At any time
User may view slides after quiz: At any time
User may attempt quiz: Unlimited times
16
• Các toán tử trong C#
• Phép toán ba toán hạng
1.4. CÁC TOÁN TỬ CƠ BẢN
17
1.4.1. CÁC TOÁN TỬ TRONG C#
• Toán tử được ký hiệu bằng một biểu tượng dùng để thực hiện một hành động. Ngôn
ngữ C# hỗ trợ rất nhiều toán tử:
Toán tử số học: thực hiện các phép toán số học;
Toán tử gán: gán giá trị;
Toán tử tăng giảm;
Toán tử logic: thực hiện phép toán logic;
Toán tử quan hệ: thực hiện các phép toán quan hệ.
• Khi sử dụng toán tử thì phải lưu ý đến:
Độ ưu tiên toán tử;
Thực hiện toán tử ba ngôi.
18
Toán tử số học
• Ngôn ngữ C# cung cấp 5 toán tử số học đó là: +, -, *, /, %.
• Sửdụng các phép toán này trên các giá trị: char, int, long, float, double, decimal.
• Không dùng cho kiểu bool và string.
• Ngoại lệ: dấu + dùng để nối các chuỗi.
• Ví dụ:
12. int diemtoan, diemly, diemhoa, diemtong;
13. float diemtb, diemdu;
14. diemtong = diemtoan + diemly+diemhoa;
15. Diemtb = diemtong/3;
16. Diemdu = diemtong/3;
1.4.1. CÁC TOÁN TỬ TRONG C# (tiếp theo)
19
Toán tử tăng, giảm
17.diemtoan = diemtoan + 1;
18.diemtoan += 1;
19.diemtoan++;
• Tính toán và gán trở lại:
20.diemly = diemly – 1;
21.diemly -= 1;
22.diemly--;
• Tăng giảm tiền tố:
23.diemtoan1 = 5;
24.diemtoan = diemtoan1++;
Kết quả:
Diemtoan = 5
Diemtoan1 = 6
• Tăng giảm hậu tố:
25.diemtoan1= 7;
26.Diemtoan = ++diemtoan;
Kết quả:
Diemtoan = 8;
Diemtoan1 = 8
1.4.1. CÁC TOÁN TỬ TRONG C# (tiếp theo)
20
Toán tử quan hệ
• So sánh giữa hai giá trị và trả về kết quả là một giá trị logic.
• Ví dụ:
27. diemtb1 = 10; diemtb2 = 12
28. Phép toán Kết quả
29. diemtb1 = = diemtb2; false
30. diemtb1 != diemtb2; true
31. Diemtb1 > diemtb2 false
32. Diemtb1 >=10; false
33. Diemtb1 < diemtb2; true
34. Diemtb1<=12; true
1.4.1. CÁC TOÁN TỬ TRONG C# (tiếp theo)
21
Toán tử logic
• Một toán tử logic là một toán tử có kết quả đúng (true) và sai (false).Có các toán
tử logic đó là: và, hoặc, phủ định.
• Toán tử logic và: Ký hiệu “&&”
X Y Kết quả
True True True
False True False
True False False
False False False
• Toán tử logic hoặc: Ký hiệu “||”
X Y Kết quả
True True True
False True True
True False True
False False False
• Toán tử logic hoặc: Ký hiệu “!”
X Kết quả
True False
False True
• Chú ý: các toán tử làm
việc trên một toán hạng
được gọi là toán tử một
ngôi, làm việc trên hai
toán hạng được gọi là
hai ngôi.
• Kiểu dữ liệu là bool
1.4.1. CÁC TOÁN TỬ TRONG C# (tiếp theo)
22
Phép toán ba toán hạng “:?”
• Cấu trúc:
?:
• Ví dụ:
35. int diemcaonhat, diemsv1=8, diemsv2=9;
36. diemsv1>diemsv2:diemcaonhat=diemsv1?diemcaonhat=diemsv2;
• Giải thích:
Biểu thức diemsv1>diemsv2 là sai
Thực hiện biểu thức: diemcaonhat = diemsv2
Kết quả: diemcaonhat=9
Lưu ý: độ ưu tiên toán tử là thứ tự mà toán tử của biểu thức được đánh giá.
1.4.1. CÁC TOÁN TỬ TRONG C# (tiếp theo)
PROPERTIES
On passing, 'Finish' button: Goes to Next Slide
On failing, 'Finish' button: Goes to Next Slide
Allow user to leave quiz: At any time
User may view slides after quiz: At any time
User may attempt quiz: Unlimited times
24
• Biểu thức là những câu lệnh thực hiện việc đánh giá một giá trị.
Ví dụ:
37. int diemvaotruong1 = diemvaotruong2 = 20;
38. diem1 = 2*diem2;
• Những dấu tab, space và dòng cách được gọi là khoảng trắng. C# bỏ qua khoảng
trắng này trừ khoảng trắng trong chuỗi ký tự.
Ví dụ: hai lệnh sau như nhau:
39. int diemthi = 2; và
40. int diemthi=2;
Tuy nhiên hai lệnh sau lại khác nhau:
41. char tensv = “123 456”; và
42. char tensv = “123456”;
1.5. BIỂU THỨC
25
1.5.1. CÂU LỆNH
• Một chỉ dẫn lập trình đầy đủ thực hiện một công việc nào đó và kết thúc bằng dấu
“;”. Câu lệnh luôn được đặt trong thân phương thức.
• Ví dụ:
43. int diemthi;
44.diemthi = 5 + 2;
• Câu lệnh có nhiều loại:
Câu lệnh đơn giản
Câu lệnh có cấu trúc
Các câu lệnh đơn giản
• Một chương trình bao gồm nhiều câu lệnh tuần tự nhau. Với chương trình và đoạn
chương trình chỉ bao gồm các câu lệnh tuần tự không phân nhánh đơn giản như
lệnh gán, lệnh vào/ra thì trình biên dịch thực hiện các câu lệnh theo thứ tự từ lệnh
đầu tiên cho đến lệnh cuối cùng.
• Ví dụ:
45. Char tensv = “Nguyễn thị Thu”;
46. tensv = console.read();
47. console.writeline(tensv);
26
Lệnh phân nhánh không điều kiện bằng hàm
• Thực hiện phân nhánh không điều kiện bằng cách gọi hàm trong hàm.
• Ví dụ:
48. Static void hienthitensv()
49. {
50. console.writeline(“Sinh viên được học bổng kỳ 1 là:”);
51. timsv();
52. ..
53. }
54. Static void timsv()
55. {
56.
57. }
1.5.1. CÂU LỆNH (tiếp theo)
27
Lệnh phân nhánh không điều kiện bằng từ khóa
• Dùng các từ khóa: goto, break, continue, return, statementthrow.
• Ví dụ:
58. Static void hienthitensv()
59. {
60. console.writeline(“Sinh viên được học bổng kỳ 1 là:”);
61. ..
62. goto Timsv
63. ..
64. Timsv:
65. ..
66. }
1.5.1. CÂU LỆNH (tiếp theo)
28
Lệnh phân nhánh có điều kiện
• Phân nhánh có điều kiện được thực hiện bằng cách sử dụng các lệnh điều kiện.
Sự phân nhánh chỉ được thực hiện khi biểu thức điều kiện phân nhánh được xác
định là đúng. Các từ khóa của các lệnh này như: if, switch.
• Lệnh: if:
if (biểu thức điều kiện)
else
• Ví dụ:
67. if (tongdiemthi > 20)
68. console.writeline(“Sinh vien co trung tuyen”);
69. else
70. console.writeline(“Sinh vien khong trung tuyen”);
1.5.1. CÂU LỆNH ( tiếp theo)
29
Lệnh phân nhánh có điều kiện 2
Lệnh switch:
switch (biểu thức điều kiện)
{
case :
[default:
]
}
Ví dụ:
• Switch diemhocky
• {
• Case 7.0:
• console.writeline(“Hoc bong loai 1”);
• break;
• Case 8.0:
• console.writeline(“Hoc bong loai 2”);
• break;
• Case 9.0:
• console.writeline(“Hoc bong loai 3”);
• break;
• Default:
• console.writeline(“Khong duoc hoc
bong”);
• break;
• }
1.5.1. CÂU LỆNH ( tiếp theo)
30
Lệnh lặp
• Vòng lặp for:
for ([ phần khởi tạo] ; [biểu thức điều kiện]; [bước lặp])
• Vòng lặp while:
while (Biểu thức)
• Vòng lặp do...while:
do
while ( điều kiện )
• Câu lệnh lặp foreach:
foreach ( in )
1.5.1. CÂU LỆNH ( tiếp theo)
31
Lệnh nhảy
• Break khi được sử dụng sẽ đưa chương trình thoát khỏi vòng lặp và tiếp tục thực
hiện các lệnh tiếp ngay sau vòng lặp.
• Continue ngừng thực hiện các công việc còn lại của vòng lặp hiện thời và quay về
đầu vòng lặp để thực hiện bước lặp tiếp theo.
• Hai lệnh break và continue tạo ra nhiều điểm thoát và làm cho chương trình khó
hiểu cũng như khó duy trì. Do vậy phải cẩn trọng khi sử dụng các lệnh nhảy này.
1.5.1. CÂU LỆNH ( tiếp theo)
32
• Namespace dùng để tránh xung đột do trùng tên và namespace được coi như một
tập hợp các lớp đối tượng cung cấp duy nhất các định danh cho các kiểu dữ liệu và
được đặt trong một cấu trúc phân cấp.
• Khai báo sử dụng namespace trong chương trình:
using
• Để tạo một namespace dùng cú pháp sau:
namespace
{
.....
}
1.6. CÁC KHÔNG GIAN
PROPERTIES
On passing, 'Finish' button: Goes to Next Slide
On failing, 'Finish' button: Goes to Next Slide
Allow user to leave quiz: At any time
User may view slides after quiz: At any time
User may attempt quiz: Unlimited times
34
TÓM LƯỢC CUỐI BÀI
• Nắm được cách khai báo biến và hằng của C#
• Nắm được về kiểu dữ liệu và ánh xạ với các kiểu dữ liệu trong .NET.
• Nắm được các toán tử và cách hoạt động của các phép toán trong C#.
• Cấu trúc và cách hoạt động của các loại câu lệnh đơn giản cũng như
các câu lệnh rẽ nhánh, lệnh lặp trong C#.
• Khái niệm namespace và cách thức tổ chức một chương trình C#
đơn giản.
PROPERTIES
On passing, 'Finish' button: Goes to Next Slide
On failing, 'Finish' button: Goes to Next Slide
Allow user to leave quiz: At any time
User may view slides after quiz: At any time
User may attempt quiz: Unlimited times
PROPERTIES
Allow user to leave interaction: Anytime
Show ‘Next Slide’ Button: Don't show
Completion Button Label: Next Slide
PROPERTIES
Allow user to leave interaction: Anytime
Show ‘Next Slide’ Button: Don't show
Completion Button Label: Next Slide