Chương 1:
Tổng quan về lập trình máy tính
Giảng viên: Ths. Nguyễn Thị Khiêm Hòa
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
1
Nội dung
1
Các khái niệm về lập trình máy tính
2
Các mô hình phát triển phần mềm
3
Các phương pháp tiếp cận trong lập trình
4
Tổng quan về lập trình hướng đối tượng
5
Ngôn ngữ C# và nền tảng .NET
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
2
Các khái niệm lập trình
1
Các khái niệm cơ bản
2
Các bước xây dựng chương trình
3
Biểu diễn thuật toán
4
Cài đặt thuật toán bằng NNLT
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).
Đầu vào: a, b thuộc R
Đầu ra: nghiệm phương trình ax + b = 0
• 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
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
Tính
Tính
Tính
Tính
đúng đắn
hữu hạn
xác định
khả thi
phổ dụng
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
6
Các bước xây dựng chương trình
Xác định vấn đề
- bài toán
Biểu diễn bằng:
• Ngôn ngữ tự nhiên
• Lưu đồ - Sơ đồ khối
• Mã giả
Lựa chọn
phương pháp giải
Xây dựng
thuật toán/ thuật giải
Cài đặt
chương trình
Lỗi cú pháp
Lỗi ngữ nghĩa
Hiệu chỉnh
chương trình
Thực hiện
chương trình
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
7
Sử dụng ngôn ngữ tự nhiên
Đầu
Đầu
1.
2.
vào: a, b thuộc R
ra: nghiệm phương trình ax + b = 0
Nhập 2 số thực a và b.
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.
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
8
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.
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
9
Sử dụng lưu đồ - sơ đồ khối
Bắt đầu
Đọc a,b
Đ
S
a=0
Đ
S
Tính
x = -b/a
b=0
“Vô số
nghiệm”
“Vô
nghiệm”
Kết quả x
Kết thúc
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
10
Sử dụng mã giả
Vay mượn ngôn ngữ nào đó (ví dụ Pascal) để
biểu diễn thuật toán.
Đầu vào: a, b thuộc R
Đầu 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”
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
11
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#).
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
12
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
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
13
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.
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
14
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.
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
15
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.
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
16
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
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
17
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
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
18
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
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
19
Lập trình hướng đố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ờ
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
20
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
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
21
Một số nguyên tắc cơ bản
Trừu tượng hóa
Đơn hàng
Những công việc
thực hiện trên đối
tượng đơn hàng
là gì?”
Tạo đơn hàng
Cập nhật đơn hàng
Tổng giá trị
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
22
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.
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
23
Một số nguyên tắc cơ bản
Đóng gói (Encapsulation)
Lớp đối tượng
Bên ngoài
Các phương
thức chung của
đơn hàng
DonHang
int MaDH
int MaKH
Tinh_gia();
public:
TaoDH( )
CapnhatDH( )
GiatriDH( )
TaoDH
CapnhatDH
GiatriDH
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
24
Một số nguyên tắc cơ bản
Đóng gói (Encapsulation)
DonHang
Hmm... muốn thay
đổi Tinh_Gia thành
TinhTongGia
int MaDH
int MaKH
Tinh_gia();
public:
TaoDH( )
CapnhatDH( )
GiatriDH( )
GiatriDH() gọi phương
thức Tinh_gia()
Khoa Công nghệ Thông tin – Đại học Ngân hàng TP.HCM
25