Hình 4.55: Kết quả chạy chương trình khi kích vào nút tìm kiếm 183
Hình 4.56: Bài tập về mảng hai chiều 184
Hình 4.57: Kết quả thiết kế Form bài tập mẫu về mảng hai chiều 186
Hình 4.58: Kết quả chạy chương trình bài tập mẫu về mảng hai chiều 190
Hình 4.59: Chương trình xử lý chuỗi 191
Hình 4.60: Kết quả thiết kế Form chương trình xử lý xâu 193
Hình 4.61: Kết quả chạy chương trình xử lý xâu 196
Hình 4.62: Chuẩn hóa và đếm từ trong xâu 196
LỜI NÓI ĐẦU
Ngôn ngữ C# là một ngôn ngữ được dẫn xuất từ C và C++, nhưng được tạo từ nền tảng phát triển hơnvà thêm vào những đặc tính mới để làm cho ngôn ngữ này dễ sử dụng hơn. Những đặc tính này có thể được tóm tắt như sau: C# là ngôn ngữ đơn giản, hiện đại, ngôn ngữ hướng đối tượng, ngôn ngữ mạnh mẽ và mềm dẻo, có ít từ khóa, hướng module. Ngay từ khi mới xuất hiện, C# đã có sức lôi cuốn, thu hút nhiều người và được sử dụng ở nhiều lĩnh vực khác nhau. Vì vậy, nhu cầu nghiên cứu, học tập môn học này ngày càng cao. Ở Việt Nam, mặc dù đã có một vài tài liệu hướng dẫn giảng dạy về C# nhưng hầu như mới dừng lại ở mức độ lý thuyết trừu tượng, chưa phù hợp với trình độ sinh viên trường Đại học sự phạm Kỹ thuật Nam Định, vì vậy việc biên soạn tập bài giảng về ngôn ngữ C# và cụ thể tập bài giảng Lập trình cơ bản là một nhu cầu cấp thiết.
Tập bài giảng được chia làm 4 chương: Chương 1: Tổng quan về .NET và C# Chương 2: Cơ sở lập trình trong C# Chương 3: Một số cấu trúc dữ liệu nâng cao Chương 4: Lập trình trên Form
Mỗi chương trong tập bài giảng đều hệ thống hóa các kiến thức cơ bản, cần thiết. Tương ứng với mỗi nội dung kiến thức đều có các ví dụ minh họa cụ thể, gắn với các ứng dụng thực tiễn. Đặc biệt, cuối tập bài giảng, tác giả đưa ra một hệ thống các bài tập thực tế để sinh viên vận dụng củng cố lại kiến thức và kỹ năng.
Với phần lý thuyết chi tiết, đầy đủ được trình bày một cách khoa học, logic và phần bài tập để củng cố kiến, hy vọng rằng tập bài giảng này sẽ mang lại cho sinh viên nhiều kiến thứchữu ích.
Trong quá trình biên soạn, tập bài giảng không tránh khỏi những sai sót, rất mong đồng nghiệp và các em sinh viên góp ý kiến để tập bài giảng ngày càng được hoàn thiện hơn. Mọi sự đóng góp ý kiến xin gửi về Văn phòng Khoa Công nghệ thông tin-Trường Đại học Sư phạm Kỹ thuật Nam Định-Phường Lộc Hạ-Tp Nam Định.
Nhóm biên soạn
Nguyễn Thế Vinh – Nguyên Thi ̣Thu Thủy
CHƯƠNG 1: TỔNG QUAN VỀ .NET VÀ C#
1.1. Giới thiệu .NET
1.1.1. Tổng quan về .NET Framework
Microsoft .NET Framework là một thành phần có thể được cài thêm hoặc đã có sẵn trong các hệ điều hành Windows. Nó cung cấp những giải pháp đã được lập trình sẵn cho những yêu cầu thông thường của chương trình quản lý việc thực thi các chương trình viết trên framework, cần phải cài framework để có thể chạy các chương trình được phát triển bằng các ngôn ngữ trong họ .NET. .NET Framework do Microsoft đưa ra và được sử dụng trong hầu hết các ứng dụng viết trên nền Windows. Những giải pháp được lập trình sẵn hình thành nên một thư viện các lớp của Framework, được sử dụng trong nhiều lĩnh vực của lập trình như: giao diện người dùng, truy cập dữ liệu, kết nối cơ sở dữ liệu, mã hoá, phát triển những ứng dụng website, các giải thuật số học và giao tiếp mạng. Thư viện lớp của Framework được lập trình viên sử dụng, kết hợp với chương trình của chính mình để tạo nên các ứng dụng.
Kiến trúc của .NET Framework
Microsoft tổ chức .NET Framework thành nhiều tầng, quá trình biên dịch và thực thi một chương trình viết trên nền .NET Framework được thực hiện từng bước từ phần mã nguồn đến phần mã máy. Mã nguồn của chương trình sau khi biên dịch sẽ thành ngôn ngữ trung gian (Common Intermediate Language - CIL). Ngôn ngữ này biên dịch phần lớn các thư viện được viết trên nền .NET thành các thư viện liên kết động (Dynamic Linked Library - DLL). Với giải pháp này, các ngôn ngữ được .NET Framework hỗ trợ sẽ dễ dàng sử dụng lại lẫn nhau. Một chương trình được viết bằng ngôn ngữ C# có thể sử dụng các lớp, các thuộc tính đã được viết trước đó bằng ngôn ngữ VB.NET hoặc J#. Tầng dưới cùng của cấu trúc phân tầng của .NET Framework là Common Language Runtime – còn được gọi là CLR. Đây là thành phần quan trọng nhất của .NET Framework. Tầng này thực hiện biên dịch mã của CIL thành mã máy và thực thi.
Hình 1.1: Cấu trúc của .Net Framework
Các ngôn ngữ thuộc họ .Net
Hiện tại các lập trình viên có thể sử dụng nhiều ngôn ngữ khác nhau để lập trình, có người thân thiện với ngôn ngữ này, có người thân thiện với ngôn ngữ khác. Có người làm việc rất tốt với ngôn ngữ Basic, trong khi đó, một số người khác thân thiện với ngôn ngữ Java. Những lập trình viên với khả năng thông thạo những ngôn ngữ khác nhau dường như không thể cùng xây dựng một ứng dụng vì sự không tương thích giữa các mã lệnh biên dịch. Để khắc phục tình trạng này, Microsoft đã đưa ra giải pháp
.Net Framework. Với .Net Framework, các lập trình viên có thể lập trình ở những ngôn ngữ khác nhau, sau khi biên dịch, kết quả thu được sẽ là các thư viện liên kết động .dll (dynamic linked library). Các thư viện này sẽ được các lập trình viên khác kế thừa và sử dụng lại. Visual Studio và Microsoft .Net Framework hỗ trợ các ngôn ngữ lập trình: Visual C++, Visual Basic .NET, Visual C#, Visual J#. Các ngôn ngữ lập trình trên được gọi chung là họ ngôn ngữ .NET.
Các thư viện có sẵn của .Net Framework
Thư viện lớp cơ sở của .NET là một tập hợp lớn các lớp được viết bởi Microsoft, những lớp này cho phép thao tác rất nhiều các tác vụ sẵn có trong Windows và có thể tạo các lớp của mình từ các lớp có sẵn trong thư viện lớp cơ sở của .NET dựa trên cơ chế thừa kế đơn. Thư viện lớp cơ sở của .NET rất trực quan và rất dễ sử dụng.
1.1.2. Giới thiệu Visual Studio .NET
Microsoft Visual Studio là một môi trường phát triển tích hợp (IDE) từ Microsoft. Nó được sử dụng để phát triển chương trình máy tính cho Microsoft Windows, cũng như các trang web, các ứng dụng web và các dịch vụ web. Visual Studio sử dụng nền tảng phát triển phần mềm của Microsoft như Windows API, Windows Forms, Windows Presentation Foundation, Windows Store và Microsoft Silverlight.
Visual Studio bao gồm một trình soạn thảo mã hỗ trợ IntelliSense cũng như cải tiến mã nguồn. Trình gỡ lỗi tích hợp hoạt động cả về trình gỡ lỗi mức độ mã nguồn và gỡ lỗi mức độ máy. Công cụ tích hợp khác bao gồm một mẫu thiết kế các hình thức xây dựng giao diện ứng dụng, thiết kế web, thiết kế lớp và thiết kế giản đồ cơ sở dữ liệu.
Visual Studio hỗ trợ nhiều ngôn ngữ lập trình khác nhau và cho phép trình biên tập mã và gỡ lỗi hỗ trợ (mức độ khác nhau) hầu như mọi ngôn ngữ lập trình. Các ngôn ngữ tích hợp gồm có Visual C++, VB.NET (Visual Basic.NET), Visual C# và Visual F#. Ngoài ra Visual Studio còn hỗ trợ cho các ngôn ngữ khác như J++/J thăng, Python và Ruby thông qua dịch vụ cài đặt riêng rẽ. Nó cũng hỗ trợ XML/XSLT, HTML/XHTML, JavaScript và CSS.
Hiện nay, một hệ thống thông tin thường có những dạng ứng dụng sau: Ứng dụng Console phục vụ xử lý các vấn đề liên quan đến hệ thống và giao tiếp vào ra; Ứng dụng Desktop phục vụ xây dựng các phần mềm ứng dụng với giao diện thân thiện; Ứng dụng Internet phục vụ việc xây dựng các website; Đối với mỗi dạng ứng dụng khác nhau, Visual Studio cung cấp các dạng Project khác nhau. Các dạng Project được Visual Studio cung cấp gồm có:
- Console Application: Cung cấp template cho ứng dụng Console
- Windows Application: Cung cấp template cho ứng dụng Desktop
- Class Library: Cung cấp template cho việc xây dựng thư viện liên kết động
- ASP.NET Website: Cung cấp template cho việc xây dựng Website
- ASP.NET Web Service: Cung cấp template cho việc xây dựng Web Service
1.2. Ngôn ngữ C#
1.2.1. Giới thiệu C#
Ngôn ngữ C# được phát triển bởi đội ngũ kỹ sư của Microsoft, người đứng đầu là Anders Hejlsberg và Scott Wiltamuth. Trong đó Anders Hejlsberg được biết đến là tác giả của Turbo Pascal, một ngôn ngữ lập trình trên máy tính phổ biến. Và ông đứng đầu nhóm thiết kế Borland Delphi, một trong những thành công đầu tiên của việc xây dựng môi trường phát triển tích hợp (IDE) cho lập trình client/server.
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 và thêm vào những đặc tính mới để làm cho ngôn ngữ này dễ sử dụng hơn. Nhiều trong số những đặc tính này khá giống với những đặc tính có trong ngôn ngữ Java. Không dừng lại ở đó, Microsoft đưa ra một số mục đích khi xây dựng ngôn ngữ này. Những mục đích này được được tóm tắt như sau:
- C# là ngôn ngữ đơn giản
- C# là ngôn ngữ hiện đại
- C# là ngôn ngữ hướng đối tượng
- C# là ngôn ngữ mạnh mẽ và mềm dẻo
- C# là ngôn ngữ có ít từ khóa
- C# là ngôn ngữ hướng module
C# là ngôn ngữ đơn giản
C# loại bỏ một số sự phức tạp của những ngôn ngữ như Java và C++, bao gồm việc loại bỏ những macro, những template, đa kế thừa và lớp cơ sở ảo (virtual base class). Chúng là những nguyên nhân gây ra sự nhầm lẫn hay dẫn đến những vấn đề cho các người phát triển C++. Nếu là người học ngôn ngữ C# đầu tiên thì chắc chắn là sẽ không trải qua thời gian tìm hiểu về những vấn đề trên. Nhưng khi đó sẽ không biết được hiệu quả của ngôn ngữ C# khi loại bỏ những vấn đề đó.
Ngôn ngữ C# đơn giản vì nó dựa trên nền tảng C và C++. Nếu đãquen với C và C++ hoặc thậm chí là Java, sẽ thấy C# khá giống về diện mạo, cú pháp, biểu thức, toán tử và những chức năng khác được lấy trực tiếp từ ngôn ngữ C và C++, nhưng nó đã được cải tiến để làm cho ngôn ngữ đơn giản hơn. Một vài trong các sự cải tiến là loại bỏ các dư thừa, hay là thêm vào những cú pháp thay đổi. Ví dụ như, trong C++ có ba toán tử làm việc với các thành viên là ::, . và ->. Để biết khi nào dùng ba toán tử này cũng phức tạp và dễ nhầm lẫn. Trong C#, chúng được thay thế với một toán tử duy nhất gọi là . (dot). Đối với người mới học thì điều này và những việc cải tiến khác làm bớt nhầm lẫn và đơn giản hơn.
C# là ngôn ngữ hiện đại
Điều gì làm cho một ngôn ngữ hiện đại? Những đặc tính như là xử lý ngoại lệ, thu gom bộ nhớ tự động, những kiểu dữ liệu mở rộng và bảo mật mã nguồn là những đặc tính được mong đợi trong một ngôn ngữ hiện đại. C# chứa tất cả những đặc tính trên. Nếu là người mới học lập trình có thể sẽ cảm thấy những đặc tính trên phức tạp và khó hiểu. Tuy nhiên, cũng đừng lo lắng sẽ dần dần được tìm hiểu những đặc tính qua các chương trong tập bài giảng này.
C# là ngôn ngữ hướng đối tượng
Những đặc điểm chính của ngôn ngữ hướng đối tượng (Object-oriented language) là sự đóng gói (encapsulation), sự kế thừa (inheritance) và đa hình (polymorphism). C# hỗ trợ tất cả những đặc tính trên.
C# là ngôn ngữ mạnh mẽ và cũng mềm dẻo
Như đã đề cập trước, với ngôn ngữ C# chỉ bị giới hạn ở chính bởi bản thân hay là trí tưởng tượng của lập trình viên. Ngôn ngữ này không đặt những ràng buộc lên những việc có thể làm. C# được sử dụng cho nhiều các dự án khác nhau như là tạo ra
ứng dụng xử lý văn bản, ứng dụng đồ họa, bảng tính, hay thậm chí những trình biên dịch cho các ngôn ngữ khác.
C# là ngôn ngữ ít từ khóa
C# là ngôn ngữ sử dụng giới hạn những từ khóa. Nhiều người có thể nghĩ rằng một ngôn ngữ có nhiều từ khóa thì sẽ mạnh hơn. Điều này không phải sự thật, ít nhất là trong trường hợp ngôn ngữ C#, có thể thấy rằng ngôn ngữ này có thể được sử dụng để xây dựng bất cứ ứng dụng nào.
as | base | bool | |
break | byte | case | catch |
char | checked | class | const |
continue | decimal | default | delegate |
do | double | else | enum |
event | explicit | extern | false |
finally | fixed | float | for |
foreach | goto | if | implicit |
in | int | interface | internal |
is | lock | long | namespace |
new | null | object | operator |
out | override | params | private |
protected | public | readonly | ref |
return | sbyte | sealed | short |
sizeof | stackalloc | static | string |
struct | switch | this | throw |
true | try | typeof | uint |
ulong | unchecked | unsafe | ushort |
using | virtual | void | volatile |
while |
Có thể bạn quan tâm!
- Lập trình cơ bản - 1
- Các Bước Lựa Chọn Một Project Mới Visual Studio 2010
- Các Phép Toán Quan Hệ Và Logic Các Phép Toán Quan Hệ
- Kết Quả Chương Trình Ví Dụ 2.9
Xem toàn bộ 212 trang tài liệu này.
Bảng 1.1: Từ khóa của ngôn ngữ C#.
C# là ngôn ngữ hướng module
Mã nguồn C# có thể được viết trong lớp, những lớp này chứa các phương thức thành viên của nó. Lớp và những phương thức có thể được sử dụng lại trong ứng dụng hay các chương trình khác. Bằng cách truyền các mẫu thông tin đến lớp hay phương thức có thể tạo ra những mã nguồn dùng lại có hiệu quả.
1.2.2. Các bước chuẩn bị cho chương trình
Thông thường, trong việc phát triển phần mềm, người phát triển phải tuân thủ theo quy trình phát triển phần mềm một cách nghiêm ngặt và quy trình này đã được chuẩn hóa. Tuy nhiên trong phạm vi là tìm hiểu một ngôn ngữ mới và viết những
chương trình nhỏ thì không đòi hỏi khắt khe việc thực hiện theo quy trình. Nhưng để giải quyết được những vấn đề thì cũng cần phải thực hiện đúng theo các bước sau:
- Xác định mụctiêu của chươngtrình.
- Xác định những phương pháp giải quyếtvấn đề.
- Tạo mộtchươngtrình để giảiquyếtvấn đề.
- Thựcthi chương trình để xemkết quả.
Ví dụ để viết chương trình xử lý văn bản đơn giản, mục tiêu chính là xây dựng chương trình cho phép soạn thảo và lưu trữ những chuỗi ký tự hay văn bản. Nếu không có mục tiêu thì không thể viết được chương trình hiệu quả.
Bước thứ hai là quyết định đến phương pháp để viết chương trình. Bước này xác định những thông tin nào cần thiết được sử dụng trong chương trình, các hình thức nào được sử dụng. Từ những thông tin này rút ra được phương pháp để giải quyết vấn đề.
Bước thứ ba là cài đặt, bước này có thể dùng các ngôn ngữ khác nhau để cài đặt, Trong phạm vi của tập bài giảng này là dùng C#.
Và bước cuối cùng là phần thực thi chương trình để xem kết quả.
1.2.3. Xây dựng chương trình C# đơn giản
Yêu cầu: Xây dựng ứng dụng Console thực hiện các công việc sau:
- Hiển thị chuỗi thông báo ―Chao mung den voi C# 2010‖ ra màn hình;
- Thực hiện nhập hai số thực từ bàn phím và hiển thị số lớn nhất trong hai số
Hướng dẫn thực hiện
- Bước1: Khởi động Visual Studio 2010
Chọn Start | All Programs | Microsoft Visual Studio 2010 | Microsoft Visual Studio 2010.
- Bước 2: Tạo một Project mới
Chọn menu File | New | Project
- Bước 3: Thiết lập lựa chọn và thực hiện khai báo như hình 1.2 theo các bước
sau.
Bước 3.1: Chọn ngôn ngữ là Visual C# và kiểu Template là Windows. Bước 3.2: Chọn kiểu ứng dụng Console Application.
Bước 3.3: Đặt tên cho Project
Bước 3.4: Đường dẫn tới thư mục chứa Project Bước 3.5: Kích chuột vào nút Ok để tạo Project mới