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à Java
2.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 để “trau 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 “ConsoleApplication”
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 : “WindowsApplication”
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
number1 45
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
Toán tử C# Toán tử số học
Biểu thức đại số
Biểu thức C#
Cộng
+
f + 7
f + 7
Trừ
–
p – c
p - c
Nhân
*
bm
b * m
Chia
/
x / y or
x / y
Modul
%
r mod s
r % s
Bảng toán tử số học.
Toán tử Toán tử Order of evaluation (prec edenc e)
( )
Ngoặc
Thực hiện đầu tiên.Nếu các cặp ngoặc lồng
vào nhau,thứ tự tính từ trong ra ngoài,còn nếu
có vài cặp ngoặc ngang nhau(nghĩa là khô
ng
lồng nhau),chúng được tính từ trái sang phải
*, / or %
Nhân
Chia
Modul
Thực hiện thứ hai.Nếu có nhiều toán tử kiểu
này thì chúng được thực hiện từ trái qua phải
+ or -
Cộng
Trừ
Thực hiện cuối cùng.Nếu có nhiều toán tử
loại này thì thực hiện theo thứ tự từ trái
sang
phải
Bảng thứ tự thực hiện các toán tử số học
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!
Có hai dòng chú thích
đơn.Chúng bị trình biên dịch bỏ
qua và chỉ dùng để giúp người
lập trình khác.Dùng ký hiệu (//)
Đây là cách dùng trực tiếp cho
compiler biết nó nên chứa
không gian tên System .
Dòng trống không có ý nghĩa gì
với compiler và chỉ dùng để tăng
tính rõ ràng cho chương trình
Bắt đầu định nghĩa lớp Welcome1 với
từ khoá class theo sau là tên lớp
Đây là cách bắt đầu phương
thức Main.Trong trường hợp
này nó chỉ thị cho chương trình
làm mọi thứ
Đây là chuỗi ký tự mà
Console.WriteLine chỉ thị cho
compiler đưa ra
Welcome1.cs
Đầu ra