Lập trình máy tính
Gọi tắt là lập trình (programming).
Nghệ thuật cài đặt một hoặc nhiều thuật toán
trừu tượng có liên quan với nhau bằng một
ngôn ngữ lập trình để tạo ra một chương trình
máy tính.
Thuật toán
Là tập hợp (dãy) hữu hạn các chỉ thị (hành
động) được bố trí theo một trình tự xác định
được đề ra trước nhằm giải quyết một bài toán
cụ thể nào đó.
46 trang |
Chia sẻ: lylyngoc | Lượt xem: 1820 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Chương 1 Tổng quan về lập trình máy tính, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Tổng quan về lập trình máy tính
Chương 1:
Giảng viên: Ths. Nguyễn Thị Khiêm Hòa
1
Nội dung
Các khái niệm về lập trình máy tính 1
Các mô hình phát triển phần mềm 2
Các phương pháp tiếp cận trong lập trình 3
Tổng quan về lập trình hướng đối tượng 4
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Ngôn ngữ C# và nền tảng .NET 5
2
Các khái niệm lập trình
Các khái niệm cơ bản 1
Các bước xây dựng chương trình 2
Biểu diễn thuật toán 3
Cài đặt thuật toán bằng NNLT 4
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
3
Các khái niệm cơ bản
Lập trình máy tính
Gọi tắt là lập trình (programming).
Nghệ thuật cài đặt một hoặc nhiều thuật toán
trừu tượng có liên quan với nhau bằng một
ngôn ngữ lập trình để tạo ra một chương trình
máy tính.
Thuật toán
Là tập hợp (dãy) hữu hạn các chỉ thị (hành
động) được bố trí theo một trình tự xác định
được đề ra trước nhằm giải quyết một bài toán
cụ thể nào đó.
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
4
Các khái niệm cơ bản
Ví dụ
Thuật toán giải PT bậc nhất: ax + b = 0
(a, b là các số thực).
• Nếu a = 0
• b = 0 thì phương trình có nghiệm bất kì.
• b ≠ 0 thì phương trình vô nghiệm.
• Nếu a ≠ 0
• Phương trình có nghiệm duy nhất x = -b/a
Đầu vào: a, b thuộc R
Đầu ra: nghiệm phương trình ax + b = 0
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
5
Các tính chất của thuật toán
Bao gồm 5 tính chất sau:
Tính đúng đắn
Tính hữu hạn
Tính xác định
Tính khả thi
Tính phổ dụng
6
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Các bước xây dựng chương trình
Xác định vấn đề
- bài toán
Lựa chọn
phương pháp giải
Cài đặt
chương trình
Hiệu chỉnh
chương trình
Thực hiện
chương trình
Lỗi cú pháp
Lỗi ngữ nghĩa
Biểu diễn bằng:
• Ngôn ngữ tự nhiên
• Lưu đồ - Sơ đồ khối
• Mã giả
Xây dựng
thuật toán/ thuật giải
7
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Sử dụng ngôn ngữ tự nhiên
1. Nhập 2 số thực a và b.
2. Nếu a = 0 thì
2.1. Nếu b = 0 thì
2.1.1. Phương trình vô số nghiệm
2.1.2. Kết thúc thuật toán.
2.2. Ngược lại
2.2.1. Phương trình vô nghiệm.
2.2.2. Kết thúc thuật toán.
3. Ngược lại
3.1. Phương trình có nghiệm.
3.2. Giá trị của nghiệm đó là x = -b/a
3.3. Kết thúc thuật toán.
Đầu vào: a, b thuộc R
Đầu ra: nghiệm phương trình ax + b = 0
8 Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Sử dụng lưu đồ - sơ đồ khối
Khối giới hạn
Chỉ thị bắt đầu và kết thúc.
Khối vào ra
Nhập/Xuất dữ liệu.
Khối lựa chọn
Tùy điều kiện sẽ rẽ nhánh.
Khối thao tác
Ghi thao tác cần thực hiện.
Đường đi
Chỉ hướng thao tác tiếp theo.
9
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Sử dụng lưu đồ - sơ đồ khối
Bắt đầu
Đọc a,b
a = 0
Tính
x = -b/a
“Vô
nghiệm”
b = 0
“Vô số
nghiệm”
Kết thúc
Kết quả x
S Đ
Đ S
10
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Sử dụng mã giả
Vay mượn ngôn ngữ nào đó (ví dụ Pascal) để
biểu diễn thuật toán.
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”
Đầu vào: a, b thuộc R
Đầu ra: nghiệm phương trình ax + b = 0
11
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Sử dụng ngôn ngữ lập trình
Dùng một ngôn ngữ lập trình để thực hiện cài
đặt (C#).
12
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Các mô hình phát triển phần mềm
Mô hình thác nước (Waterfall model)
Mô hình thăm dò (Spiral model)
Tạo nguyên mẫu
Biến đổi hình thức
Tập hợp các thành phần dùng lại
13
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Mô hình thác nước
Ư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.
14
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Mô hình thăm dò
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.
15
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Tạo nguyên mẫu (prototype)
Phát triển hệ thống cho người sử dụng dùng rồi
tạo ra nguyên mẫu
Ư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.
16
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Các cách tiếp cận trong lập trình
Lập trình tuần tự: Assembler, basic
Chương trình quá dài, khó nhớ
Khó kiểm soát lỗi
17
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Các cách tiếp cận trong lập trình
Lập trình hướng cấu trúc
Ưu điểm
Phân chia chương trình thành các
module (Thủ tục, hàm)
Dùng lại các đoạn chương trình
Chương trình = CTDL + giải thuật
Nhược điểm
Thiếu sự nhất quán khi trao đổi thông
tin dùng chung
Tính tái sử dụng thấp
18
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Lập trình hướng đối tượng
(Object Oriented Programming – OOP)
Lập trình hướng đối tượng
Là phương pháp lập trình thực hiện việc hợp nhất thành
phần dữ liệu và thao tác thành một, cho phép chúng ta
định nghĩa một đối tượng (Object) theo cách mà chúng ta
nghĩ về thế giới quanh mình (data) và gắn các hành động
cụ thể trên đối tượng đó (Method).
Đối tượng (Object)
Mô tả một thực thể hay một quan hệ trong thế giới thực
Đối tượng = Dữ liệu + Hành vi
19
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Hành vi
- Tăng giây
- Tăng phút
- Tăng giờ
Dữ liệu
- Giây
- Phút
- Giờ
Lập trình hướng đối tượng
20
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Một số nguyên tắc cơ bản
Trừu tượng hóa (Abstraction)
Mô tả bài toán với những khía cạnh quan trọng nhất
21
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Một số nguyên tắc cơ bản
Trừu tượng hóa
Đơn hàng
Tạo đơn hàng
Cập nhật đơn hàng
Tổng giá trị
Những công việc
thực hiện trên đối
tượng đơn hàng
là gì?”
22
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Một số nguyên tắc cơ bản
Đóng gói (Encapsulation)
Là sự che giấu dữ liệu cấm truy xuất trực tiếp từ bên
ngoài mà phải thông qua giao diện người dùng nhắm bảo
vệ dữ liệu và tăng tính mềm dẻo cho hệ thống.
23
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Một số nguyên tắc cơ bản
Đóng gói (Encapsulation)
Các phương
thức chung của
đơn hàng
Lớp đối tượng Bên ngoài
TaoDH
CapnhatDH
GiatriDH
DonHang
int MaDH
int MaKH
Tinh_gia();
public:
TaoDH( )
CapnhatDH( )
GiatriDH( )
24
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Một số nguyên tắc cơ bản
Đóng gói (Encapsulation)
Hmm... muốn thay
đổi Tinh_Gia thành
TinhTongGia
GiatriDH() gọi phương
thức Tinh_gia()
DonHang
int MaDH
int MaKH
Tinh_gia();
public:
TaoDH( )
CapnhatDH( )
GiatriDH( )
25
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Một số nguyên tắc cơ bản
Đóng gói (Encapsulation)
GiatriDH() gọi phương
thức TinhTonggia()
DonHang
int MaDH
int MaKH
TinhTonggia();
public:
TaoDH( )
CapnhatDH( )
GiatriDH( )
Dễ thôi mà, không
ảnh hưởng đến
người dùng
26
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Một số nguyên tắc cơ bản
Kế thừa (Inherritance)
Là sự chia sẻ các thuộc tính (Data) và phương thức
(Method) của các lớp cơ sở trên quan niệm phân cấp
(Hierarchy) nhằm tăng mức độ trừu tượng hoá và
giảm sự trùng lắp thông tin.
Tăng tính tái sử dụng của hệ thống
27
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Một số nguyên tắc cơ bản
Phieukho
Phieunhapkho Phieuxuatkho Phieuxuatkho_
kiemvanchuyennoibo
Đơn hàng sử dụng
thông tin vận chuyển
(Kết hợp)
Phieunhapkho
và Phieuxuatkho
kế thừa từ
Phieukho
Kế thừa (Inherritance)
28
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Phát triển hệ thống hướng đối tượng
Kiến trúc n_Tier và n_Layer
Browsers
Data tier
Business tier
Web Server
Local clients
Presentation tier
Data
Business logic
Data Access
Web Server
GUI
Application Web
L
o
g
ic
a
l
v
ie
w
29
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Vai trò của các layer
GUI (Presentation) Layer: Nhập liệu và trình bày dữ liệu, có thể bao
gồm các bước kiểm tra dữ liệu trước khi gọi Business Logic
Layer.
Business Logic Layer: Kiểm tra các yêu cầu nghiệp vụ trước khi
cập nhật dữ liệu, quản lý các Transaction, quản lý các concurrent
access.
Data Access Layer: Kết nối CSDL, tìm kiếm, thêm, xóa, sửa,…trên
CSDL
30
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Tính chất mô hình 3_Layer
Giảm sự kết dính giữa các thực thể phần mềm
(decoupling)
Tái sử dụng
Chia sẻ trách nhiệm
31
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
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 đến hệ điều hành
Luôn quan tâm đến ngôn ngữ
Không tích hợp được những ngôn ngữ khác nhau
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ó khăn khi phát triển ứng dụng phân tán
Đối với người dùng
Bất lợi khi cài đặt ứng dụng
Các trang web không tương tác với nhau
32
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Nền tảng công nghệ .NET
33
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Multimedia: Giới thiệu Microsoft .Net
34
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Kiến trúc .NET framwork
35
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Kiến trúc .NET framwork
36
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Kiến trúc .NET framwork
VB C++ C# …
Intermediate
Languge
CLR for Linux CLR for
Windows
CLR for Unix
.NET Compiler
Linux Native code Windows Native
code
Unix
Native code
37
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Multimedia: Giới thiệu Microsoft .Net framework
38
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Tính năng của visual studio .NET
39
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Giới thiệu C#
Xây dựng dựa trên việc kế thừa C++ và Java
Dễ sử dụng hơn C++
Là ngôn ngữ hướng đối tượng
Ngôn ngữ đơn giản, an toàn, ít từ khóa (80 từ
khóa)
40
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Viết một ứng dụng trên Console
41
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Viết một ứng dụng trên Console
Viết đoạn mã sau:
using System;
class Hello
{
static void Main( )
{
//Console from the System namespace
Console.WriteLine("Hello World");
/* Use the system console object as
explained in the text */
Console.ReadLine();
}
}
42
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Viết một ứng dụng trên Console
Sau khi viết xong, nhấn Ctrl+F5 để chạy chương
trình
Cũng có thể soạn thảo trên Notepad, lưu file có
phần mở rộng là .cs, sau đó từ dấu nhắc DOS
command promt, gõ lệnh:
csc .cs
43
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Tóm tắt
Phát triển hệ thống hướng đối tượng
Khái niệm
Nguyên tắc
Kiến trúc 3-layer
44
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
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 (gồm CTS, CLS ), FCL là nền tảng
45
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
Q & A
46