Professional Documents
Culture Documents
.NET Framework
Ngôn ngữ C#
Console Application
Lưu ý & QA
27
28 .NET FRAMEWORK
• Framework là môi trường tập hợp các thư viện để hỗ trợ cho người lập trình.
• Mỗi Framework được tạo ra có một kiến trúc khác nhau Lập trình viên phải
tuân theo kiến trúc đó
• .NET Framework là thư viện tài nguyên của Microsoft, hỗ trợ cho các lập trình
viên trong nhiều yêu cầu khác nhau.
29 .NET FRAMEWORK
30 .NET FRAMEWORK
31 .NET FRAMEWORK
32 .NET FRAMEWORK
• Các ngôn ngữ : C#, VB.Net, J#, F#, VC++…
• Công cụ phát triển Visual Studio
• Lớp đặc tả ngôn ngữ dùng chung (CLS)
• Các thư viện để phát triển ứng dụng
• Bộ thực thi ngôn ngữ dùng chung (CLR)
33 .NET FRAMEWORK
• Chương trình được biên dịch thành ngôn ngữ trung gian (MSIL - Microsoft
Intermediate Language), sau đó chúng được CLR thực thi.
• Common Language Runtime - CLR, nền tảng hướng đối tượng cho phát triển
ứng dụng Windows và Web mà các ngôn ngữ có thể chia sẻ sử dụng.
• Bộ thư viện Framework Class Library - FCL.
34 .NET FRAMEWORK
35 .NET FRAMEWORK
36 Ngôn ngữ C#
• Ngôn ngữ lập trình được xây dựng dựa trên nền tảng những ngôn ngữ tương
tự C (C, C++, Java)
File Program.cs là file mặc định chứa hàm Main của chương trình
39 Biên dịch
• Trình biên dịch (compiler) sẽ biên dịch các tập tin chứa ngôn ngữ C# thường là
các file .cs trong project thành một tập tin chạy chương trình .exe
• Nhấn Build / Compile (hoặc Build / Build Solution) Biên dịch cả project.
• Sử dụng từ khóa using để khai báo trước namespace sẽ được tham chiếu đến.
• Ví dụ: using System.Media;
45 Comments (ghi chú)
Kiểu Comments Ý nghĩa Ví dụ
• Khối lệnh gồm nhiều lệnh và được đặt trong cặp dấu ngoặc nhọn { }
47 Kiểu dữ liệu (Data Types)
• KDL là các loại dữ liệu và phạm vi giá trị của chúng trong bộ nhớ mà người lập
trình sử dụng để lưu trữ.
• Có 2 loại :
• KDL dựng sẵn
• C# cũng chia tập dữ liệu thành hai kiểu: giá trị và tham chiếu
• Biến kiểu giá trị được lưu trong vùng nhớ stack
• Biến kiểu tham chiếu được lưu trong vùng nhớ heap
48 Kiểu dữ liệu định sẵn
• Số nguyên
• Số thực
• Ký tự, logic
• Mảng, chuỗi ký tự
• Khai báo:
• string s = “Nguyen Van A”;
51 Kiểu mảng
• Mảng là một tập hợp các phần tử cùng một kiểu dữ liệu liên tiếp nhau và
được truy xuất thông qua chỉ số.
• Dấu nối ( _ )
string s;
int n;
s = Console.ReadLine();
n = int.Parse(s);
Hoặc
int n;
n = int.Parse(Console.ReadLine());
66 Hướng dẫn
Tính tổng hai số nguyên a và b
67 Hướng dẫn
Tính trung bình cộng 3 số nguyên a, b, và c
68 Bài tập
• Nhập vào giờ phút và giây, đổi ra giây và xuất kết quả ra màn hình. (buổi
sau)
• Nhập vào 3 số nguyên a, b và c, tính giá trị trung bình cộng của 3 số trên và
xuất kết quả ra màn hình.
69 Làm việc với Console Application
Console.WindowWidth
Cửa sổ Console
(0, 0)
Cột
70 Di chuyển dấu nháy
Console.SetCursorPosition(cột, dòng);
Console.SetCursorPosition(10, 20);
Console.Write(“Hello”);
71 Lấy số ngẫu nhiên
Nếu không muốn hiển thị phím được nhấn thì truyền true vào tham số phương thức
ReadKey:
ConsoleKeyInfo k = Console.ReadKey(true)
• Thuộc tính Key: Chứa tên phím được nhấn. Xác định bằng cách so giá trị với các
phím trong ConsoleKey
• Thuộc tính Modifiers: Cho biết phím Ctrl, Shift hoặc Alt có được nhấn kèm
74 Xác định phím ấn trong Console
Xác định phím Ctrl, Alt hay Shift được nhấn bằng cách dùng phép toán AND (&) thuộc
tính Modifiers với :
• ConsoleModifiers.Ctrl
• ConsoleModifiers.Alt
• ConsonleModifiers.Shift
75 Xác định phím ấn trong Console
ConsoleKeyInfo k;
k = Console.ReadKey(true);
switch(k.Key)
{
case ConsoleKey.A:
if (k.Modifiers!=0 && (k.Modifiers&ConsoleModifiers.Shift)!=0)
Console.Write(“Ban nhan phim Shift + A”);
else
Console.Write(“Ban nhan phim A”);
break;
case ConsoleKey.UpArrow:
Console.Write(“Ban nhan phim mui ten huong len”);
break;
default: Console.Write(“Ban nhan phim khac”);
76 Kiểm tra phím có nhấn?
• Có nhấn phím:
Console.KeyAvailable = true
• Không nhấn phím:
Console.KeyAvailable = false
Ví dụ: Hiển thị giờ hệ thống cho đến khi
77
nhấn phím bất kỳ
while (!Console.KeyAvailable)
DateTime d = DateTime.Now;
Console.Clear();
}
78 Thiết lập màu
Màu nền của chữ
Màu chữ
Console.CursorVisible = false;
Console.CursorVisible = true;
VD: Hiển thị giờ phút giây trên màn hình với màu nền là màu xanh và màu chữ là đỏ
81 Ẩn hiện dấu nháy
Console.CursorVisible = false;
ConsoleColor mauchu = Console.ForegroundColor;
ConsoleColor maunen = Console.BackgroundColor;
Console.BackgroundColor = ConsoleColor.Green;
while (!Console.KeyAvailable)
{
Console.ForegroundColor = ConsoleColor.Red;
DateTime d = DateTime.Now;
Console.SetCursorPosition(5, 5);
Console.Write("{0:00}:{1:00}:{2:00}", d.Hour, d.Minute, d.Second);
Thread.Sleep(1000); //using System.Threading;
Console.ForegroundColor = Console.BackgroundColor;
Console.SetCursorPosition(5, 5);
Console.Write("{0:00}:{1:00}:{2:00}", d.Hour, d.Minute, d.Second);
}
82 Lưu ý: Quy tắc đặt tên
Dùng để đặt tên biến, tên hằng, tên hàm, …
• Bắt đầu bằng một ký tự.
• Các ký tự trong tên biến chỉ có thể là các ký tự chữ, số hoặc dấu gạch dưới (_)
• Không được trùng với các từ khoá.
• Không được trùng với phạm vi khai báo.
• Tên dễ hiểu, súc tích và gợi nhớ.
• Phân biệt chữ hoa và thường
83 Lưu ý: Khai báo biến
Cú pháp: <Kiểu dữ liệu> tênbiến;
int a; //Khai báo biến để lưu số nguyên tên a
float c; //Khai báo biến để lưu số thực tên c
int a, x, y;
<Kiểu dữ liệu> tênbiến = giá trị;
float b = 5.4, c = 9.2;
char ch = ‘n’;
84 Lưu ý: Các loại hằng số
• Hằng số: Đó là các giá trị xác định, một hằng số có thể là nguyên (có kiểu dữ liệu
int, hay long int) hay thực (có kiểu dữ liệu là float, double, long double)
• Hằng ký tự: Được đặt trong dấu nháy đơn. Ví dụ: 'A', 'a' tương ứng với giá trị
nguyên 65, 97 trong bảng mã ASCII
• Hằng chuỗi: Là tập hợp các ký tự được đặt trong cặp dấu nháy kép " ". Ví dụ: “Lap
trinh C#”
85 Lưu ý: Chương trình
• Mỗi lệnh nằm trên một dòng. Cuối dòng lệnh PHẢI có dấu chấm phẩy (;)
• Lệnh quá dài có thể được viết thành nhiều dòng sao cho mỗi lệnh phải được
quan sát trọn vẹn trong pham vi cửa sổ lệnh
• Không nên đặt nhiều lệnh trên cùng một dòng, ngay cả các khai báo biến, nếu
các biến có khác kiểu cũng nên đặt trên các dòng khác nhau.
• Chương trình phân cấp các khối lệnh con theo từng cột
86 Lưu ý khác…
• KHÔNG khai báo các biến sử dụng trong chương trình
• Lưu một giá trị vào một biến nhưng KHÔNG cùng kiểu dữ liệu với biến
• Sử dụng biến trong một biểu thức khi CHƯA có giá trị