Chương 2 . Giới thiệu về ngôn ngữ lập trình C#
Ngôn ngữ lập trình ● Hiện nay tồn tại hàng trăm loại khác nhau ● Thuộc một trong ba nhóm : ▪ Ngôn ngữ máy ▪ Ngôn ngữ Assembly ▪ Các ngôn ngữ bậc cao
Bạn đang xem trước 20 trang tài liệu Chương 2 . Giới thiệu về ngôn 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
2.1 Giới thiệu một số ngôn ngữ lập trình 2.1.1. Ngôn ngữ máy,ngôn ngữ Assembly và các ngôn ngữ bậc cao 2.1.2. C, C++, Visual Basic .NET và Java2.1.3. Ngôn ngữ lập trình C# 2.1.4. Các ngôn ngữ bậc cao khác 2.2. Các kiểu ứng dụng 2.2.1. Console application 2.2.2. Windows application 2.3. Một số khái niệm cơ bản trong C# 2.3.1. Chú thích trong C# 2.3.2. Namespaces 2.3.3. Kí tự cách trắng (White Space) 2.3.4. Từ khoá (Keywords) 2.3.5. Lớp (Classes) 2.3.6. Phương thức (Method) 2.3.7. Câu lệnh trong C# (Statement) 2.3.8. Bộ nhớ 2.3.9. Toán tử 2.4 Ví dụ minh hoạ 2.4.1. Chương trình đưa ra màn hình một dòng thông báo 2.4.2. Chương trình tính tổng các số nguyên Chương 2 . Giới thiệu về ngôn ngữ lập trình C# Outline 2.1.1. Ngôn ngữ máy, ngôn ngữ Assembly và các ngôn ngữ bậc cao Ngôn ngữ lập trình ● Hiện nay tồn tại hàng trăm loại khác nhau ● Thuộc một trong ba nhóm : ▪ Ngôn ngữ máy ▪ Ngôn ngữ Assembly ▪ Các ngôn ngữ bậc cao 2.1.1. Ngôn ngữ máy, ngôn ngữ Assembly và các ngôn ngữ bậc cao (II) Ngôn ngữ máy Được máy tính hiểu trực tiếp Định nghĩa bởi thiết kế phần cứng máy tính Là ngôn ngữ phụ thuộc máy (machine-dependent). Mỗi loại máy tính đều có ngôn ngữ máy riêng của mình. Khó hiểu đối với con người Bao gồm các dãy số Cơ bản nhất là 1 và 0. Mã nhị phân Chỉ dẫn phần lớn những hoạt động căn bản của máy tính Chậm, dài dòng và dễ lỗi Dẫn tới ngôn ngữ Assembly 2.1.1. Ngôn ngữ máy, ngôn ngữ Assembly và các ngôn ngữ bậc cao (III) Ngôn ngữ Assembly Những chữ viết tắt giống tiếng Anh Tượng trưng cho các hoạt động cơ bản của máy tính Được dịch ra ngôn ngữ máy Chương trình dịch hợp ngữ (Assemblers) chuyển sang ngôn ngữ máy Chuyển đổi tốc độ cao Dễ đọc hơn đối với con người Vẫn khó sử dụng Nhiều câu lệnh cho một nhiệm vụ đơn giản Dẫn tới các ngôn ngữ bậc cao 2.1.1. Ngôn ngữ máy, ngôn ngữ Assembly và các ngôn ngữ bậc cao (IV) Các ngôn ngữ bậc cao Những câu lệnh đơn để thực hiện các nhiệm vụ lớn Được dịch ra ngôn ngữ máy Trình biên dịch (Compilers) chuyển đổi sang ngôn ngữ máy Thời gian chuyển đổi đáng kể Trình thông dịch (Interpreters) chạy chương trình mà không biên dịch Dùng trong môi trường phát triển Các chỉ dẫn con người có thể hiểu được Trông gần giống tiếng Anh hàng ngày Chứa các ký hiệu toán học chung. 2.1.2. C, C++, Visual Basic .NET và Java C Phát triển bởi Dennis Ritchie Bắt nguồn từ ngôn ngữ B của phòng thí nghiệm Bell Có bổ sung thêm các tính năng về kiểu dữ liệu Được thừa nhận là ngôn ngữ của UNIX Hiện nay được sử dụng rộng rãi Có sẵn trong hầu hết các máy tính Ngôn ngữ của các hệ điều hành lớn Dẫn đến sự phát triển của C++ 2.1.2. C, C++, Visual Basic .NET và Java (II) C++ Bjarne Stroustrup phát triển tại phòng thí nghiệm Bell (những năm 1980) Mở rộng của C Dùng các phần tử trong Simula 67 Ngôn ngữ lập trình mô phỏng Cung cấp những tính năng để "chau chuốt " C Kỹ thuật lập trình hướng đối tượng Ngôn ngữ lai Có thể lập trình theo kiểu cấu trúc Possible to program structurally Có thể lập trình với kỹ thuật lập trình hướng đối tượng Có thể dùng cả hai 2.1.2. C, C++, Visual Basic .NET và Java (III) Lập trình hướng đối tượng (Object-Oriented Programming) Sử dụng các đối tượng (objects) Tái sử dụng các thành phần cấu tạo nên phần mềm Mô phỏng theo các mục của thế giới thực Tạo ra nhiều sản phẩm hơn lập trình cấu trúc Hiểu chương trình ,sửa chữa và thay đổi dễ dàng hơn 2.1.2. C, C++, Visual Basic .NET và Java (IV) Visual Basic . NET Dựa trên nền BASIC (giữa những năm 60) Beginners All-Purpose Symbolic Instruction Code Bill Gates bổ sung tại Microsoft Rút ra từ Visual Basic Là kết quả của Windows GUI (cuối 1980 đầu 1990) Graphical User Interface (Giao diện đồ hoạ) Có nhiều khả năng như lập trình hướng đối tượng,kiểm soát lỗi và tạo giao diện đồ hoạ GUI Dẫn tới .NET Cho phép truy cập vào các thư viện .NET Phát triển lập trình hướng đối tượng 2.1.2. C, C++, Visual Basic .NET và Java (V) Java Dự án nghiên cứu của tập đoàn Sun Microsystems (1991) Tên mã hoá là Green Dựa trên nền tảng C và C++ Dành cho các thiết bị tiêu dùng điện thông minh Sự thiếu phổ biến gây ra nguy cơ bị huỷ bỏ Đột nhiên sự thông dụng của WWW tạo ra tiềm năng mới Khả năng dùng Java thiết kế các nội dung động của trang Web Hoạt ảnh và các nội dung tương tác Thu hút được sự chú ý của giới kinh doanh Hiện nay được sử dụng rất rộng rãi Tăng cường các tính năng của WWW servers Cung cấp ứng dụng cho các thiết bị tiêu thụ 2.1.3. Ngôn ngữ lập trình C# C# Phát triển tại Microsoft, đội nghiên cứu do Anders Hejlsberg và Scott Wiltamuth lãnh đạo Điều khiển sự kiện, hướng đối tượng, ngôn ngữ lập trình trực quan Dựa trên nền tảng C, C++ và Java Hợp nhất trong nền .NET platform Có thể phân phối các ứng dụng Web Các thiết bị và máy tính để bàn Các chương trình cho phép mọi người truy cập qua bất cứ thiết bị nào Cho phép giao tiếp với các ngôn ngữ máy khác. Integrated Design Environment (IDE)-Môi trường tích hợp phát triển phần mềm Dễ dàng hoá việc lập trình và gỡ lỗi. Phát triển ứng dụng nhanh- Rapid Application Development (RAD) 2.1.3. Ngôn ngữ lập trình C# (II) SOAP Simple Object Access Protocol (giao thức truy xuất đối tượng đơn giản) Cho phép giao tiếp giữa các ngôn ngữ lập trình khác nhau Bất kỳ ngôn ngữ .NET nào Chia sẻ các chương trình khó khăn ( “ chunks”) trên internet 2.1.4. Các ngôn ngữ bậc cao khác Fortran (Formula Translator) IBM phát triển (1950) Các ứng dụng khoa học và kỹ thuật Tạo các ứng dụng khoa học và kỹ thuật Vẫn được sử dụng rộng rãi COBOL (Common Business Oriented Language) Phát triển bởi những người dùng máy tính,các nhà máy và chính phủ (1959) Thao tác hiệu quả với lượng dữ liệu lớn Thường kết hợp với các phần mềm thương mại Pascal Phát triển bởi Professor Nicklaus Wirth (cuối 1960) Dùng trong giảng dạy. 2.2. Các kiểu ứng dụng 2.2.1 Ứng dụng Console Không có các thành phần trực quan Chỉ có đầu ra văn bản Hai loại Dấu nhắc MS-DOS Dùng trong Windows 95/98/ME Dấu nhắc lệnh Dùng trong windows 2000/NT/XP 2.2.2 Ứng dụng Windows Có vài dạng đầu ra Chứa giao diện đồ hoạ (GUIs) 2.3.Một số khái niệm cơ bản trong C# 2.3.1. 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 Chỉ dùng cho người đọc 2.3.2 .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 2.3.Một số khái niệm cơ bản trong C# 2.3.3.Kí tự cách trắng (White Space) Chứa các khoảng trống, ký tự xuống dòng và tabs 2.3.4.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 2.3.Một số khái niệm cơ bản trong C# 2.3.5.Lớp (Classes) Tên lớp chỉ có thể là một từ dài (tức là không có dấu cách trong tên lớp) Tên lớp được viết hoa với mỗi chữ cái đầu của từ tiếng anh được thêm vào (ví dụ như MyFirstProgram ) Mỗi tên lớp là một từ định danh Có thể chứa các chữ cái,chữ số và dấu gạch dưới (_) Không được bắt đầu bằng chữ số Có thể bắt đầu bằng biểu tượng @ Thân lớp bắt đầu với dấu mở ngoặc nhọn ({) Thân lớp kết thúc với dấu đóng ngoặc nhọn (}) 2.3.Một số khái niệm cơ bản trong C# 2.3.6.Phương thức (Method) Tạo các khối chương trình Phương thức Main Mỗi ứng dụng console hay windows phải có duy nhất một phương thức này Tất cả các chương trình đều bắt đầu bằng cách chạy phương thức Main Các dấu ngoặc nhọn được dùng để bắt đầu ({) và kết thúc (}) một phương thức 2.3.7.Câu lệnh (statements) Tất cả những gì có trong cặp ngoặc kép(“) được coi là một xâu Mỗi câu lệnh đều phải kết thúc bằng dấu chấm phảy (;) 2.3.Một số khái niệm cơ bản trong C# 2.3.8. Bộ nhớ Mỗi biến chiếm một vị trí trong bộ nhớ Bao gồm tên,loại,kích thước và giá trị Khi một giá trị mới được nhập vào thì giá trị cũ sẽ bị mất. Các biến đã sử dụng vẫn giữ nguyên giá trị của chúng sau khi dùng Vị trí nhớ chỉ ra tên và giá trị của biến number1. 2.3.Một số khái niệm cơ bản trong C# 2.3.9. Toán tử Toán tử số học Không phải tất cả các toán tử đều dùng cùng một biểu tượng Dấu (*) là nhân Gạch chéo (/) là chia Dấu phần trăm (%) là toán tử lấy modul Cộng (+) và trừ (-) giữ nguyên ý nghĩa Phải viết trên đường thẳng Không có toán tử mũ 2.3.Một số khái niệm cơ bản trong C# Phép chia Phép chia biến đổi phụ thuộc vào biến sử dụng Khi chia hai số nguyên,kết quả luôn được làm tròn thành số nguyên. Để có kết quả chính xác hơn dùng các loại biến có hỗ trợ thập phân. Trật tự Dấu ngoặc được thực hiện trước Chia,nhân và modul được thực hiện tiếp theo Trái sang phải Cộng và trừ được thực hiện cuối cùng Trái sang phải 2.4 Ví dụ minh hoạ 2.4.1. Chương trình đưa ra màn hình một dòng thông báo Ta lần lượt xét 4 ví dụ : Welcome1.cs In một dòng thông báo Welcome2.cs In một dòng thông báo bằng nhiều câu lệnh Welcome3.cs In nhiều dòng thông báo bằng một câu lệnh Welcome4.cs In một dòng thông báo trong hộp thông báo 1 // Welcome1.cs 2 // A first program in C#. 3 4 using System; 5 6 class Welcome1 7 { 8 static void Main( string[] args ) 9 { 10 Console.WriteLine( "Welcome to C# Programming!" ); 11 } 12 } Welcome to C# Programming! Welcome1.cs Đầu ra Trong Visual Studio.Net 1 // Welcome2.cs 2 // Printing a line with multiple statements. 3 4 using System; 5 6 class Welcome2 7 { 8 static void Main( string[] args ) 9 { 10 Console.Write( "Welcome to " ); 11 Console.WriteLine( "C# Programming!" ); 12 } 13 } Welcome to C# Programming! Welcome2.cs 1 // Welcome3.cs 2 // Printing multiple lines with a single statement. 3 4 using System; 5 6 class Welcome3 7 { 8 static void Main( string[] args ) 9 { 10 Console.WriteLine( "Welcome\nto\nC#\nProgramming!" ); 11 } 12 } Welcome to C# Programming! Welcome3.cs 1 // Welcome4.cs 2 // Printing multiple lines in a dialog Box. 3 4 using System; 5 using System.Windows.Forms; 6 7 class Welcome4 8 { 9 static void Main( string[] args ) 10 { 11 MessageBox.Show( "Welcome\nto\nC#\nprogramming!" ); 12 } 13 } Welcome4.cs Phân tích đầu ra 2.4.2. Ví dụ chương trình tính tổng các số nguyên Các kiểu dữ liệu cơ bản Các kiểu dữ liệu được xây dựng trong C# String, Int, Double, Char, Long 15 kiểu dữ liệu chính Mỗi tên kiểu dữ liệu là một từ khoá của C# Các biến có cùng kiểu dữ liệu có thể được khai báo trên các dòng khác nhau hoặc trên một dòng Console.ReadLine() Dùng để lấy dữ liệu từ cửa sổ đầu ra Int32.Parse() Dùng để chuyển một xâu sang số nguyên Cho phép dùng các phép toán sau khi xâu đã được chuyển đổi 1 // Addition.cs 2 // An addition program. 3 4 using System; 5 6 class Addition 7 { 8 static void Main( string[] args ) 9 { 10 string firstNumber, // first string entered by user 11 secondNumber; // second string entered by user 12 13 int number1, // first number to add 14 number2, // second number to add 15 sum; // sum of number1 and number2 16 17 // prompt for and read first number from user as string 18 Console.Write( "Please enter the first integer: " ); 19 firstNumber = Console.ReadLine(); 20 21 // read second number from user as string 22 Console.Write( "\nPlease enter the second integer: " ); 23 secondNumber = Console.ReadLine(); 24 25 // convert numbers from type string to type int 26 number1 = Int32.Parse( firstNumber ); 27 number2 = Int32.Parse( secondNumber ); 28 29 // add numbers 30 sum = number1 + number2; 31 Addition.cs 32 // display results 33 Console.WriteLine( "\nThe sum is {0}.", sum ); 34 35 } // end method Main 36 37 } // end class Addition Please enter the first integer: 45 Please enter the second integer: 72 The sum is 117. Addition.cs