9/10/17
Lập Trình Ứng Dụng Quản Lý 1
Chương 02:
Lập trình cơ bản với C#
GV. Trương Phước Lộc
09/2017
Khoa CNTT-ĐH.KHTN
Ngơn ngữ C#
•
•
•
•
•
•
•
•
•
Cấu trúc chương trình.
Namespace.
Nhập/xuất (console).
Kiểu dữ liệu.
Biến.
Tốn tử.
Cấu trúc điều kiện.
Cấu trúc lặp.
Mảng.
GV. Trương Phước Lộc
2
1
9/10/17
Khoa CNTT-ĐH.KHTN
1. Cấu trúc chương trình
§ Một một solution được phát triển trong môi
trường Visual Studio gồm nhiều Project khác
nhau. Các project này có thể được phát triển
trên nên tảng của một loại ngơn ngữ lập trình
nào đó. Chẳng hạn như C#, VB.NET,
ASP.NET,….
§ Một project là sự tích hợp của nhiều lớp đối
tượng (class).
3
GV. Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
1. Cấu trúc chương trình (tt)
GV. Trương Phước Lộc
4
2
9/10/17
Khoa CNTT-ĐH.KHTN
1. Cấu trúc chương trình (tt)
§ Một lớp đối tượng là hệ thống các thuộc tính và
phương thức/hàm.
§ Một thủ tục hay một hàm là một dãy các lệnh
được sắp thứ tự.
§ Lệnh là đơn vị nhỏ nhất trong lập trình. Thường
được hỗ trợ bởi cơng ty cung trình môi trường
phát triển phần mềm.
5
GV. Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
1. Cấu trúc chương trình (tt)
namespace Demo
{
class Program
{
static void Main(string[] args)
{
}
}
}
GV. Trương Phước Lộc
6
3
9/10/17
Khoa CNTT-ĐH.KHTN
2. Namespace
• Namespace là tập hợp các namespaces và các
lớp.
• Ví dụ: System, System.Data, System.Windows,
…
• Từ khóa using
7
GV. Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
3. Nhập/xuất (console)
• Đọc/xuất chuỗi ra màn hình console.
▫ Console.ReadLine()
▫ Console.Write(“…”)
▫ Console.WriteLine(“…”)
• Một số ký tự đặc biệt
▫ \t
▫ \n
• Hàm xử lý chuỗi String.Format(“”)
▫ />GV. Trương Phước Lộc
8
4
9/10/17
Khoa CNTT-ĐH.KHTN
3. Nhập/xuất (console) (tt)
static void Main(string[] args)
{
string str;
str = Console.ReadLine();
Console.WriteLine(str);
Console.Write("{0} = {1}", "So", 3.123);
}
GV. Trương Phước Lộc
9
Khoa CNTT-ĐH.KHTN
4. Kiểu dữ liệu
•
•
•
•
•
•
•
bool
byte
char
Int, long
float, double
DateTime
string, String
GV. Trương Phước Lộc
10
5
9/10/17
Khoa CNTT-ĐH.KHTN
4. Kiểu dữ liệu
• DateTime
▫
▫
▫
▫
Now
DayOfWeek
DayOfYear
UtcNow
• String
▫ Trim
▫ Split
GV. Trương Phước Lộc
11
Khoa CNTT-ĐH.KHTN
5. Biến
• Biến dùng để lưu trữ dữ liệu. Mỗi biến thuộc về
một kiểu dữ liệu nào đó.
Cú pháp khai báo biến:
KieuDuLieu TenBien;
• Biến tồn cục: là biến được khai báo bên ngoài
tất cả các hàm, thủ tục và được hiểu bên trong
tất cả các hàm và thủ tục.
• Biến cục bộ: là biến được hiểu bên trong một
phạm vi nào đó của chương trình. Ra khỏi phạm
vi này, nó khơng cịn được biết đến.
GV. Trương Phước Lộc
12
6
9/10/17
Khoa CNTT-ĐH.KHTN
6. Tốn tử
•
•
•
•
•
Tốn tử so sánh: ==, <, >, <=, >=, !=
Toán tử số học: +, -, *, /, %
Toán tử trên bit: &, |, !, <<, >>
Toán tử logic: &&, ||, !
Toán tử cộng chuỗi: +
13
GV. Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
6. Toán tử
static void Main(string[] args)
{
double a;
double b;
Console.Write(“Chuong trinh cong 2 so a va b”);
Console.Write("a = ");
a = Console.ReadLine();
Console.Write("b = ");
b = Console.ReadLine();
Console.WriteLine("a + b = ” + (a + b));
}
GV. Trương Phước Lộc
14
7
9/10/17
Khoa CNTT-ĐH.KHTN
7. Cấu trúc điều kiện
• Được dùng khi một lệnh hay một khối lệnh chỉ
được thực hiện khi một điều kiện nào đó đúng.
• Cú pháp:
if ()
{
}
GV. Trương Phước Lộc
15
Khoa CNTT-ĐH.KHTN
7. Cấu trúc điều kiện (tt)
if ()
{
Câu lệnh 1
Câu lệnh 2
…
}
else
{
Câu lệnh 1
Câu lệnh 2
…
}
GV. Trương Phước Lộc
16
8
9/10/17
Khoa CNTT-ĐH.KHTN
7. Cấu trúc điều kiện (tt)
static void Main(string[] args)
{
double a, b;
Console.Write("a = ");
a = Double.Parse(Console.ReadLine());
Console.Write("b = ");
b = Double.Parse(Console.ReadLine());
if (a == b)
Console.WriteLine("a = b");
else if (a < b)
Console.WriteLine("a < b");
else
Console.WriteLine("a > b");
}
GV. Trương Phước Lộc
17
Khoa CNTT-ĐH.KHTN
7. Cấu trúc điều kiện (tt)
• Giải phương trình ax + b = 0
GV. Trương Phước Lộc
18
9
9/10/17
Khoa CNTT-ĐH.KHTN
8. Cấu trúc lặp
• Được dùng khi một lệnh hay một khối lệnh được
thực hiện lại nhiều lần khi một điều kiện nào đó
đúng.
• Cú pháp:
for ( ; ; )
{
câu lệnh 1
câu lệnh 2
…
}
GV. Trương Phước Lộc
19
Khoa CNTT-ĐH.KHTN
8. Cấu trúc lặp (tt)
static void Main(string[] args)
{
int n, S;
Console.WriteLine("Tinh S(n) = 1 + 2 + ... + n");
Console.Write("n = ");
n = Integer.Parse(Console.ReadLine());
S = 0;
for (int i =0; i <= n; i++)
S = S + I;
Console.Write("S({0}) = {1}", n, S);
}
GV. Trương Phước Lộc
20
10
9/10/17
Khoa CNTT-ĐH.KHTN
8. Cấu trúc lặp (tt)
while (<điều kiện lặp>)
{
câu lệnh 1
…
}
21
GV. Trương Phước Lộc
Khoa CNTT-ĐH.KHTN
8. Cấu trúc lặp (tt)
static void Main(string[] args)
{
int n, S;
Console.WriteLine("Tinh S(n) = 1 + 2 + ... + n");
Console.Write("n = ");
n = Integer.Parse(Console.ReadLine());
S = 0;
i =0;
while(i <= n)
{
S = S + i;
i = i + 1;
}
Console.Write("S({0}) = {1}", n, S);
}
GV. Trương Phước Lộc
22
11
9/10/17
Khoa CNTT-ĐH.KHTN
8. Cấu trúc lặp (tt)
• Cho x, n. Tính T(x,n) = xn
• Cho n. Tính S(n) = 1/2 + 1/4 + … + 1/2n
• Cho n. Tính T(n) = 1 + 1.2 + 1.2.3 + … +
1.2…..n
• Cho n. Liệt kê tất cả ước số của n.
GV. Trương Phước Lộc
23
Khoa CNTT-ĐH.KHTN
9. Mảng
• Mảng là tập hợp các phần tử có cùng kiểu,
được xác định vị trí trong tập hợp bằng chỉ mục.
• Khai báo mảng
int[] a;
int[][] b;
int[] c;
• Khởi tạo vùng nhớ
a = new int[n];
GV. Trương Phước Lộc
24
12
9/10/17
Khoa CNTT-ĐH.KHTN
12. Bài tập
1. Cho n. Tính S(n) = 1/2 + 2/3 + 3/4 + … +
(n+1)/(n+2).
2. Cho x, n. Tính T(x, n) = x + x2 + … + xn.
3. Cho x, n. Tính T(x, n) = -x + x2 + … + (-1)n.xn.
4. Cho x, n. Tính T(x, n) = x + x2/2! + x3/3! + … +
xn/n!.
5. Cho n. Tính tích tất cả ước số của n.
6. Cho n. Tìm ước số lẻ lớn nhất của n.
7. Cho n. Kiểm tra n có phải số nguyên tố hay
không.
GV. Trương Phước Lộc
25
Khoa CNTT-ĐH.KHTN
12. Bài tập (tt)
8. Cho n. Hãy đếm số lượng chữ số lớn nhất của n.
9. Cho n. Hãy kiểm tra n có tồn chữ số chẵn hay
khơng.
10. Cho n. Hãy kiểm tra n có phải số đối xứng hay
không.
11. Cho n. Hãy kiểm tra các chữ số của n có tăng dần
từ trái sang phải hay khơng.
12. Cho a, b, c. Giải phương trình ax2 + bx + c = 0.
13. Cho a, b, c. Giải phương trình ax4 + bx2 + c = 0.
GV. Trương Phước Lộc
26
13
9/10/17
Khoa CNTT-ĐH.KHTN
Câu hỏi
GV. Trương Phước Lộc
27
14