You are on page 1of 16

Nguyễn 

Thanh Nhã 8/22/2019

Kỹ thuật Lập trình (CKT)
PROGRAMMING FOR ENGINEERINGS

TS. Nguyễn Thanh Nhã


Email: nhanguyen@hcmut.edu.vn
Phone: 0908.56.81.81

Department of Engineering Mechanics – HCMUT 2019

0. Giới thiệu môn học

1. Giới thiệu về máy tính và lập trình

2. Giới thiệu về ngôn ngữ Python

3. Các kiểu dữ liệu phổ biến

4. Các cấu trúc điều khiển

5. Các kỹ thuật tìm kiếm và sắp xếp

6. Các kỹ thuật xử lý ngoại lệ trong lập trình

7. Kỹ thuật lập trình hướng đối tượng trong Python

Department of Engineering Mechanics – HCMUT 2019

nhanguyen@hcmut.edu.vn 1
Nguyễn Thanh Nhã 8/22/2019

Chương 1

Giới thiệu về máy tính


và lập trình

Department of Engineering Mechanics – HCMUT 2019

Chương 1. Giới thiệu về máy tính và lập trình PROGRAMMING FOR ENGINEERS

Máy tính (Computer)


Máy tính là gì?

• Máy tính hay máy điện toán là những thiết bị hay hệ thống
thực hiện tự động các phép toán số học dưới dạng số hoặc
phép toán lôgic
 Các máy tính cỡ nhỏ thường gọi là máy vi tính, trong số
đó máy dùng cho cá nhân thường gọi là máy tính cá
nhân

• Máy tính được cấu tạo bởi các thành phần có thể thực hiện
các chức năng đơn giản đã định nghĩa trước. Nói cách khác,
máy tính hoạt động theo các chương trình đã được định sẵn

• Ngày nay, máy tính là thiết bị không thể thiếu trong mọi lĩnh
vực và đời sống hiện đại của nhân loại

Department of Engineering Mechanics – HCMUT 2019

nhanguyen@hcmut.edu.vn 2
Nguyễn Thanh Nhã 8/22/2019

Chương 1. Giới thiệu về máy tính và lập trình PROGRAMMING FOR ENGINEERS

Ứng dụng của máy tính

Department of Engineering Mechanics – HCMUT 2019

Chương 1. Giới thiệu về máy tính và lập trình PROGRAMMING FOR ENGINEERS

Ứng dụng của máy tính

Department of Engineering Mechanics – HCMUT 2019

nhanguyen@hcmut.edu.vn 3
Nguyễn Thanh Nhã 8/22/2019

Chương 1. Giới thiệu về máy tính và lập trình PROGRAMMING FOR ENGINEERS

Ứng dụng của máy tính

Department of Engineering Mechanics – HCMUT 2019

Chương 1. Giới thiệu về máy tính và lập trình PROGRAMMING FOR ENGINEERS

Máy tính (Computer) Các siêu máy tính

Department of Engineering Mechanics – HCMUT 2019

nhanguyen@hcmut.edu.vn 4
Nguyễn Thanh Nhã 8/22/2019

Chương 1. Giới thiệu về máy tính và lập trình PROGRAMMING FOR ENGINEERS

Máy tính (Computer) Các siêu máy tính

Department of Engineering Mechanics – HCMUT 2019

Chương 1. Giới thiệu về máy tính và lập trình PROGRAMMING FOR ENGINEERS

Cấu tạo của máy tính


Phần cứng (hardware)

Department of Engineering Mechanics – HCMUT 2019

nhanguyen@hcmut.edu.vn 5
Nguyễn Thanh Nhã 8/22/2019

Chương 1. Giới thiệu về máy tính và lập trình PROGRAMMING FOR ENGINEERS

Cấu tạo của máy tính


Phần cứng (hardware)
Nhóm xử lý

• CPU (Central Processing Unit – Bộ xử lý


trung tâm)

• Bo mạch chủ (mainboard/motherboard):

• Bộ nhớ RAM (Random Access Memory)

Department of Engineering Mechanics – HCMUT 2019

Chương 1. Giới thiệu về máy tính và lập trình PROGRAMMING FOR ENGINEERS

Cấu tạo của máy tính


Phần cứng (hardware)
Nhóm xử lý

• Ổ đĩa cứng (Hard Disk Drive – HDD)

• Ổ đĩa quang (CD, DVD)

• Card đồ hoạ (Video Graphic Array - VGA)

Department of Engineering Mechanics – HCMUT 2019

nhanguyen@hcmut.edu.vn 6
Nguyễn Thanh Nhã 8/22/2019

Chương 1. Giới thiệu về máy tính và lập trình PROGRAMMING FOR ENGINEERS

Cấu tạo của máy tính


Phần cứng (hardware)
Nhóm xử lý

• Card âm thanh (Audio card)

• Card mạng (Network card):

• Bộ nguồn (Power Supply Unit – PSU)

• Thùng máy (Case)

Department of Engineering Mechanics – HCMUT 2019

Chương 1. Giới thiệu về máy tính và lập trình PROGRAMMING FOR ENGINEERS

Cấu tạo của máy tính


Phần cứng (hardware)
Nhóm nhập dữ liệu
• Bàn phím máy tính (Keyboard)

• Chuột (Mouse)

• Máy scan (scanner)

Nhóm xuất dữ liệu


• Màn hình máy tính (Monitor)

• Máy in (Printer)

Department of Engineering Mechanics – HCMUT 2019

nhanguyen@hcmut.edu.vn 7
Nguyễn Thanh Nhã 8/22/2019

Chương 1. Giới thiệu về máy tính và lập trình PROGRAMMING FOR ENGINEERS

Cấu tạo của máy tính


Phần mềm (software)

• Gồm các chương trình cài đặt sẵn giúp vận hành máy tính
theo nhiều mục đích khác nhau.

• Hệ điều hành (operating system  ‐  OS) : cho phép quản lý và


khai thác tất cả phần cứng có trong máy tính

• Công cụ lập trình (programming tools) : cho phép người sử


dụng tạo ra thêm phần mềm mới trên máy, mở rộng phạm vi
ứng dụng của máy tính

• Phần mềm ứng dụng (applications) : cho phép khai thác máy
tính theo mục đích cụ thể.

Department of Engineering Mechanics – HCMUT 2019

Chương 1. Giới thiệu về máy tính và lập trình PROGRAMMING FOR ENGINEERS

Cấu tạo của máy tính


Hệ điều hành (Operate System - OS)

https://insights.stackoverflow.com/survey/2019#t
op-paying-technologies
Department of Engineering Mechanics – HCMUT 2019

nhanguyen@hcmut.edu.vn 8
Nguyễn Thanh Nhã 8/22/2019

Chương 1. Giới thiệu về máy tính và lập trình PROGRAMMING FOR ENGINEERS

Hệ đếm trong máy tính


Hệ thập phân (Decimal system)

• Hệ thập phân (hay còn gọi là hệ đếm cơ số 10) dùng 10 ký tự


(0,1,2,3,4,5,6,7,8,9) để biểu đạt giá trị số.
• Các con số này được dùng với dấu phân cách thập phân – để
định vị phần thập phân sau hàng đơn vị.
• Ngoài ra còn được dùng với dấu “+” hoặc “–” để biểu đạt giá
trị “dương” hoặc “âm”

Số thập phân có dạng: A  an an 1an 2 ...a0 .a1a2 ...a m


Giá trị A được tính:
A  an 10n  an 110n 1  an 210n 2...  a0100  a1101  a2102...  a m 10 m

VD: B = 150.12  B  1  102  5  101  0  100  1  10 1  2  10 2


Department of Engineering Mechanics – HCMUT 2019

Chương 1. Giới thiệu về máy tính và lập trình PROGRAMMING FOR ENGINEERS

Hệ đếm trong máy tính


Hệ nhị phân (Binary system)

• Hệ nhị phân (hay còn gọi là hệ đếm cơ số 2) là hệ đếm dùng


2 ký tự (0,1) để biểu đạt giá trị số.
• Các mạch điện tử sẽ phát hiện sự khác nhau giữa 2 trạng
thái (dòng điện mức cao và mức thấp) và biểu diễn các trạng
thái đó dưới dạng một trong hai số nhị phân 1 hoặc 0.
• Việc chế tạo mạch điện tin cậy có thể phân biệt được sự khác
nhau giữa 0 và 1 là tương đối dễ dàng và rẻ tiền nên máy
tính chủ yếu tính toán dựa trên hệ nhị phân

Số nhị phân có dạng: A  an an 1an 2 ...a0 .a1a2 ...a m


Giá trị A được tính:
A  an 2 n  an 1 2 n 1  an 2 2 n 2...a0 20  a1 2 1  a2 2 2...  a m 2  m
Department of Engineering Mechanics – HCMUT 2019

nhanguyen@hcmut.edu.vn 9
Nguyễn Thanh Nhã 8/22/2019

Chương 1. Giới thiệu về máy tính và lập trình PROGRAMMING FOR ENGINEERS

Hệ đếm trong máy tính


Hệ nhị phân (Binary system)

Ví dụ: Chuyển số hệ nhị phân 10110101.10100110 sang số hệ


thập phân

10110101.10100110 =
1×27+0x26+1×25+1×24+0x23+1×22+0x21+1×20+1×2-1+0x2-2+1×2-
3+0x2-4+0x2-5+1×2-6+1×2-7+0x2-8 = 181.6484375

Kết luận:
10110101.101001102=181.648437510

Department of Engineering Mechanics – HCMUT 2019

Chương 1. Giới thiệu về máy tính và lập trình PROGRAMMING FOR ENGINEERS

Hệ đếm trong máy tính


Hệ nhị phân (Binary system)

Ví dụ: Chuyển số thập phân 156 sang số hệ nhị phân


Dùng phương pháp chia 2 lấy phần dư

Phần dư
156 78 0 Kết luận:
78 39 0 15610=100111002
39 19 1
19 9 1
9 4 1
4 2 0
2 1 0
1 1 1
Department of Engineering Mechanics – HCMUT 2019

nhanguyen@hcmut.edu.vn 10
Nguyễn Thanh Nhã 8/22/2019

Chương 1. Giới thiệu về máy tính và lập trình PROGRAMMING FOR ENGINEERS

Hệ đếm trong máy tính


Hệ bát phân (Octal system)

• Hệ bát phân (hay còn gọi là hệ đếm cơ số 8) dùng các 8 ký tự


(0,1,2,3,4,5,6,7) để biểu đạt giá trị số.
Số bát phân có dạng: A  an an 1an 2 ...a0 .a1a2 ...a m
Giá trị A được tính:
A  an 8n  an 18n 1  an 2 8n 2...a0 80  a181  a2 82...  a m 8 m

Ví dụ: Chuyển số hệ bát phân 1503 sang số hệ thập phân

1503 = 1×83+5×82+0x81+3×80=835

Kết luận: 15038=83510


Department of Engineering Mechanics – HCMUT 2019

Chương 1. Giới thiệu về máy tính và lập trình PROGRAMMING FOR ENGINEERS

Hệ đếm trong máy tính


Hệ thập lục phân (Hexadecimal system)

• Hệ thập lục phân (hay còn gọi là hệ đếm cơ số 16) dùng 16


ký tự (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F) để biểu đạt giá trị số.

Ví dụ: Chuyển số hệ thập lục phân 97 sang số hệ thập phân

97 = 9×161+7×160 = 151 Kết luận: 9716 = 15110

Ví dụ: Chuyển số hệ thập lục phân 1AF sang số hệ thập phân

1AF = 1×162+10×161+15×160 = 431

Kết luận: 1AF16 = 43110


Department of Engineering Mechanics – HCMUT 2019

nhanguyen@hcmut.edu.vn 11
Nguyễn Thanh Nhã 8/22/2019

Chương 1. Giới thiệu về máy tính và lập trình PROGRAMMING FOR ENGINEERS

Phép toán luận lý trong máy tính


Mệnh đề logic

• Mệnh đề logic là câu nói hoặc câu viết có tính chất khẳng
định hoặc phủ định một sự kiện
• Mỗi mệnh đề logic đều có thể đặt được câu hỏi có đúng
không hoặc có sai không

Ví dụ:
Mặt trời mọc ở hướng đông  mệnh đề đúng
Năm chia hết cho hai  mệnh đề sai

Tèo là sinh viên  mệnh đề đơn


Tôi là nam giới và vợ tôi là nữ giới  mệnh đề kép

Department of Engineering Mechanics – HCMUT 2019

Chương 1. Giới thiệu về máy tính và lập trình PROGRAMMING FOR ENGINEERS

Phép toán luận lý trong máy tính


Các toán tử luận lý cơ bản
Toán tử NOT (phủ định) Toán tử AND (VÀ)
X NOT X X Y X AND Y
TRUE FALSE TRUE TRUE TRUE
FALSE TRUE FALSE TRUE FALSE
TRUE FALSE FALSE
FALSE FALSE FALSE

Toán tử OR (HOẶC) Toán tử XOR (LOẠI TRỪ)


X Y X OR Y X Y X AND Y
TRUE TRUE TRUE FALSE FALSE FALSE
FALSE TRUE TRUE FALSE TRUE TRUE
TRUE FALSE TRUE TRUE FALSE TRUE
FALSE FALSE FALSE TRUE TRUE FALSE
Department of Engineering Mechanics – HCMUT 2019

nhanguyen@hcmut.edu.vn 12
Nguyễn Thanh Nhã 8/22/2019

Chương 1. Giới thiệu về máy tính và lập trình PROGRAMMING FOR ENGINEERS

Cấu tạo của máy tính


Sơ đồ khối máy tính

• Để điều khiển các


thiết bị phần
cứng, cần
chương trình
máy tính

• Để tạo ra chương
trình máy tính, cần
ngôn ngữ
lập trình
Department of Engineering Mechanics – HCMUT 2019

Chương 1. Giới thiệu về máy tính và lập trình PROGRAMMING FOR ENGINEERS

Ngôn ngữ lập trình (programming language)

• Là một ngôn ngữ cho phép con người (lập trình viên) tạo ra
chương trình máy tính, 

 NNLT là ngôn ngữ hình thức (formal language), khác với


ngôn ngữ tự nhiên (natural language)

• Các cấp độ ngôn ngữ lập trình

 Ngôn ngữ máy (machine language)


 Ngôn ngữ hợp ngữ (assembly language)
 Ngôn ngữ cấp cao (high-level language)

Department of Engineering Mechanics – HCMUT 2019

nhanguyen@hcmut.edu.vn 13
Nguyễn Thanh Nhã 8/22/2019

Chương 1. Giới thiệu về máy tính và lập trình PROGRAMMING FOR ENGINEERS

Ngôn ngữ lập trình (programming language)


Phân loại ngôn ngữ lập trình
Ngôn ngữ máy
 Ngôn ngữ máy là một tập các chỉ thị (mã nhị phân) được
CPU của máy tính trực tiếp thực thi. Mỗi chỉ thị thực hiện
một chức năng xác định.
 Tất cả các chương trình được thực thi trực tiếp bởi CPU
đều là các chuỗi các chỉ thị này.
 Hiện nay, hầu như tất cả các chương trình máy tính trong
thực tế đều được viết bằng các ngôn ngữ bậc cao hay (đôi
khi) hợp ngữ, và sau đó được dịch thành mã máy thực thi
bằng các công cụ phụ trợ như trình biên dịch, trình hợp
dịch hay trình liên kết
 Ví dụ: 00000101

Department of Engineering Mechanics – HCMUT 2019

Chương 1. Giới thiệu về máy tính và lập trình PROGRAMMING FOR ENGINEERS

Ngôn ngữ lập trình (programming language)


Phân loại ngôn ngữ lập trình
Ngôn ngữ Assembly (hợp ngữ)
 Hợp ngữ là phiên bản gần hơn với ngôn ngữ tự nhiên của
ngôn ngữ máy, sử dụng các ký hiệu dễ nhớ (từ viết tắt trong
tiếng Anh) để thể hiện các chỉ thị mã máy, thay vì sử dụng
trực tiếp các chuỗi nhị phân
 Bộ chuyển ngữ (sang mã máy) cho ngôn ngữ này là
“Assembler”.
 Ngày nay, ngôn ngữ này vẫn còn được sử dụng, và thường
kết hợp với ngôn ngữ cấp cao. Nó được dùng để tối ưu một
số khối xử lý trong toàn bộ chương trình.
 Ví dụ:
• LOAD BASEPAY
• ADD OVERPAY
Department of Engineering Mechanics – HCMUT 2019

nhanguyen@hcmut.edu.vn 14
Nguyễn Thanh Nhã 8/22/2019

Chương 1. Giới thiệu về máy tính và lập trình PROGRAMMING FOR ENGINEERS

Ngôn ngữ lập trình (programming language)


Phân loại ngôn ngữ lập trình
Ngôn ngữ cấp cao
 Ngôn ngữ cấp cao dùng các lệnh có cấu trúc gần với ngôn
ngữ thông thường hơn ngôn ngữ máy.
 Tên các biến, hằng, hàm, etc do người lập trình đặt có cú
pháp dễ đọc. Các cấu trúc điều khiển cũng dễ đọc hơn rất
nhiều
 Bộ chuyển ngữ (sang mã máy hay mã trung gian) cho loại
ngôn ngữ này là bộ biên dịch (compiler) hay thông dịch
(interpreter)
 Ví dụ:
x = 3;
if (x==1) {y = x;}
else {y = x + 3;}
Department of Engineering Mechanics – HCMUT 2019

Chương 1. Giới thiệu về máy tính và lập trình PROGRAMMING FOR ENGINEERS

Ngôn ngữ lập trình (programming language)


Phân loại ngôn ngữ lập trình
Ngôn ngữ cấp cao
 Sơ đồ mô tả việc chuyển từ ngôn ngữ cấp cao sang ngôn
ngữ máy

Department of Engineering Mechanics – HCMUT 2019

nhanguyen@hcmut.edu.vn 15
Nguyễn Thanh Nhã 8/22/2019

Chương 1. Giới thiệu về máy tính và lập trình PROGRAMMING FOR ENGINEERS

Ngôn ngữ lập trình (programming language)


Phân loại ngôn ngữ lập trình
Ngôn ngữ cấp cao
Các ngôn ngữ cấp cao phổ biến hiện nay:
• C; C++; C#
• Java; JavaScript
• Python
• PHP
• Visual Basic
• Cobol
• Perl
• R
• Swift
Department of Engineering Mechanics – HCMUT 2019

Chương 1. Giới thiệu về máy tính và lập trình PROGRAMMING FOR ENGINEERS

Ngôn ngữ lập trình (programming language)


Phân loại ngôn ngữ lập trình
Top ngôn ngữ lập trình phổ biến 2019

https://insights.stackoverflow.com/survey/2019#top-paying-technologies
Department of Engineering Mechanics – HCMUT 2019

nhanguyen@hcmut.edu.vn 16

You might also like