Bài giảng Ngôn ngữ C# - Bài 2: Căn bản trong ngôn ngữ C# - Chử Đức Hoàng

• 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ự.

pdf37 trang | Chia sẻ: thanhle95 | Lượt xem: 377 | Lượt tải: 1download
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