LỜI MỞ ĐẦU Trong thế giới công nghệ thông tin ngày nay, ngôn ngữ lập trình C# đóng vai trò quan trọng trong việc phát triển các ứng dụng phần mềm.. Khái niệm C# hay C sharp là một ngôn
Trang 1Giảng viên b môn: ộ
Sinh viên thực hiện:
Lớp h c ph n: ọ ầ
Khóa:
Trang 2LỜI MỞ ĐẦU
Trong thế giới công nghệ thông tin ngày nay, ngôn ngữ lập trình C# đóng vai trò quan trọng trong việc phát triển các ứng dụng phần mềm Đặc biệt, trong chương trình học hiện tại tại trường Đại học Ngân Hàng, môn học tiếp theo là Lập trình hướng đối tượng, được dạy bằng ngôn ngữ lập trình C# Điều này đặt ra một nhu cầu cấp thiết cho việc tìm hiểu sâu hơn về ngôn ngữ lập trình này
C# là một ngôn ngữ lập trình đa năng, mạnh mẽ và linh hoạt, được sử dụng rộng rãi trong nhiều lĩnh vực công nghệ thông tin Với việc vừa hoàn thành môn học ơ sở lập Ctrình sử dụng ngôn ngữ C, việc chuyển sang tìm hiểu C# sẽ là một bước tiếp theo tự nhiên và cần thiết C# không chỉ kế thừa những ưu điểm của C mà còn bổ sung thêm nhiều tính năng mới, giúp chúng ta có thể thực hiện công việc một cách hiệu quả hơn Việc tìm hiểu C# không chỉ giúp chúng ta nắm bắt nhanh chóng và hiệu quả các khái niệm và kỹ thuật trong môn học sắp tới mà còn mở rộng kiến thức và kỹ năng lập trình của chúng ta Bằng cách nắm vững ngôn ngữ này, chúng ta sẽ có thể tạo ra các ứng dụng phần mềm mạnh mẽ và hiệu quả, đáp ứng nhu cầu ngày càng cao của thế giới công nghệ thông tin
Mục tiêu của bài tập nhóm này là để chúng ta làm quen và có cái nhìn tổng quan về C#, nhằm chuẩn bị kiến thức cho môn Lập trình hướng đối tượng Qua đó, chúng ta không chỉ nắm bắt được tổng quan của ngôn ngữ mà còn nắm vững cú pháp và cấu trúc của ngôn ngữ lập trình C#
Với mong muốn tìm hiểu thêm về vấn đề này, chúng em đã chọn chủ đề “Tìm hiểu về ngôn ngữ lập trình C#”
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN
Trang 4
M C L C Ụ Ụ
CHƯƠNG 1: TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH C# 1
1.1 Khái niệm 1
1.2 Mục đích ra đời 1
1.3 Mức đ phộ ổ biến 2
1.4 Đối tượng sử dụng 2
1.5 Ưu điểm 3
1.6 Nhược điểm 3
CHƯƠNG 2: ĐẶ C ĐIỂM C ỦA NGÔN NGỮ LẬP TRÌNH C# 3
2.1 Các kiểu dữ ệu cơ sởli 3
2.1.1 Khái niệm kiểu dữ liệu: 3
2.1.2 Kiểu dữ ệu giá trị li 4
2.2 Hằng và biến 6
2.2.1 Biến 6
2.2.2 Hằng 6
2.3 Biểu thức và toán tử 6
2.3.1 Biểu thức 6
2.3.2 Toán tử 7
2.3.3 Chuyển đổi kiểu 13
2.4 Câu lệnh 14
2.5 Nhập - Xuất 15
2.5.1 Xuất dữ liệu 15
2.5.2 Nhập dữ liệu 15
CHƯƠNG 3: CHƯƠNG TRÌNH CON 16
3.1 Khái niệm 16
3.2 Đặc điểm 16
CHƯƠNG 4: MẢNG 1 CHIỀU 17
4.1 Khái niệm 17
4.2 Đặc điểm 17
Trang 54.3 Lợi ích của vi c sệ ử dụng mảng 17
4.4 Khai báo, khở ạo, sử dụng mảng 1 chiềui t 17
4.4.1 Khai báo mảng 1 chiều 17
4.4.2 Khở ạo giá trị i t 18
4.4.3 Sử dụng mảng 19
4.5 Thuộc tính và phương thức đặc trưng của mảng 1 chiều 19
KẾT LUẬN 21
TÀI LIỆU THAM KHẢO 22
DANH MỤC BẢNG Table 1 Các kiểu số nguyên trong C# 4
Table 2 Các kiểu số thực trong C# 5
Table 3 Các kiểu ký tự và logic trong C# 5
Table 4 Toán tử số học trong C# 7
Table 5 Toán tử quan hệ trong C# 8
Table 6 Toán tử logic trong C# 8
Table 7 Toán tử gán trong C# 9
Table 8 Toán tử so sánh từng bit 10
Table 9 Toán tử so sánh bit trong C# 11
Table 10 Toán tử quan hệ trong C# 11
Table 11 Thứ tự ưu tiên các toán tử 12
Table 12 Bảng thuộc tính phương thức của mảng 1 chiều 19
DANH MỤC HÌNH ẢNH Figure 1 Ảnh minh họa về phân loại các kiểu dữ ệu trong C#li 4
Trang 6CHƯƠNG 1: TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH C#
1.1 Khái niệm
C# (hay C sharp) là một ngôn ngữ lập trình đơn giản, được phát triển bởi đội ngũ
kỹ sư của Microsoft vào năm 2000, trong đó người dẫn đầu là Anders Hejlsberg
và Scott Wiltamuth C# là ngôn ngữ lập trình hiện đại, hướng đối tượng và nó được xây dựng trên nền tảng của hai ngôn ngữ mạnh nhất là C++ và Java C# được thiết kế cho Common Language Infrastructure (CLI), mà gồm Executable Code và Runtime Environment, cho phép chúng ta sử dụng các ngôn ngữ high-level đa dạng trên các nền tảng và cấu trúc máy tính khác nhau
1.2 Mục đích ra đời
• Phát triển ứng dụng trên nền tảng NET: C# được thiết kế để làm việc chặt chẽ với NET Framework, một nền tảng phần mềm của Microsoft, để phát triển ứng dụng Windows và web hiệu quả C# trở thành ngôn ngữ chính trong hệ sinh thái NET
• Tính Tương Thích và Bảo Quản Đầu Tư: C# được tạo ra để cung cấp một lựa chọn hiện đại và an toàn cho việc phát triển ứng dụng, đồng thời duy trì khả năng tương thích với các ngôn ngữ và công nghệ trước đó như C, C++, và COM Điều này giúp bảo vệ đầu tư của các tổ chức đã phát triển ứng dụng bằng các ngôn ngữ này
• An Toàn và Dễ Sử Dụng: C# được thiết kế với kiểu dữ liệu an toàn và cú pháp
dễ đọc, giảm thiểu lỗi thời biên dịch và thời chạy, đồng thời tối ưu hóa sự dễ sử dụng cho các lập trình viên
• Hỗ Trợ Lập Trình Hướng Đối Tượng: C# hỗ trợ lập trình hướng đối tượng, giúp
tổ chức mã nguồn một cách có tổ chức, tái sử dụng mã nguồn, và tăng tính linh hoạt trong phát triển ứng dụng
• Hỗ Trợ Phát Triển Ứng Dụng Đa Nền Tảng: Trong các phiên bản sau này, C#
mở rộng sự hỗ trợ cho việc phát triển ứng dụng đa nền tảng thông qua dự án NET Core và NET 5 trở đi
Trang 72
• Tóm lại, mục đích chính của việc phát triển ngôn ngữ C# là tạo ra một ngôn ngữ linh hoạt, an toàn, và dễ sử dụng để hỗ trợ phát triển ứng dụng trên nền tảng Microsoft
1.3 Mức độ ổ ph biến
• C# là một ngôn ngữ lập trình đa năng, mạnh mẽ được phát triển bởi Microsoft Ngôn ngữ này đã trở thành một trong những ngôn ngữ lập trình phổ biến nhất trên thế giới
• Theo một khảo sát được thực hiện bởi **Stack Overflow** vào năm 2021, C# là ngôn ngữ lập trình phổ biến thứ tư trên toàn cầu C# được sử dụng để phát triển một loạt các ứng dụng, từ phần mềm quy mô lớn đến các chương trình đơn giản C# cũng được thiết kế để phù hợp với việc viết các ứng dụng cho cả hai hệ thống: hosted và nhúng Các tính năng chính của C# bao gồm thu gom rác tự động, thư viện chuẩn, assembly, lập trình hướng sự kiện, lập trình hướng tác vụ, lập trình hướng chức năng, lập trình hướng đối tượng, lập trình hướng đa luồng, lập trình hướng thủ tục, lập trình hướng thể hiện và lập trình hướng đa dạng
• Phát Triển Ứng Dụng Windows: C# là một lựa chọn tự nhiên cho việc phát triển ứng dụng Windows, bao gồm cả các ứng dụng desktop và ứng dụng Universal Windows Platform (UWP)
• Phát Triển Ứng Dụng Web: C# kết hợp với ASP.NET để tạo ra một môi trường phát triển web mạnh mẽ Lập trình viên sử dụng C# để xây dựng ứng dụng web,
từ trang web tĩnh đến ứng dụng web động và phức tạp
Trang 8• Lập Trình Viên Điện Toán Đám Mây (Cloud Developers): Cùng với sự gia tăng của các dịch vụ đám mây và nền tảng Azure của Microsoft, C# trở thành lựa chọn phổ biến cho việc phát triển ứng dụng đám mây
• Nhóm Phát Triển Ứng Dụng Đa Nền Tảng: Với sự mở rộng của NET Core và NET 5 trở đi, C# cũng được sử dụng bởi các nhóm phát triển muốn xây dựng ứng dụng đa nền tảng, bao gồm cả Linux và macOS
• Những đối tượng này sử dụng C# vì tính linh hoạt, hiệu suất tốt, tính tương thích với nền tảng Microsoft, và sự hỗ trợ mạnh mẽ từ cộng đồng và công cụ phát triển của Microsoft như Visual Studio
1.5 Ưu điểm
C# có rất nhiều ưu điểm nổi bật như:
• Gần gũi với các ngôn ngữ lập trình thông dụng như C++, Java, Pascal
• Xây dựng dựa trên nền tảng của các ngôn ngữ lập trình mạnh nên thừa hưởng những ưu điểm của chúng
• Cải tiến các khuyết điểm của C/C++ như con trỏ, hiệu ứng phụ,
CHƯƠNG 2: ĐẶC ĐIỂM CỦA NGÔN NGỮ LẬP TRÌNH C#
2.1 Các kiểu dữ ệu cơ sở li
2.1.1 Khái niệm kiểu dữ liệu:
Kiểu dữ liệu (data type) là một tập hợp các giá trị mà một biến thuộc kiểu đó có thể nhận cùng một số phép toán có thể thực hiện
Trong C#, kiểu dữ liệu được phân ra làm 3 loại chính như sau:
Trang 94
• Kiểu dữ liệu giá trị (kiểu này đươc phân ra làm 2 loại là kiểu dữ liệu đã được đinh nghĩa và kiểu dữ liệu do người dùng định nghĩa)
• Kiểu dữ liệu tham chiếu
• Kiểu con trỏ (pointer)
Figure 1 Ảnh minh họa về phân loại các kiểu dữ ệu trong C# li
2.1.2 Kiểu dữ liệu giá trị
Như đã được đề cập ở bên trên, kiểu dữ liệu giá trị được phân làm 2 loại chính:
• Kiểu dữ liệu đã được định nghĩa (predefined data types)
• Kiểu dữ liệu do người dùng định nghĩa (user defined data types)
Ở phần này chúng ta chỉ tìm hiểu về các kiểu dữ ệu đã đượli c định nghĩa trong C#
• Kiểu số nguyên
Chúng ta có thể bắt gặp số nguyên ở bất cứ đâu, trong bất kì chương trình máy tính nào Vậy nên trong mỗi một ngôn ngữ lập trình không thể ếu các kiểu số nguyên thi
Table 1 Các kiểu số nguyên trong C#
Kiểu s nguyên ố Kích thước (s byte)ố Miền giá tr ị
Trang 10Trong các chương trình máy tính, số ực cũng quan trọng không kém khi người ta hay th
sử dụng số ực làm kết quả của một phép chia, xác suất, đánh giá (heuristic) Các giá th
trị kiểu số ực còn có một tên g i khác là “sth ọ ố chấm phẩy động”
Table 2 Các kiểu số ực trong C# th
decmical 16 byte (-7.9 x 10 28tới 7.9 x 10 ) / 10 28 0tới 228 chữ số
• Kiểu ký tự và logic
Chúng ta bắt gặp các chữ cái mọi lúc mọi nơi và câu trả lời đúng sai mọi lúc mọi nơi Vậy nên những kiểu chữ cái hay là các kiểu logic là vô cùng cần thiết
Table 3 Các kiểu ký tự và logic trong C#
Kiểu dữ liệu Kích thước (số byte) Miền giá trị
bool (kiểu logic) 1 byte true và false (tương đương với đúng hoặc sai)
Trang 11Biến (variable) là đại lượng có thể thay đổi được giá trị, được khai báo trong chương trình với cú pháp sau đây:
<kiểu dữ liệu> <tên biến> = [<giá trị>];
Lưu ý: phần trong ngoặc [] có thể là không có, tức là có thể có có thể không
Một số ví dụ cho việc khai báo biến trong C#
const <tên kiểu> <tên biến> = <giá trị>;
Một số ví dụ về khai báo hằng trong C#:
const int tuoi = 15;
Trang 12Biểu thức là công thức tính toán bao gồm các toán hạng (operand) và toán tử (operator) tương ứng Các toán hạng có thể là một biến, hằng, lời gọi hàm, một biểu thức con khác đặt trong cặp ngoặc đơn, hình thành nên một biểu thức phức hợp Trong ngôn ngữ lập trình C#, biểu thức luôn trả về một giá trị
Các loại biểu thức thông dụng:
- Trừ giá tr toán h ng hai t ị ạ ừ toán hạng đầu A - B sẽ cho kết quả là -10
/ Chia l y ph n nguyên hai toán hấ ầ ạng B / A sẽ cho kết quả là 2
++ Lượng gia giá tr toán hị ạng thêm 1 đơn vị A++ sẽ cho kết quả là 11 Lượng giảm giá tr toán hạng mị ột đơn vị A s cho kẽ ết quả là 9
• Toán tử quan hệ trong C#
Bảng dưới đây liệt kê các toán tử quan hệ được hỗ trợ bởi ngôn ngữ C# Giả sử biến A giữ giá trị 10, biến B giữ 20 thì ta được bảng sau:
Trang 138
Table 5 Toán tử quan hệ trong C#
== Kiểm tra n u 2 toán h ng b ng nhau hay khôế ạ ằ
Nếu bằng thì điều ki n là true ệ
(A == B) là không đúng
!= Kiểm tra 2 toán h ng có giá tr khác nhau hạ ị
không N u không bế ằng thì điều ki n là true ệ
(A != B) là true
> Kiểm tra n u toán h ng bên trái có giá tr lế ạ ị ớ
hơn toán hạng bên phải hay không Nếu lớ
hơn thì điều kiện là true
(A > B) là không đúng
< Kiểm tra n u toán h ng bên trái nhế ạ ỏ hơn toá
h ng bên ph i hay không N u nhạ ả ế ỏ hơn thì
true
(A < B) là true
>= Kiểm tra n u toán h ng bên trái có giá tr lế ạ ị ớ
hơn hoặc bằng giá trị của toán hạng bên ph
hay không Nếu đúng là true
(A >= B) là không đúng
<= Kiểm tra n u toán h ng bên trái có giá trế ạ ị n
hơn hoặc bằng giá trị của toán hạng bên ph
hay không Nếu đúng là true
(A <= B) là true
• Toán tử logic trong C#
Bảng dưới đây chỉ rõ tất cả các toán tử logic được hỗ trợ bởi ngôn ngữ C# Giả sử biến
A có giá trị 1 và biến B có giá trị 0:
Table 6 Toán tử logic trong C#
&& Được g i là toán t logic AND (và) N u c hai toáọ ử ế ả
t u có giá tr ử đề ị khác 0 thì điều ki n tr lên true ệ ở
(A && B) là false
Trang 14|| Được gọi là toán t logic OR (ho c) N u m t tronử ặ ế ộ
hai toán t ử khác 0, thì điều ki n là true ệ
(A || B) là true
! Được g i là toán t NOT (ph ọ ử ủ định) S dử ụng để đả
ngược l i tr ng thái logic c a toán hạ ạ ủ ạng đó Nếu điề
ki n toán h ng là true thì ph nh nó s là false.ệ ạ ủ đị ẽ
!(A && B) là true
• Toán tử gán trong C#
Table 7 Toán tử gán trong C#
bên ph i cho toán h ng trái ả ạ
C = A + B s gán giá trẽ ịcủa A + B vào trong C += Thêm giá tr toán h ng phị ạ ải tới toán h ng tạ
và gán giá tr ị đó cho toán hạng trái
C += A tương đương
v i C = C + A ớ
và gán giá tr này cho toán h ng trái ị ạ
C -= A tương đương với
C = C - A
*= Nhân giá trị toán hạng phải v i toán hớ ạng t
và gán giá tr này cho toán h ng trái ị ạ
C *= A tương đương
v i C = C * A ớ/= Chia toán h ng trái cho toán h ng ph i và gạ ạ ả
giá tr này cho toán h ng trái ị ạ
C /= A tương đương với
C = C / A
toán hạng ph i và gán cho toán h ng trái ả ạ
Trang 15• Toán tử so sánh bit trong C#
Toán tử so sánh bit làm việc trên đơn vị bit, tính toán biểu thức so sánh từng bit Bảng dưới đây về &, |, và ^ như sau:
Table 8 Toán tử so sánh từng bit
Trang 16Các toán tử so sánh bit được hỗ trợ bởi ngôn ngữ C# được liệt kê trong bảng dưới đây Giá sử ta có biến A có giá tri 60 và biến B có giá trị 13, ta có:
Table 9 Toán tử so sánh bit trong C#
kết quả ế n u nó t n t i trong c hai toán h ng ồ ạ ả ạ
(A & B) s cho k t qu ẽ ế ả
là 12, tức là 0000 1100
| Toán t OR (ho c) nh phân sao chép m t bit ử ặ ị ộ
k t qu n u nó t n t i trong m t ho c hai toáế ả ế ồ ạ ộ ặ
h ng ạ
(A | B) s cho k t qu làẽ ế ả
61, tức là 0011 1101
t n t i trong m t toán h ng mà không ph i ồ ạ ộ ạ ả
<< Toán t d ch trái Giá tr toán hử ị ị ạng trái được dịc
chuyển sang trái b i s ở ố các bit được xác định bở
toán hạng bên phải
A << 2 s cho k t quẽ ế ả
240, t c là 1111 0000ứ(dịch sang trái hai bit)
>> Toán t d ch ph i Giá tr toán hử ị ả ị ạng trái đượ
d ch chuy n sang ph i b i sị ể ả ở ố các bit được xá
định b i toán hạng bên phải ở
A >> 2 s cho k t qu làẽ ế ả
15, t c là 0000 1111ứ(dịch sang phải hai bit)
• Toán tử quan hệ trong C#
Dưới đây là một số toán tử hỗn hợp quan trọng gồm sizeof, typeof và ? : được hỗ trợ bởi ngôn ngữ C#
Table 10 Toán tử quan hệ trong C#
Trang 1712
sizeof() Trả v kích c c a m t ki u dề ỡ ủ ộ ể ữ
liệu
sizeof(int), trả v 4 ề
typeof() Trả v ki u cề ể ủa mộ ớt l p typeof(StreamReader);
& Trả v ề địa chỉ ủa mộ c t bi n ế &a; trả v ề địa chỉ thực s cự ủa biến
* Trỏ ớ t i m t biộ ến *a; t o con tr v i tên là a tạ ỏ ớ ới một biế
If (Ford is Car) // Ki m tra n u Ford lể ế
mộ ốt đ i tượng của lớp Car
StringReader r = obj as StringReade
• Thứ tự ưu tiên toán tử trong C#
Thứ tự ưu tiên toán tử trong C# xác định cách biểu thức được tính toán Ví dụ, toán tử nhân có quyền ưu tiên hơn toán tử cộng, và nó được thực hiện trước
Ví dụ: x = 7 + 3 * 2; ở đây, x được gán giá trị 13, chứ không phải 20 bởi vì toán tử *
có quyền ưu tiên cao hơn toán tử +, vì thế đầu tiên nó thực hiện phép nhân 3 * 2 và sau
đó thêm với 7
Bảng dưới đây liệt kê thứ tự ưu tiên của các toán tử Các toán tử với quyền ưu tiên cao nhất xuất hiện trên cùng của bảng, và các toán tử có quyền ưu tiên thấp nhất thì ở bên dưới cùng của bảng Trong một biểu thức, các toán tử có quyền ưu tiên cao nhất được tính toán đầu tiên
Table Thứ tự ưu tiên các toán tử 11