Bài tập áp dụng và thực hành C#
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#” static void Main(string[] args) { ...
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#”
static void Main(string[] args) { 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
int[] a = new int[10];
Mảng hai chiều trong C#:
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]); } } }
Cách khai báo mảng:
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ụ:
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
- public: khai báo tất cả đều sử dụng được
- private: khai báo chỉ trong nội bộ đó sử dụng được ngay cả lớp con cũng không.
- protected: khai báo lớp con có thể sử dụng được, bên ngoài thì không.
- 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:
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()); 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ề.
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(); } }
Toán tử operator trong C#:
ví dụ dùng operator tính toán phân số:
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(); 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ụ:
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); } }
Kế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!.