Tải bản đầy đủ (.pdf) (25 trang)

Bài giảng Chương 1: Tổng quan về lập trình cho máy tính điện tử - ThS. Phạm Thanh An

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.74 MB, 25 trang )

4/10/2012

Chương 1

Tổng quan về lập trình cho MTĐT
Giảng viên: ThS. Phạm Thanh An
Khoa công nghệ thông tin
Đại học Ngân hàng TP. Hồ Chí Minh

Nội dung trình bày








Khái niệm về chương trình, ngơn ngữ lập
trình, giải thuật
Giới thiệu về Top down Design
Mơ hình phát triển phần mềm
Các cách tiếp cận trong lập trình
Tổng quan về lập trình hướng đối tượng
Kiến trúc .NET Framework và C#
Viết các chương trình đơn giản

Chương trình
program - Là tập hợp các câu
lệnh (chỉ dẫn) được liệt kê theo một trình
tự nhất định nhằm giải quyết một vấn đề.


 Chương trình máy tính được viết trên
một ngơn ngữ lập trình.
 Theo Niklaus Wirth
 Computer

Chương trình = Cấu trúc dữ liệu + Giải thuật

1


4/10/2012

Giải thuật - Algorithm


Giải thuật (Thuật toán - Thuật giải)


Là dãy các câu lệnh (chĩ dẫn) chặt chẽ và
rõ ràng, xác định một trình tự các thao tác
trên một số đối tượng nào đó sao cho sau
một số hữu hạn bước thực hiện ta đạt được
kết quả mong muốn

Câu lệnh, chương trình, phần mềm
Software

Program 2

Program 1


Commands

Commands

Commands

Ngơn ngữ lập trình
Ngơn ngữ lập
trình là ngơn ngữ để viết chương trình.
 Ngơn ngữ lập trình bao gồm hệ thống
các ký hiệu, các qui ước về ngữ pháp và
ngữ nghĩa, dùng để xây dựng thành các
chương trình cho máy tính.
 Có nhiều loại ngơn ngữ lập trình.
 Programming language -

2


4/10/2012

Các lớp Ngơn ngữ lập trình
5GLs

Artificial intelligence

4GLs

ORACLE, SEQUEL, INGRES, ...


HIGH-LEVEL
LANGUAGES
ASSEMBLER LANGUAGES

ForTran, COBOL, C, C++,
LISP, Pascal, Java, ...
Hợp ngữ - Assembler

MACHINE CODE

Nguyên lý Von Neumann



Bao gồm 3 bước: Input –Process -Output

Các bước lập trình
Xác định u cầu
bài tốn
Phân tích bài tốn
Thiết kế Giải thuật
Cài đặt
Kiểm thử
Bảo trì và Cập nhật

3


4/10/2012


Mô tả giải thuật
 Ngôn ngữ

tự nhiên
 Sơ đồ khối (flow chart)
 Mã giả (Pseudocode)

Mô tả bằng ngôn ngữ tự nhiên



Input: Vào a, b thuộc tập R
Ra: Nghiệm phương trình ax + b =0
1.
2.

3.

Nhập 2 số thực a và b
Nếu a =0 thì
2.1. Nếu b = 0,
2.1.1. Phương trinh vơ số nghiệm
2.1.2. Kết thúc giải thuật
2.2. Ngược lại
2.2.1. Phương trình vơ nghiệm
2.2.2. Kết thúc giải thuật
Ngược lại
3.1. Phương trình có nghiệm
3.2. Giá trị nghiệm đó là x = -b/a

3.3. Kết thúc giải thuật

Bằng Sơ đồ khối (Flow Chart)
Begin, End : Bắt đầu, kết thúc

Data input/ out put : Vào ra dữ liệu

Condition expression: Lựa chọn, kiểm tra điều
kiện
Process : Xử lý
Flow line: Luồng xử lý

4


4/10/2012

Ví dụ: Cộng hai số

Ví dụ:
S TAR T

IN P U T n u m

r = n u m M OD 2

r = 0

D I S P L A Y "N u m b e r i s E v e n "


S TO P

Ví dụ:
S TA R T

IN P UT n um

r = num M O D 2

Yes

No
r =0

DISP L AY "N u mb er is E ve n"

D IS PL A Y " N um ber is O d d"

S TOP

5


4/10/2012

Bằng mã giả



Input: Vào a, b thuộc tập R

Ra: Nghiệm phương trình ax + b =0
If a = 0 then
Begin
If b = 0 then
Xuất “Phương trình vơ số nghiệm”
Else
Xuất “Phương trình vơ nghiệm”
End
Else
Xuất “Phương trình có nghiệm x = -b/a”

3 cấu trúc điều khiển cơ bản
 Trong lập

trình có 3 cấu trúc cơ bản

Tuần tự: các bước thực hiện tuần tự, từ
trên xuống, mỗi bước thực hiện đúng 1 lần
 Lựa chọn: chọn 1 trong 2 hay nhiều thao tác
để thực hiện
 Lặp: Một hay nhiều thao tác được lặp lại 1
hay nhiều lần.


Top-down Design
Top-Down Design là kỹ thuật trong chiến lược
chia để trị
 Các vấn đề phức tạp có thể được giải quyết
bằng kỹ thuật top-down design hay stepwise
refinement , với qui tắc








Chia bai toán lớn thành các bài tốn con
Tiếp tục chia các bài tốn con đó thành các bài
tốn con nhỏ
Tiếp tục q trình trên khi các bài tốn con có thể
giải quyết dễ dàng

6


4/10/2012

Các phase phát triển phần mềm
 Tìm hiểu

và phân tích yêu cầu

 Thiết kế
 Cài

đặt
thử
 Triển khai và Bảo trì hệ thống
 Kiểm


Mơ hình WaterFall

Mơ hình WaterFall (tt)
 Ưu điểm:



Thích hợp cho những dự án lớn.
Quản lý dự án sẽ dễ dàng và thuận tiện.

 Nhược điểm:

Thiếu sự trao đổi giữa người sử dụng và
nhóm phát triển.
 Khơng cho phép thay đổi nhiều theo các
đặc tả yêu cầu của hệ thống.


7


4/10/2012

Mơ hình xoắn ốc

Mơ hình xoắn ốc (tt)
Phát triển hệ thống nhanh, sửa lỗi đến khi hoàn thiện.
 Ưu điểm:




Linh hoạt trong việc thay đổi yêu cầu.

Nhược điểm:


Các pha bị lặp lại quá nhiều lần.

Tạo nguyên mẫu (prototype)
Tạo các nguyên mẫu cho người sử dụng dùng rồi tạo ra
hoàn thiện hệ thống
 Ưu điểm:




Linh hoạt trong việc thay đổi yêu cầu.
Rút ngắn thời gian phát triển.

Nhược điểm:


Khơng thích hợp trong dự án lớn.

8


4/10/2012


Các phương pháp lập trình


Lập trình tuần tự: Assembler (hợp ngữ)





Lập trình cấu trúc (thủ tục/hướng chức năng)






Chương trình quá dài, khó nhớ
Khó kiểm sốt lỗi
Chương trình chính được chia nhỏ thành các
chương trình con
Mỗi chương trình con thực hiện một cơng việc xác
định

Lập trình hướng đối tượng

Lập trình cấu trúc
Chương trình chính
main()

Hàm_1


Hàm_2

Hàm_4

Hàm_7

Hàm_3

Hàm_5

Hàm_8

Hàm_6

Hàm_9

So sánh HĐT và hướng chức năng
 Cách tiếp


cận hướng đối tượng

Hệ thống được xem là một tập hợp các đối
tượng cùng làm việc với nhau để
Các đối tượng thực hiện hành động khi được
yêu cầu
 Mỗi đối tượng duy trì dữ liệu riêng của nó



 Tiếp


cận thủ tục (Procedural approach)

Hệ thống được xem là một tập hợp các thủ
tục tương tác với dữ liệu


Dữ liệu tách rời các thủ tục

9


4/10/2012

So sánh HĐT và hướng chức năng

Tiếp cận hướng chức năng và tiếp cận hướng đối tượng



Khái niệm về hướng đối tượng
 Lớp
 Đối



(Classes)
tượng (Objects)


Attributes
Methods

 Trừu tượng

hóa dữ liệu
gói và che dấu thơng tin
 Kế thừa
 Đa hình
 Bao

Đối tượng
Dữ liệu

Hành vi

- Giây

- Tăng giây

- Phút

- Tăng phút

- Giờ

- Tăng giờ

Đối tượng = Dữ liệu + Hành vi


10


4/10/2012

Đối tượng (tt)
Thuộc tính

Hành vi

•Nhãn hiệu xe
•Màu xe

•Khởi động
•Chạy xe

•Cơng suất

•Dừng xe

•Giá

•Tắt máy

Trừu tượng hóa dữ liệu



Mơ tả bài tốn với những khía cạnh quan trọng nhất

Thu thập và phân tích các đối tượng liên quan, nắm
bắt các đặc trưng cơ bản nhất của chúng và xác định
rõ mối quan hệ giữa các đối tượng với nhau

Bao gói và che dấu thống tin
Lớp đối tượng

DonHang
int MaDH
int MaKH
Tinh_gia();
public:
TaoDH( )
CapnhatDH( )
GiatriDH( )

Bên ngoài
Các phương
thức chung của
đơn hàng

TaoDH
CapnhatDH
GiatriDH

11


4/10/2012


Kế thừa
Người

Sinh viên

Bác sĩ

Nhân viên

Đa hình

Mơi trường phần mềm trước đây
 Đối

với người phát triển ứng dụng

Luôn quan tâm tới hệ điều hành
 Luôn quan tâm tới công cụ, ngôn ngữ
 Bất lợi của DLL và đăng ký vào registry
 Phải xác định thiết bị truy cập
 Khơng tích hợp được các ngơn ngữ khác
nhau
 Khó khăn khi phát triển các ứng dụng phân
tán


12


4/10/2012


Môi trường phần mềm trước đây (tt)
 Đối

với người sử dụng

Bất lợi khi phải cài ứng dụng trên máy đơn
 Các trang web khơng tương tác với nhau


.NET framework











Tích hợp một số cơng nghệ đã có của Microsoft và
một số cơng nghệ mới nhằm tạo ra giao diện lập trình
mới
Sử dụng mã trung gian
Độc lập với hệ điều hành
Đa ngôn ngữ
Hướng đến ứng dụng Internet
Hỗ trợ WebService

Tốc độ phát triển ứng dụng nhanh
Ứng dụng độc lập với thiết bị client
Tháng 7/2000, Microsoft giới thiệu .Net

Kiến trúc của .Net framework
 Gồm hai

thành phần chính

NET common language runtime (CLR)
 .NET framework class library (FCL)


13


4/10/2012

Kiến trúc .Net framework
VB

C++

C#

J#



ASP .NET

Web Forms Web Services
ASP.NET Mobile Controls

Windows
Forms

ADO .NET: Data and XML
Base Class Library
Common Language Runtime

Visual Studio .NET

Common Language Specification

Operate System

Common Language Runtime - CLR


CLR (Common Language Runtime) là nền tảng
của .NET Framework.








Là công cụ thực thi mã trung gian (tựa JVM)

Biên dịch (Just-in-time compiler)
Thực thi mã nguồn
Quản lý bộ nhớ
Thưc thi luồng (Thread execution)
Xử lý lỗi (Error-handling)
Xác nhận mã nguồn an tồn và các hình thức
khác của việc chính xác mã nguồn (managed
code),

Framework Class Libraries - FCL
 Thư viện

lớp.NET Framework

Là một tập hợp hướng đối tượng của các
kiểu dữ liệu được dùng lại (các thư viên lớp
được đóng gói trước cho việc dùng lại),
khoảng 4000 lớp
 Được sử dụng bởi bất kỳ ngôn ngữ của
.NET
 Hầu hết các lớp được gom vào một không
gian tên gọi là System


14


4/10/2012

.NET framework

là tập hợp của nhiều ý tưởng
OOP

JVM

GUI

.NET

component-based
design

Web

n-tier design

.Net là đa ngôn ngữ
code.vb

code.cs

code.cpp

Development Tools

...

FCL

app.exe


.NET là đa ngôn ngữ (tt)
 .Net khơng

chỉ hỗ trợ một ngơn ngữ độc
lập, có thể là sự tích hợp ngơn ngữ trong
một ứng dụng
 Có nghĩa là chúng ta có thể xây dựng
một lớp kế thừa code từ các ngôn ngữ
hỗ trợ .NET khác nhau

15


4/10/2012

.Net là độc lập về hệ điều hành
 Các ứng

dụng trong Net chạy được trên
bất kỳ các nền tảng hỗ trợ
APP.exe

?
Win64

Win32
(XP,2K,98)

WinCE


Net là độc lập về hệ điều hành
VB

C++

C#



.NET
Compiler
Intermedia
Languge

CLR for
Linux

CLR for
Windows

CLR for Unix

Linux Native
code

Windows
Native code

Unix

Native code

.Net là độc lập về hệ điều hành


Thực thi ứng dụng độc lập về hệ điều hành
(Cross-platform) được hiểu theo 2 cách sau:


Các ứng dụng được viết dựa trên Framework Class
Library (FCL), khơng dựa trên OS



Trình biên dịch phát sinh ra ngôn ngữ chung được
thực thi bởi Common Language Runtime (CLR)

16


4/10/2012

Biên dịch trong .NET
Code in VB.NET

Code in C#

Code in another
.NET Language


VB.NET compiler

C# compiler

Appropriate
Compiler

IL(Intermediate
Language) code
CLR (Common Language Runtime)
just-in-time compilation

Biên dịch trong .NET (tt)
Các chương trình được viết bởi ngơn lập trình
được biên dịch vào ngôn ngữ trung gian (ILIntermediate Language), không phải là mã
máy (code machine)
 CLR biên dịch lại các mã trung gian (IL code)
vào mã máy tức thời khi thực thi chương
trình, just-in-time (JIT): khi hàm đuợc gọi
 Mã JIT tồn tại trong bộ nhớ cho các lần gọi
sau (nếu bộ nhớ cho phép).


Biên dịch trong .NET (tt)
Các mã trung gian là như nhau, dù được viết bởi
ngôn ngữ lập trình nào trong Net.
 Sản phẩm IL giống nhau, nên kết quả là một đối
tượng được tạo ra từ ngơn ngữ này có thể được
truy cập hay được dẫn xuất từ một đối tượng
của ngơn ngữ khác trong .NET.





Ví dụ, người phát triển có thể tạo một lớp cơ sở trong
VB.NET và sau đó dẫn xuất nó trong C# một cách dễ
dàng.

17


4/10/2012

Biên dịch trong .NET (tt)


Tại sao phải có 2 lần biên dịch


Độc lập với hệ điều hành





.NET framewwork có thể cài đặt trên nhiều platform
Các chương trình .NET được thực hiện mà khơng có thay
đổi code nào (viết 1 lần, chạy mọi nơi)

Độc lập về ngơn ngữ





Các chương trình .Net khơng bị trói buộc vào một ngơn
ngữ cụ thể nào cả
Các chương trình trong .Net có thể được viết bới các
ngôn ngữ trong Net

Thiết kế ứng dụng trong .Net
 Các ứng

dụng nguyên khối (Monolithic

app)


Tất cả source code được biên dịch vào 1
file .exe

APP.exe



Không phải là quy tắc trong windows

Thiết kế ứng dụng trong .Net (tt)
 Ứng

dụng dựa trên thành phần

(Component-based)


Component-based app: .EXE + 1 hay nhiều hơn
.DLLs
compute.dll
GUI.exe
data.dll



Đây là chuẩn thực tiễn trên windows

18


4/10/2012

Tại sao phải Component-based
 Lập trình

nhóm (team programming)

 Phát triển

ứng dụng đa ngôn ngữ (tôi dùng
C#, bạn dùng C++, cô ấy dùng VB.Net)

 Sử dụng lại


mã nguồn (code reuse)

 Nâng cấp độc

lập (nâng cấp thành phần X)

Các loại ứng dụng trong .NET
 Sử

dụng .Net để xây dựng các loại ứng
dụng sau
Ứng dụng Console
Ứng dụng giao diện GUI trên Windows
(Windows Forms)
 Ứng dụng web (ASP.NET)
 Dịch vụ web service (XML web)
 Ứng dụng trên Mobile



Các phiên bản của .Net
 .Net framework 1.0

– 2002
– 2003
 .Net framework 2.0 – 2005
 Net framework 3.5 – 2008
 .Net framework 1.1

19



4/10/2012

Assemblies
 Các ứng

dụng .Net được đóng gói vào
các phần gọi là assembly
 1 assembly = 1 hay nhiều lớp được biên
dịch, gồm một hay nhiều file nguồn



.exe mơ tả gói gồm các lớp với Main()
.Dll mơ tả gói gồm các lớp

Assemblies

code.vb
code.vb
code.cs

Development Tools

.EXE / .DLL

assembly

Cấu trúc chương trình C#


20


4/10/2012

Thực thi ứng dụng .Net


Client cần CLR & FCL để thực thi ứng
dụng .NET




Cài đặt Redistributable .NET Framework
20MB
Chạy trên nền 98 và trở lên, NT (sp6a) trở lên

Thực thi ứng dụng .Net
.DLL
.DLL
.DLL

Apps.EXE

OS Process

other FCL
assemblies


JIT Compiler

obj code
obj code
obj code
obj code

Core FCL
assembly

CLR

Underlying OS and HW

Giới thiệu về C#








C# được xây dựng trên nền tảng C++ và Java
Đơn giản hơn C++
Trình biên dịch C# là hiệu quả nhất trong họ ngôn ngữ
.NET
Là ngôn ngữ lập trình hướng đối tượng, đơn giản, an
tồn, ít từ khóa (80 từ khóa)

C# bao gồm tất cả những hỗ trợ cho cấu trúc, thành
phần component
C# phân biệt chữ hoa chữ thường
Giới thiệu vào 7/2000

21


4/10/2012

C# và các ngôn ngữ khác
 C#

mang sức mạnh của C++ với sự dễ
dàng của ngôn ngữ Visual Basic
 C# và các ngơn ngữ họ .Net biên dịch ra
IL cịn Java biên dịch ra bytecode (mã
trung gian), sau đó chúng được thực
hiện bằng cách thông dịch hoặc biên
dịch just-in-time trong từng máy ảo
tương ứng
 Phiên bản VB.NET ~ C#

Phát triển chương trình minh họa
using System;
class Hello {
static void Main( )
{
// Console from the System namespace
Console.WriteLine("Hello World");

}
}

Phát triển chương trình minh họa
 Có

tối thiểu là hai cách để soạn thảo,
biên dịch và thực thi chương trình:
Sử dụng mơi trường phát triển tích hợp
(IDE) Visual Studio .NET
 Sử dụng chương trình soạn thảo văn bản
bất kỳ như Notepad rồi dùng biên dịch dòng
lệnh.


22


4/10/2012

Biên dịch thành Assemblies
 Tạo một assembly từ một hay nhiều file nguồn

 Ví dụ : tạo một có tên assembly
“array.dll” từ file array1.cs:

Tạo file thực thi (Executables)
Tạo flie thực thi sử dụng chỉ dẫn /target:exe
:


 Ví dụ: tạo ra file array.exe từ file array1.cs

Tham chiếu một Assembly
Để tham chiếu một assembly, thêm /reference
khi biên dịch file thực thi:

Ví dụ: tạo ra array.exe từ file nguồn array1.cs
tham chiếu đến assembly có tên array2.dll:

23


4/10/2012

Biên dịch và chạy chương trình trình


Sử dụng trinh soạn thảo notepad và DOS
prompt
 Step 1 – gõ code trong Notepad
 Step 2 – lưu file với phần mở rộng là .cs
 Step 3 – Chuyển qua dấu nhắc DOS prompt
và gõ lệnh sau


csc <filename>.cs
Để chạy file C#, gõ tên file không phần mở rộng

Sử dụng IDE VS .NET


Sử dụng IDE VS .NET
 Tạo một ứng

dụng console

Xóa đối số (string[] args) trong phương thức
Main( ). Sau đó gõ dịng lệnh sau đây vao
thân của Main():
System.Console.WriteLine("Hello World");


 Dịch

chương trình : Build-> Build
Solution
 Chạy chương trình : Ctrl+F5 hoặc vào
debug -> start

24


4/10/2012

Tóm tắt


.Net là một nền tảng phát triển phần mềm












Đa ngôn ngữ
Độc lập với hệ điều hành
Sử dụng ngôn ngũ trung gian IL
Hướng đến các ứng dụng phân tán
Phát triển ứng dụng nhanh
Triển khai ứng dụng dễ dàng
An toàn
Hướng đối tượng
Dựa trên nền tảng component
CLR, FCL là nền tảng

Q&A

25


×