Bài giảng Lập trình C#

.NET không biên dịch trực tiếp các chương trình

thành file thực thi.

 .NET biên dịch các chương trình thành các

assembly, chứa các mã chương trình trung gian

của Microsoft (Microsoft Intermediate Language -MSIL)

 CLR sẽ dịch một lần nữa, sử dụng chương trình

biên dịch Just In Time (JIT) chuyển các mã MSIL

sang mã máy và thực thi

pdf49 trang | Chia sẻ: oanh_nt | Lượt xem: 2521 | Lượt tải: 1download
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Lập trình C#, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1Chương 1 2Mục tiêu  Cung cấp một số kiến thức cơ bản về .NET  Cơ bản về C# 3Nội dung 1.1. Microsoft .NET 1.2. Ngôn ngữ C# 41.1. Microsoft .NET  Cung cấp giao diện lập trình (API) cho các dịch vụ (services) và các hàm API truyền thống của hệ điều hành Windows.  Cung cấp một nền tảng phát triển chung cho nhiều ngôn ngữ lập trình khác nhau của Microsoft: C#, Visual J#, Visual Basic…  Microsoft .NET gồm 2 phần chính : Framework và Integrated Development Environment (IDE). 5.NET Framework (1)  .NET Framework có hai thành phần chính: Bộ thực thi ngôn ngữ chung (Common Language Runtime - CLR) và thư viện lớp (Class Libraries). 6.NET Framework (2)  Sử dụng .NET Framework để phát triển những kiểu ứng dụng và dịch vụ như sau: • Ứng dụng Console • Ứng dụng giao diện GUI trên Windows (Windows Forms) • Ứng dụng ASP.NET • Dịch vụ XML Web 7.NET Framework (3) Common Language Runtime Base Framework Classes Data and XML Classes C#, VB.NET, J#, C++ … XML Web Services Web Forms Windows Forms ASP.NET 8Ứng dụng Console 9Ứng dụng WinForm và WebForm 10 Biên dịch  .NET không biên dịch trực tiếp các chương trình thành file thực thi.  .NET biên dịch các chương trình thành các assembly, chứa các mã chương trình trung gian của Microsoft (Microsoft Intermediate Language - MSIL)  CLR sẽ dịch một lần nữa, sử dụng chương trình biên dịch Just In Time (JIT) chuyển các mã MSIL sang mã máy và thực thi 11 Biên dịch 12 Trình soạn thảo và biên dịch  Visual Studio .NET  Trình soạn thảo văn bản (Notepad, UltraEdit…) & Trình biên dịch bằng dòng lệnh (Command-line compiler) 13 Ví dụ chương trình HelloWorld  Mở chương trình Visual Studio .NET 2005  Tạo một dự án mới với kiểu ứng dụng console (HelloWorld) 14 Chương trình HelloWorld (1) 15 Chương trình HelloWorld (2) Chương trình sẽ tự tạo một khung dự án Thêm dòng code đơn giản hiển thị thông báo Hello World ra màn hình Bấm F6 để biên dịch, F5 để chạy 16 Chương trình HelloWorld (3)  Kết quả khi chạy chương trình HelloWorld 17 1.2. Ngôn ngữ C#  C# được phát triển bởi nhóm tác giả điều hành bởi Anders Hejlsberg và Scott Wiltamuth.  Ngôn ngữ C# là một ngôn ngữ được dẫn xuất từ C và C++, nhưng nó được tạo từ nền tảng phát triển hơn.  C# là ngôn ngữ lập trình hướng đối tượng (Object Oriented Language) • Hỗ trợ định nghĩa và làm việc với lớp (class) • Hỗ trợ đầy đủ ba cơ chế đặc trưng của lập trình hướng đối tượng: đóng gói (encapsulation), kế thừa (inheritance) và đa hình (polymorphism) 18 Cấu trúc chương trình C# 19 Chương trình HelloWorld using System; using System.Collections.Generic; using System.Text; namespace HelloWorld { class Program { static void Main(string[] args) { Console.WriteLine("Hello World"); } } } Using statement Namespace class Static function Code statement 20 Một số khái niệm trong C#  Chú thích • Chú thích trên một dòng dùng //… • Chú thích trên nhiều dòng dùng /* … */ • Trình biên dịch bỏ qua chú thích  Namespaces (Không gian tên) • Nhóm các tính năng có liên quan của C# vào một loại • Cho phép dễ dàng tái sử dụng mã • Trong thư viện .NET framework có nhiều không gian tên • Phải tham chiếu tới để sử dụng 21 Các namspace cơ bản 22 Console nhập xuất (Console I/O)  Đọc ký tự văn bản từ cửa sổ console: • Console.Read() • Console.ReadLine()  Xuất chuỗi ký tự: • Console.Write() • Console.WriteLine() 23 Một số khái niệm trong C# (tt)  Từ khoá (Keywords) • Các từ không được dùng làm tên biến, tên lớp hay bất kỳ thứ gì khác • Có các chức năng đặc biệt không thể thay đổi trong ngôn ngữ Ví dụ : class • Tất cả các từ khoá đều được viết thường 24 Một số khái niệm trong C# (tt)  Lớp (class): định nghĩa một kiểu dữ liệu, mô tả một nhóm các đối tượng với các phương thức và thuộc tính • Phương thức (Method) • Thuộc tính (Property) 25 Kiểu dữ liệu (Types)  Phân loại dữ liệu • Phân theo phương thức định nghĩa: build-in (có sẵn) và user-defined (người dùng tự định nghĩa) • Phân theo cách thức lưu trữ: value (tham trị) và reference (tham chiếu) 26 Kiểu dữ liệu (tt)  Kiểu dữ liệu có sẵn • C# hỗ trợ một số kiểu dữ liệu có sẵn, mỗi kiểu dữ liệu này tương ứng với một kiểu dữ liệu hỗ trợ bởi .NET CLS (Common Language System). • C# có thể sử dụng đối tượng do các ngôn ngữ khác trong bộ .NET tạo ra và ngược lại (Ví dụ: VB.NET) • Mỗi kiểu dữ liệu có kích thước xác định 27 Kiểu dữ liệu (tt) 28 Kiểu dữ liệu (tt)  Kiểu tham trị (value type) • Lưu trữ trong vùng nhớ ngăn xếp (stack)  Kiểu tham chiếu (reference type) • Địa chỉ lưu trữ trong ngăn xếp (stack) • Dữ liệu thực được lưu trữ trong vùng nhớ Heap 29 Chuyển đổi kiểu dữ liệu  Chuyển đổi ngầm (implicity): quá trình chuyển đổi diễn ra tự động và đảm bảo không bị mất mát dữ liệu Ví dụ: short x=5; int y=x;  Chuyển đổi tường minh (explicity) sử dụng toán tử chuyển đổi (cast operator) Ví dụ: double a = 34.5; int b = (int) a; 30 Chuyển đổi kiểu dữ liệu (tt)  Dùng Convert: Convert.ToDataType(Source value) Ví dụ: string s1 = “50.5”; double x = Convert.ToDouble(s1); int y = Convert.ToInt32(s1); 31 Biến và hằng số (Variables and Constants)  Biến (variable): • Một vùng nhớ có định kiểu • Có thể gán và thay đổi được giá trị • Các biến phải được khởi gán trước khi sử dụng, nếu không, trình biên dịch sẽ báo lỗi 32 Ví dụ 33 Biến và hằng số (tt)  Hằng số (Constant) • Là biến số nhưng không thể thay đổi giá trị sau khi khởi gán. Ví dụ: const int myConst=32; myConst = 30; 34 Biến và hằng số (tt)  Trong C#, chúng ta nên đặt tên các biến, các phương thức, các lớp theo khuyến cáo của Microsoft • Tên biến: bắt đầu bằng chữ thường (VD: someName) • Tên phương thức và các thành phần khác: bắt đầu bằng chữ hoa (VD: SomeOtherMethod) 35 Các câu lệnh và cấu trúc điều khiển  Một chương trình C# là một dãy các câu lệnh (statements)  Mỗi câu lệnh kết thúc bởi dấu “;”  Các câu lệnh được xử lý tuần tự theo chiều từ trên xuống dưới (trừ các câu lệnh điều khiển: lệnh nhảy, lệnh lặp…) Ví dụ: int x; // a statement x = 23; // another statement int y = x; // yet another statement 36 Lệnh nhảy không điều kiện  Có hai trường hợp phát sinh lệnh nhảy không điều kiện: • Có lời gọi một phương thức: dừng phương thức hiện tại và chuyển sang (nhảy không điều kiện) thực hiện phương thức vừa triệu gọi, sau khi thực hiện xong, trở về phương thức trước đó. • Sử dụng một trong số các lệnh nhảy không điều kiện: goto, break, continue, return hoặc throw 37 Lệnh nhảy có điều kiện  Câu lệnh: if…else  Câu lệnh điều kiện lồng (Nested if)  Câu lệnh chọn: switch…case 38 Lệnh nhảy có điều kiện (tt)  Câu lệnh: if…else if (Biểu thức điều kiện) Công việc 1; [else Công việc 2;] Ví dụ: Nhập một số, cho biết tính chẵn lẻ của số vừa nhập 39 Ví dụ 1.1 using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication3 { class Program { static void Main(string[] args) { int n; Console.Write("nhap so n:"); n=Convert.ToInt32( Console.ReadLine ()); if ((n % 2) == 0) Console.WriteLine(n + " la so chan"); else Console.WriteLine(n + " la so le"); Console.ReadLine(); } } } 40 Lệnh nhảy có điều kiện (tt)  Câu lệnh switch: switch (biểu thức cần kiểm tra) { case trường_hợp: {Các câu lệnh Lệnh nhảy (break, continue)} [default: Các câu lệnh cho trường hợp mặc định] } Ví dụ: Nhập vào một số, in ra màn hình dạng chữ của số đó. 41 Ví dụ 1.2 class Program { static void Main(string[] args) { int n; Console.Write("nhap so n (0<n<5):"); n=Convert.ToInt32( Console.ReadLine ()); switch (n) { case 1: { Console.WriteLine(n + ": số một"); break; } case 2: { Console.WriteLine(n + ": số hai"); break; } case 3: { Console.WriteLine(n + ": số ba"); break; } case 4: { Console.WriteLine(n + ": số bốn"); break; } default: { Console.WriteLine(n + " số khác"); break; } } Console.ReadLine(); } } 42 Các lệnh lặp  Vòng lặp for  Vòng lặp while  Vòng lặp do…while  Vòng lặp foreach : sử dụng để lặp qua các phần tử của một mảng hay một tập hợp 43 Vòng lặp for for ( [Khởi tạo]; [Biểu thức kiểm tra]; [Lệnh lặp]) Công việc Ví dụ: In ra màn hình 10 số nguyên dương đầu tiên 44 Ví dụ 1.3 class Program { static void Main(string[] args) { Console.WriteLine("10 so nguyen duong dau tien"); for(int i=1;i<=10;i++) { Console.WriteLine(i); } Console.ReadLine(); } } 45 Vòng lặp while while (Biểu thức kiểm tra ) Công việc class Program { static void Main(string[] args) { Console.WriteLine("10 so nguyen duong dau tien"); int i = 1; while(i<=10) { Console.WriteLine(i); i++; } Console.ReadLine(); } } 46 Vòng lặp do… while do Công việc while Biểu thức kiểm tra class Program { static void Main(string[] args) { Console.WriteLine("10 so nguyen duong dau tien"); int i = 0; do { i++; Console.WriteLine(i); } while (i < 10); Console.ReadLine(); } } 47 Các toán tử (Operators)  Toán tử được phân thành nhiều loại khác nhau • Toán tử gán (assignment operator): = • Toán tử số học (arithmetic operators): +, -, * … • Toán tử tăng, giảm (increment and decrement operators): ++, --, -=, *= … • Toán tử quan hệ (relational operators): ==, != … • Toán tử logic (logical operators): &&, || … • Toán tử ba thành phần (Ternary Operator) conditional-expression ? expression1 : expression2 48 Bài tập chương 1  Bài 1: Viết chương trình nhập vào 2 số thực a,b. Tính tổng, hiệu, tích, thương của 2 số đó.  Bài 2: Nhập ba số thực a, b, c. In ra giá trị trung bình cộng và trung bình nhân của chúng:  Bài 3: Viết chương trình giải và biện luận phương trình bậc hai: ax2 + bx + c = 0, trong đó các hệ số a, b, c ∈ R nhập từ bàn phím. 3:, 3 : abcTBNcbaTBC =++= 49 Bài tập chương 1 (tt)  Bài 4: Viết chương trình nhập ba số a, b, c. Kiểm tra ba số đó có thoả mãn là độ dài 3 cạnh của một tam giác? Nếu thỏa mãn tính chu vi và diện tích của tam giác đó.  Bài 5: Viết chương trình tính 222 ...21 ...321 n nS +++ ++++ = n nS 2...42 ...21 333 +++ +++ =

Các file đính kèm theo tài liệu này:

  • pdfchuong1_.pdf
  • pdfchuong_2.pdf
  • pdfchuong_3.pdf
  • pdfchuong_4.pdf
  • pdfchuong_5_067.pdf