kênh thông tin chuyên cung cấp: tài liệu lập trình Csharp, hướng dẫn lập trình C, bài tập lập trình C, Csharp, kênh, trắc nghiệm lập trình C (C sharp), tổng quan về kỹ thuật lập trình C (C sharp), những vấn đề chung trong lập tyrinhf C
Trang 1Giới thiệu về ngôn ngữ C#
by bancamden | category ASP.Net & SQL Server, Lập Trình | 6 Comments
C# là ngôn ngữ lập trình của hãng Microsoft phát triển sử dụng nền tảng Framework và Integrated Development Environment(IDE) Hiển nhiên là nó chạy trên hệ điều hành windows
Để đến với c# trên nền web thì chúng ta tìm hiểu về C# trên nên console(nền windown dạng dos) để có cái nhìn tổng quát về ngôn ngữ này
Ở đây chúng ta sử dụng trình: visual studio để làm tất cả các công việc, bạn có thể sử dụng phiên bản nào cũng được 2005, 2008 hay 2010
Đầu tiên là viết chương trình nhập vào và xuất ra màn hình câu nào đó
1
2
3
4
5
6
7
8
9
10
11
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace HelloCsharp
class Program
{
static void Main(string[] args)
{
System.Console.WriteLine ("Chào mọi người.");
}
}
using là câu lệnh gọi thư viện trong C#, WriteLine là câu lệnh xuất ra màn hình dòng gì
đó đồng thời xuống hàng nó tương đương
Trong C# cũng hỗ trợ các kiểu dữ liệu giống như trong C các bạn có thể đọc bàiđể hiểu thêm
Cách tạo một project trong C#:
Trang 2New >> Project >> C# >> Console >> đặt tên và nơi lưu, nếu bạn check vào
create directory for solution thì vistudio sẽ tạo ra thư mục chứa project của bạn Tiếp theo chúng ta sẽ đi tìm hiểu các bài tập cơ bản về C#:
Bài tập công hai số:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace add2num
{
class Program
{
static void Main(string[] args)
{
int a, b, kq;
Console.WriteLine(" Nhập a: ");
a = int.Parse(Console.ReadLine());
Console.WriteLine(" Nhập b: ");
b = int.Parse(Console.ReadLine());
kq = a + b;
Console.WriteLine("kq=" + kq.ToString());
}
}
}
Giải thích:
o Console.ReadLine() là nhập vào đối tượng từ bàn phím
o int.Parse(); Là ép kiểu nhận vào về kiểu số nguyên
o WriteLine là xuất ra màn hình console, “+” là cộng chuổi trong C#
if… else trong c#: Viết ct xuất ra thương 2 số: a/b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace if_pth1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("pl input a: ");
int a = int.Parse(Console.ReadLine());
Console.WriteLine("pl input b: ");
int b = int.Parse(Console.ReadLine ());
if (b == 0)
Console.WriteLine("b=0 sao mà lấy thương!"); else
{
float x = -(float)b / a;
Console.WriteLine("Thương 2 so: x=" + x.ToString()); }
Trang 320
21
22
23
24
25
}
}
}
Giải thích:
1 float x = -(float)b / a; ép kiểu về kiểu số thực float
swicth case trong C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace @case
{
class Program
{
static void Main(string[] args)
{
// nhap 2 so Sau do nhap mot phep toan
Console.WriteLine("nhap a: ");
int a = int.Parse(Console.ReadLine());
Console.WriteLine("nhap b: ");
int b = int.Parse(Console.ReadLine());
Console.WriteLine("nhap phep toan (+;-;*;/: "); string pt = Console.ReadLine();
float kq = 0;
switch (pt)
{
case "+":
kq = a + b;
Console.WriteLine("kq:" + kq.ToString()); break;
case "-":
kq = a - b;
Console.WriteLine("kq:" + kq.ToString()); break;
case "*":
kq = a * b;
Console.WriteLine("kq:" + kq.ToString()); break;
case "/":
kq = a / b;
Console.WriteLine("kq:" + kq.ToString()); break;
default:
Console.WriteLine("khong thuc hien duoc:"); break;
}
}
}
}
Trang 441
42
43
44
45
46
Ví dụ về vòng lặp for: Viết chương trình tính giai thừa của số n:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
< using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace @for
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Nhap n :");
int n = int.Parse(Console.ReadLine());
int gt = 1;
for (int i = 1; i<=n; i++)
{
gt = gt * i;
}
Console.WriteLine("kq: " + gt.ToString());
}
}
}
>
Cũng giống như vòng lặp trong C for cũng có 3 đối số, khởi đầu, giới hạn và bước nhảy
Vòng lặp while trong c#: ví dụ viết chương trình tính giai thừa của số n bằng vòng lặp
while
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<! using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace @while
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("nhap n :");
int n = int.Parse(Console.ReadLine());
int gt = 1;
int i = 1;
while (i<=n)
{
Trang 517
18
19
20
21
22
23
24
25
26
gt = gt * i;
i = i + 1;
}
Console.WriteLine("{0}!={1}",n,gt);
}
}
}
>
Vòng lặp do while trong c#: ví dụ viết chương trình tính giai thừa của số n bằng do
while
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<! using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DoWhile
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("nhap n :");
int n = int.Parse(Console.ReadLine());
int gt = 1;
int i = 1;
do
{
gt = gt * i;
i = i + 1;
} while (i<=n);
Console.WriteLine("{0}!={1}", n, gt);
}
}
}
>
Kết luận: Vậy là ta đã tìm hiểu các phần cơ bản trong C#, nói chung thì cũng ngôn ngữ
C chỉ khác về phần cách khai báo câu lệnh
Bài tập áp dụng và thực hành C#
by bancamden | category ASP.Net & SQL Server | 5 Comments
Mình đã viết một bài giới thiệu cơ bản về C# và một số bài áp dụng Hôm nay muốn chia
sẽ với các bạn một số bài tập nâng cao hơn tí trước khi chúng ta sẽ áp dụng vào trong lập trình web
Đầu tiên là mảng một chiều trong c#”
1 static void Main(string[] args)
Trang 63
4
5
6
7
8
9
10
11
12
13
14
15
{
int[] a = new int[10];
//nhap cho array
for (int i = 0; i < 10; i++)
{
Console.Write("nhap a[{0}]=", i);
a[i] = int.Parse(Console.ReadLine());
}
//xuat array
for (int i = 0; i < 10; i++)
{
Console.WriteLine("{0} ", a[i]);
}
}
Cách khai báo mảng: có từ khóa new và gán giá trị cho mảng Hơi khác c một tí hi
1 int[] a = new int[10];
Mảng hai chiều trong C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
static void Main(string[] args)
{
//nhap mang n chieu
int[,] a;
Console.WriteLine("nhap so dong n= ");
int n = int.Parse(Console.ReadLine());
Console.WriteLine("nhap so cot m= ");
int m = int.Parse(Console.ReadLine());
//cap phat
a = new int[n, m];
//
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
Console.Write("a[{0},{1}]=", i, j);
a[i, j] = int.Parse(Console.ReadLine());
}
}
//xuat mang
for (int i = 0; i < n; i++)
{
Console.WriteLine();
for (int j = 0; j < m; j++)
{
Console.Write("{0} ", a[i, j]);
}
}
}
Trang 7Cách khai báo mảng:
1 int[,] a = new int[n, m]; với n,m là tương ứng số dòng số cột
Class trong c#:
Như đã nói C# là ngôn ngữ thuần hướng đối tượng và đặt trưng của hướng đối tượng là viết class:
ví dụ:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class CHO
{
public string ten;
public string maulong;
public int tuoi;
}
class Program
{
static void Main(string[] args)
{
//tao ra doi tuong
CHO a = new CHO();
a.ten = "mina";
a.maulong = "trang";
a.tuoi = 2;
//xuat
Console.WriteLine(a.ten);
Console.WriteLine(a.maulong);
Console.WriteLine(a.tuoi);
}
}
Khai báo: class
o public: khai báo tất cả đều sử dụng được
o private: khai báo chỉ trong nội bộ đó sử dụng được ngay cả lớp con cũng không
o protected: khai báo lớp con có thể sử dụng được, bên ngoài thì không
o Khởi tạo một đối tượng của class có tên: CHO a = new CHO();
Hàm trong C#:
Cũng tương tự như hàm trong C tuy nhiên cách khai báo có khác đôi chút:
1
2
3
4
5
6
7
8
9
10
11
12
13
static void input(int[] a)
{
for (int i = 0; i < a.Length; i++)
a[i] = int.Parse(Console.ReadLine());
}
static void output(int[] a)
{
for (int i = 0; i < a.Length; i++)
Console.Write("{0} ",a[i]);
}
static void Main(string[] args)
{
Console.WriteLine("so phan tu n=");
int n = int.Parse(Console.ReadLine());
Trang 815
16
17
18
19
20
int[] a=new int[n];
input(a);
output(a);
}
Constructor trong c#:
Đây là hàm dựng dùng để định giá trị mặc đinh ban đầu cho đối tượng, đặc biệt là hàm này có tên cũng với tên class và không có kiểu dữ liệu trả về
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
class nguoi
{
string ten;
int tuoi;
//constructor ko tham so
public nguoi()
{
ten = "nguyen van a";
tuoi = 7;
}
//constructor co tham so truyen vao
public nguoi(string name, int age)
{
// gan vao cho data/field
ten = name;
tuoi = age;
}
public void xuat()
{
Console.WriteLine("ten: " +ten);
Console.WriteLine("tuoi: " +tuoi);
}
}
class Program
{
static void Main(string[] args)
{
nguoi a = new nguoi();
a.xuat();
nguoi b = new nguoi("abc", 28);//tu dong goi constructor co tham so b.xuat();
Console.ReadLine();
}
}
Trang 9Toán tử operator trong C#:
ví dụ dùng operator tính toán phân số:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
public class phanso
{
public int tu;
public int mau;
public void nhap()
{
Console.Write("nhap tu so: ");
tu = int.Parse(Console.ReadLine());
Console.Write("nhap mau so: ");
mau = int.Parse(Console.ReadLine());
}
public void xuat()
{
Console.Write("{0}/{1}",tu,mau);
}
public static phanso operator +(phanso a, phanso b)
{
phanso kq = new phanso();
kq.tu = a.tu * b.mau + b.tu * a.mau;
kq.mau = a.mau * b.mau;
return kq;
}
public static phanso operator -(phanso a, phanso b)
{
phanso kq = new phanso();
kq.tu = a.tu * b.mau - b.tu * a.mau;
kq.mau = a.mau * b.mau;
return kq;
}
public static phanso operator *(phanso a, phanso b)
{
phanso kq = new phanso();
kq.tu = a.tu * b.tu;
kq.mau = a.mau * b.mau;
return kq;
}
public static phanso operator /(phanso a, phanso b)
{
phanso kq = new phanso();
kq.tu = a.tu * b.mau;
kq.mau = a.mau * b.tu;
return kq;
}
}
class Program
{
static void Main(string[] args)
{
phanso a = new phanso();
Console.WriteLine("nhap phan so thu nhat: "); a.nhap(); phanso b = new phanso();
Console.WriteLine("nhap phan so thu hai: "); b.nhap(); phanso c = new phanso();
c = a + b; Console.Write("tong hai phan so: "); c.xuat(); Console.WriteLine();
c = a - b; Console.Write("hieu hai phan so: "); c.xuat();
Trang 1049
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
Console.WriteLine();
c = a * b; Console.Write("tich hai phan so: "); c.xuat();
Console.WriteLine();
c = a / b; Console.Write("thuong hai phan so: "); c.xuat(); Console.WriteLine();
}
}
try catch trong C#: Dùng để sử lý ngoại lệ, bẩy lỗi trong lúc lập trình, ví dụ: tràn số,
khai báo int mà nhập vào một chuổi, một số chia cho 0… rất nhiều
Đây là một ví dụ:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
static void Main(string[] args)
{
int a=0, b=0, kq=0;
nhapa:
try
{
Console.WriteLine("nhap a");
a =int.Parse(Console.ReadLine());
}
catch (Exception)
{
Console.WriteLine("nhap lai");
goto nhapa;
}
nhapb:
try
{
b = int.Parse(Console.ReadLine());
kq = a + b;
}
catch (Exception)
{
Console.WriteLine("nhap lai");
goto nhapb;
}
Console.WriteLine(kq);
}
}
Trang 11Kết luận: C# là một ngôn ngữ lập trình hiện đại và hơn thế nữa nó hỗ trợ mọi công cụ
để chúng ta sử dụng tạo ra một chương trình hoàn chỉnh, như đã nói tôi không nói lý thuyết nhiều và cũng k bít nói gì hi bài này mục đích giúp các bạn có một số dạng mẫu
về bài tập để thực hành
Các bạn có thể đọc thêm tài liệu này: Ngôn Ngữ C# Nhiu đó thui chúng ta sẽ gặp lại sau Good luck!