Bài tập C sharp

Chia sẻ: La Van Nguyen | Ngày: | Loại File: DOC | Số trang:15

0
370
lượt xem
138
download

Bài tập C sharp

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài tập 1: Xây dựng một lớp đường tròn lưu giữ bán kính và tâm của đường tròn. Tạo các phương thức để tính chu vi, diện tích của đường tròn. Bài tập 2: Thêm thuộc tính BanKinh vào lớp được tạo ra từ bài tập 1. Bài tập 3: Tạo ra một lớp lưu trữ giá trị nguyên tên myNumber. Tạo thuộc tính cho thành viên này. Khi số được lưu trữ thì nhân cho 100. Và khi số được truy cập thì chia cho 100....

Chủ đề:
Lưu

Nội dung Text: Bài tập C sharp

  1. Bài tập 1: Xây dựng một lớp đường tròn lưu giữ bán kính và tâm của đường tròn. Tạo các phương thức để tính chu vi, diện tích của đường tròn. Bài tập 2: Thêm thuộc tính BanKinh vào lớp được tạo ra từ bài tập 1. Bài tập 3: Tạo ra một lớp lưu trữ giá trị nguyên tên myNumber. Tạo thuộc tính cho thành viên này. Khi số được lưu trữ thì nhân cho 100. Và khi số được truy cập thì chia cho 100. Câu hỏi 7: Viết lớp giải phương trình bậc hai. Lớp này có các thuộc tính a, b, c và nghiệm x1, x2. Hãy xây dựng theo hướng đối tượng lớp trên. Lớp cho phép bên ngoài xem được các nghiệm của phương trình và cho phép thiết lập hay xem các giá trị a, b, c. Mình làm nó thành 1 project CMain.cs PHP Code: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace BT_Chuong4 { class CMain { static void Main(string[] args) { CCircle cir = new CCircle(2,3,4); Console.WriteLine("Perimeter is {0}, Area is {1}", cir.GetP erimeter(), cir.GetArea()); CGiaiPhuongTrinh gpt = new CGiaiPhuongTrinh(4,2,5); gpt.GetResult(); Console.WriteLine(gpt.Result.ToString()); Console.ReadKey(); } } } CPoint.cs PHP Code: using System; using System.Collections.Generic; using System.Linq; using System.Text;
  2. namespace BT_Chuong4 { class CPoint { /// /// Properties of a point /// private float x; public float X { get { return x; } set { x = value; } } private float y; public float Y { get { return y; } set { y = value; } } /// /// Constructor, non-parameter /// public CPoint() { x = y = 0; } /// /// Constructor, two parameter /// /// Coordinate of point /// Ordinale of point public CPoint(float x, float y) { this.x = x; this.y = y; } /// /// Copy constructor /// /// Other point to copy public CPoint(CPoint p) { this.x = p.x; this.y = p.y; } } } CCircle.cs
  3. PHP Code: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace BT_Chuong4 { class CCircle { /// /// Properties of a circle /// private CPoint center; internal CPoint Center { get { return center; } set { center = value; } } private float radius; public float Radius { get { return radius; } set { radius = value; } } /// /// Constructor, non-parameter /// public CCircle() { this.center = new CPoint(); this.radius = 0; } /// /// Constructor, three float parameter /// /// Coordinate of point /// Ordinale of point /// Radius of circle public CCircle(float x, float y, float rad) { this.center = new CPoint(x, y); this.radius = rad; } /// /// Constructor, two parameter /// /// /// public CCircle(CPoint p, float rad)
  4. { this.center = new CPoint(p); this.radius = rad; } /// /// Copy constructor /// /// Other circle public CCircle(CCircle cir) { this.center = new CPoint(cir.center); this.radius = cir.radius; } /// /// Method calculate perimeter of circle /// /// Perimeter public double GetPerimeter() { return 2*radius*Math.PI; } /// /// Method calculate area of circle /// /// Area public double GetArea() { return radius * radius * Math.PI; } } } CGiaiPhuongTrinh.cs PHP Code: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace BT_Chuong4 { class CGiaiPhuongTrinh { //Properties private float a; public float A { get { return a; } set { a = value; } } private float b;
  5. public float B { get { return b; } set { b = value; } } private float c; public float C { get { return c; } set { c = value; } } private float x1; public float X1 { get { return x1; } set { x1 = value; } } private float x2; public float X2 { get { return x2; } set { x2 = value; } } private StringBuilder result; public StringBuilder Result { get { return result; } set { result = value; } } /// /// Constructor, non-parameter /// public CGiaiPhuongTrinh() { a = b = c = 0; result = new StringBuilder(); } /// /// Constructor, three parameter /// /// a constant /// b constant /// c constant public CGiaiPhuongTrinh(float a, float b, float c) { this.a = a;
  6. this.b = b; this.c = c; result = new StringBuilder(); } /// /// Set value for quadratic equation /// /// a constant /// b constant /// c constant public void SetValue(float a, float b, float c) { this.a = a; this.b = b; this.c = c; } /// /// Calculation value of quadratic equation /// /// status root of equation /// True (is quadratic equation)/False (is simple equa tion) public bool Process(ref int flag) { if (a == 0) { if (b == 0) { if (c == 0) flag = 1; //Phương trinh vô số nghiệm else flag = 2; //Phương trình vô nghiệm } else { x1 = x2 = -c / b; flag = 3; //Phương trình có 1 nghiệm } return false; } float delta = b * b - 4 * a * c; if (delta == 0) { x1 = x2 = -b / (2 * a); flag = 1; //Phương trình có nghiệm dn } else if (delta > 0) //Phương trình có 2 nghiệm p hân biệt { flag = 2; x1 = (float)(-b + Math.Sqrt(delta)) / (2 * a); x2 = (float)(-b - Math.Sqrt(delta)) / (2 * a); } else flag = 3; //Phương trình vô nghiệm return true;
  7. } /// /// Get result of quadratic equation /// public void GetResult() { int flag = 0; result.Length = 0; if (Process(ref flag)) { result.AppendFormat("PHƯƠNG TRÌNH BẬC 2: {0}*X^2 + {1} *X + {2} = 0 \n", a,b,c); if (flag == 1) result.AppendFormat(" - Phương trình có nghiệm dn: x = {0}\n", x1); else if (flag == 2) result.AppendFormat(" - Phương trình có 2 nghiệm pb : x1 = {0} và x2 = {1}\n", x1, x2); else if (flag == 3) result.Append(" - Phương trình vô nghiệm"); } else { result.AppendFormat("PHƯƠNG TRÌNH BẬC 1: {0}*X + {1} = 0 \n", b, c); if (flag == 1) result.Append(" - Phương trình vô số nghiệm \n"); else if (flag == 2) result.Append(" - Phương trình vô nghiệm \n"); else if (flag == 3) result.AppendFormat(" - Phương trình có 1 nghiệm: x = {0}", x1); } } } } Khá hơn trước là đã viết comment đầy đủ cho các hàm (tuy nhiên nội dung comment chưa tốt). Đây làm mấy cái đề bài Bài tập 5: Viết chương trình hiển thị ra màn hình 3 kiểu sau: Mã: * * * * * * * * * * * * * * * * * * * * * a) Mã:
  8. $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ b) Mã: * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * c) Bài tập 6: Viết chương trình hiển ra trên màn hình. Mã: 1 2 3 2 3 4 5 4 3 4 5 6 7 6 5 4 5 6 7 8 9 8 7 6 5 6 7 8 9 0 1 0 9 8 7 6 7 8 9 0 1 2 3 2 1 0 9 8 7 8 9 0 1 2 3 4 5 4 3 2 1 0 9 8 9 0 1 2 3 4 5 6 7 6 5 4 3 2 1 0 9 0 1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1 0 Bài tập 7: Viết chương trình in ký tự số (0..9) và ký tự chữ (a..z) với mã ký tự tương ứng của từng ký tự Ví dụ: ‘0’ : 48 ‘1’ : 49 .... Bài tập 8: Viết chương trình giải phương trình bậc nhất, cho phép người dùng nhập vào giá trị a, b. Bài tập 9: Viết chương trình giải phương trình bậc hai, cho phép người dùng nhập vào giá trị a, b, c. Bài tập 10: Viết chương trình tính chu vi và diện tích của các hình sau: đường tròn, hình chữ nhật, hình thang, tam giác.  Mình làm tất cả thành một project, mỗi vẫn đề tạo một Class riêng để tăng performance. Bạn sẽ thấy rằng, sau này khi bạn làm winform thì chỉ cần add class đó vào + tạo giao diện là ta  đã có một chương trình tương ứng không phải chỉnh sửa gì cả. Hay thậm chí giờ bạn add nguyên 
  9. cái form vào (add đầy đủ reference của form) + sửa lại hàm main thế cũng OK Program.cs PHP Code: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace BT_Chuong3 { class Program { static void Main(string[] args) { // Vẽ tam giac các loại CVeTamGiac vtg = new CVeTamGiac(); Console.Write("Nhap chieu cao tam giac: "); int n = int.Parse(Console.ReadLine()); vtg.ChieuCao = n; vtg.VeTamGiacSao(); Console.WriteLine(vtg.HinhVe.ToString()); vtg.VeTamGiacDolar(); Console.WriteLine(vtg.HinhVe.ToString()); vtg.VeTamGiacCanSao(); Console.WriteLine(vtg.HinhVe.ToString()); vtg.VeTamGiacSo(); Console.WriteLine(vtg.HinhVe.ToString()); // In bảng mã ASCII //CInMaASCII ascii = new CInMaASCII(); //ascii.InBangASCII(); //Console.WriteLine(ascii.BangMa.ToString()); // Giải phương trình bậc 1 và bậc 2 //CGiaiPhuongTrinh gpt = new CGiaiPhuongTrinh(2, 4, 1); //gpt.GetResult(); //Console.WriteLine(gpt.Result.ToString()); //gpt.SetValue(0, 6, 7); //gpt.GetResult(); //Console.WriteLine(gpt.Result.ToString()); // Bài 10 quá vớ vẩn Console.ReadKey(true); } } } CVeTamGiac.cs
  10. PHP Code: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace BT_Chuong3 { class CVeTamGiac { //Properties private StringBuilder hinhVe; public StringBuilder HinhVe { get { return hinhVe; } set { hinhVe = value; } } private int chieuCao; public int ChieuCao { get { return chieuCao; } set { chieuCao = value; } } //Methods public CVeTamGiac() { hinhVe = new StringBuilder(); } public CVeTamGiac(int _chieuCao) { this.chieuCao = _chieuCao; hinhVe = new StringBuilder(); } public void VeTamGiacSao() { hinhVe.Length = 0; for (int i = 0; i < chieuCao; i++) { for (int j = 0; j
  11. { for (int j = 0; j < chieuCao-i-1; j++) { hinhVe.Append("$"); } hinhVe.Append("\n"); } } public void VeTamGiacCanSao() { hinhVe.Length = 0; for (int i = 0; i < chieuCao; i++) { for (int j = 0; j < chieuCao - i; j++) { hinhVe.Append(" "); } for (int j = 0; j < 2*i + 1; j++) { hinhVe.Append("*"); } hinhVe.Append("\n"); } } public void VeTamGiacSo() { hinhVe.Length = 0; for (int i = 0; i < chieuCao; i++) { for (int j = 0; j < chieuCao - i; j++) { hinhVe.Append(" "); } for (int j = i+1; j = i + 1; j--) { hinhVe.AppendFormat("{0}", j % 10); } hinhVe.Append("\n"); } } } } CInMaASCII.cs PHP Code:
  12. using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace BT_Chuong3 { class CInMaASCII { //Properties private StringBuilder bangMa; public StringBuilder BangMa { get { return bangMa; } set { bangMa = value; } } //Method public CInMaASCII() { bangMa = new StringBuilder(); } public void InBangASCII() { bangMa.Length = 0; bangMa.Append(" Dec Chr Hex Oct \n"); for (int i=0; i
  13. } private float b; public float B { get { return b; } set { b = value; } } private float c; public float C { get { return c; } set { c = value; } } private StringBuilder result; public StringBuilder Result { get { return result; } set { result = value; } } // Method public CGiaiPhuongTrinh() { a = b = c = 0; result = new StringBuilder(); } public CGiaiPhuongTrinh(float a, float b, float c) { this.a = a; this.b = b; this.c = c; result = new StringBuilder(); } public void SetValue(float a, float b, float c) { this.a = a; this.b = b; this.c = c; } public bool Process(ref int flag,ref float getDelta) { if (a == 0) { if (b == 0) { if (c == 0) flag = 1; //Phương trinh vô số nghiệm else flag = 2; //Phương trình vô nghiệm }
  14. else flag = 3; //Phương trình có 1 nghiệm return false; } float delta = b * b - 4 * a * c; if (delta == 0) flag = 1; //Phương trình có nghiệm dn else if (delta > 0) //Phương trình có 2 nghiệm p hân biệt { flag = 2; getDelta = delta; } else flag = 3; //Phương trình vô nghiệm return true; } public void GetResult() { int flag = 0; float delta = 0; result.Length = 0; if (Process(ref flag, ref delta)) { result.AppendFormat("PHƯƠNG TRÌNH BẬC 2: {0}*X^2 + {1} *X + {2} = 0 \n", a,b,c); if (flag == 1) result.AppendFormat(" - Phương trình có nghiệm dn: x = {0}\n", -b / (2 * a)); else if (flag == 2) result.AppendFormat(" - Phương trình có 2 nghiệm pb : x1 = {0} và x2 = {1}\n", (-b - Math.Sqrt(delta)) / (2 * a), (-b + Mat h.Sqrt(delta)) / (2 * a)); else if (flag == 3) result.Append(" - Phương trình vô nghiệm"); } else { result.AppendFormat("PHƯƠNG TRÌNH BẬC 1: {0}*X + {1} = 0 \n", b, c); if (flag == 1) result.Append(" - Phương trình vô số nghiệm \n"); else if (flag == 2) result.Append(" - Phương trình vô nghiệm \n"); else if (flag == 3) result.AppendFormat(" - Phương trình có 1 nghiệm: x = {0}", -c/b); } } } } __________________ My friend is Khách
  15. Tam giác * cân, với 2 vòng for: PHP Code: void TamGiacLoai3(int height) { Console.WriteLine("Your triangle is: "); Console.WriteLine( ); for (int i = 0; i < height; i++) { for (int j = 0; j < (2 * height - 1); j++) { if (j < (height - i - 1) || j >= (height + i)) { Console.Write(" "); } else { Console.Write("*"); } } Console.WriteLine(); } } Tam giác số chưa nghĩ ra cách nào để rút ngắn thời gian thực hiện
Đồng bộ tài khoản