You are on page 1of 69

KỸ THUẬT LẬP TRÌNH

Trường Đại học Bách khoa TPHCM


Hệ đào tạo từ xa
Khoa Khoa học và Kỹ thuật Máy tính

Trần Giang Sơn


tgson@cse.hcmut.edu.vn

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Giới thiệu môn học
 Cung cấp kiến thức và kỹ năng căn bản về lập trình
 Ngôn ngữ sử dụng là C#
 Kết quả của môn học:
 Phát triển giải thuật để giải quyết các vấn đề học thuật
 Sử dụng thành thạo các kỹ thuật lập trình có cấu trúc
 Nắm được ý tưởng của phương pháp luận lập trình
 Sử dụng thành thạo các cấu trúc điều khiển và kiểu dữ liệu trong C#
 Hiện thực một giải thuật cụ thể bằng ngôn ngữ C#

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 2
Chương 1

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

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Nội dung
 Tổng quan về máy tính
 Ngôn ngữ lập trình
 Internet
 Quy trình phát triển phần mềm
 Giải thuật
 Hệ đếm
 RAM

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 4
Sự ra đời của máy tính
 Vào những năm 1940, đại học Harvard Mark I cho ra đời
máy tinh Mark I. Đây là máy tính cơ điện, có thiết bị cơ khí
và thiết bị điện.
 Năm 1946, đại học Pennsylvania nghiên cứu chế tạo máy
“Tích phân số điện tử và máy tính” (Electronic Numerical
Integrator and Computer), viết tắt là ENIAC.
 Vào những năm 1950, máy tính chủ yếu của IBM
(International Business Machines) và CDC (Control Data
Corporation)

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 5
Sự ra đời của máy tính

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 6
Sự ra đời của máy tính
 Sử dụng 17,468 ống chân không (vacuum tubes), 70 nghìn
điện trở, 10 nghìn tụ điện, 6 nghìn công tắc, 1500 rờ le, khi
vận hành tiêu tốn 140 kW.
 Nặng 27 tấn, Kích thước 1 x 2.6 x 24 (mét)
 Sử dụng thẻ đục lỗ (punched card) để nhập thông tin
 Được chế tạo với mục đích để lập bảng pháo kích, sau đó
được sử dụng trong tính toán khoa học
 Thực hiện được 5000 phép cộng, 500 phép nhân trong 1
giây
 William Shanks (1812 – 1882) dùng cả cuộc đời để tính
707 chữ số của số PI, ENIAC chỉ mất 40 giây

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 7
Sự ra đời của máy tính

Ống chân không Transistor


Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình
Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 8
Sự ra đời của máy tính

Mạch tích hợp

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 9
Sự ra đời của máy tính

Thẻ đục lỗ

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 10
Máy tính là gì?
 Máy tính là thiết bị có thể thực hiện phép tính số học và
luận lý gấp triệu, tỷ, thậm chí nghìn tỷ lần nhanh hơn con
người.
 Con người mất cả đời để tính được lượng phép tính máy tính thực
hiện trong một giây !!!
 Máy tính xử lý dữ liệu, nhờ các mệnh lệnh được gọi là
chương trình máy tính.
 Người viết ra các lệnh để chương trình máy tính chỉ dẫn
máy tính thực thi gọi là lập trình viên máy tính.
 Ngôn ngữ dùng để tạo ra chương trình máy tính là ngôn
ngữ lập trình.

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 11
Phần cứng và phần mềm
 Máy tính gồm các thiết bị khác nhau gọi là phần cứng
 Bàn phím, màn hình, chuột, ổ cứng, bộ nhớ, DVD, ...
 Những chương trình chạy trên máy tính được gọi là phần
mềm
 Chương trình xử lý văn bản, email, game,...

Nguồn: Website DELL


http://www.dell.com/us/en/df
b/notebooks/precn_m6300/p
d.aspx?refid=precn_m6300&
cs=28&s=dfb

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 12
Tổ chức máy tính
 Đơn vị ngõ nhập
 Đơn vị ngõ xuất
 Đơn vị bộ nhớ chính
 CPU
 Đơn vị lưu trữ thứ cấp

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 13
Tổ chức máy tính

1. Monitor
2. Motherboard
3. CPU
4. RAM
5. Expansion cards
6. Power supply
7. Optical disc drive
8. Hard disk drive
9. Keyboard
10. Mouse

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 14
Tổ chức máy tính
CPU

Control
Unit

Input Output

Arithmetic
and Logic
Unit

Memory
RAM/ROM

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 15
Đơn vị ngõ nhập và ngõ xuất
 Đơn vị ngõ nhập (Input Unit)
 Thu thập thông tin từ các thiết bị ngõ nhập để các đơn vị khác sử
dụng
 Bàn phím, chuột, micro, máy scan, webcam,...
 Đơn vị ngõ xuất (Output Unit)
 Lấy thông tin đã được máy tính xử lý để đưa ra các thiết bị ngõ
xuất để sử dụng bên ngoài máy tính
 Hiển thị trên màn hình, in ra giấy, tải lên Internet
 Dùng cho các thiết bị khác, như điều khiển robot trong sản xuất

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 16
Tổ chức máy tính
CPU

Control
Unit

Input Output

Arithmetic
and Logic
Unit

Memory
RAM/ROM

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 17
Đơn vị bộ nhớ chính (Memory Unit)
 “Kho” truy cập nhanh, dung lượng nhỏ để lưu trữ mã máy
và dữ liệu tạm khi ứng dụng đang chạy.
 Lưu thông tin được nhập từ thiết bị ngõ vào để xử lý ngay
khi cần
 Giữ thông tin cho đến khi có thể gửi ra thiết bị ngõ ra
 Gọi tắt là bộ nhớ hoặc bộ nhớ chính.
 RAM (random-access memory – bộ nhớ truy cập ngẫu nhiên),
bị xóa khi tắt máy
 ROM (read-only memory – bộ nhớ chỉ đọc), không bị xóa khi tắt
máy

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 18
Tổ chức máy tính
CPU

Control
Unit

Input Output

Arithmetic
and Logic
Unit

Memory
RAM/ROM

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 19
CPU
 Đơn vị xử lý trung tâm (Central Processing Unit – CPU)
 Đơn vị điều hành của máy tính, điều khiển hoạt động của các đơn vị
khác
 Yêu cầu nhập thông tin, tính toán và yêu cầu xuất thông tin
 Bao gồm ALU
 Máy tính ngày nay thường có nhiều hơn một CPU
 Đơn vị số học và luận lý (Arithmetic Logic Unit – ALU)
 ALU thực hiện các phép tính
 VD: cộng, so sánh, ...
Vi xử lý 80486 của Intel
License: CC-BY-SA-3.0
Uberpenguin@en.wiki

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 20
Đơn vị lưu trữ thứ cấp
 Được dùng làm nơi lưu trữ lâu dài dữ liệu và chương trình
chưa thực thi, thường có dung lượng lớn
 Ổ cứng, đĩa CD-ROM, DVD, đĩa flash USB,...
 Lưu giữ chương trình và dữ liệu chưa thực thi
 Không bị mất đi khi ngắt điện thiết bị

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 21
Hệ điều hành (Operating System – OS)

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 22
Hệ điều hành (Operating System – OS)
 Là phần mềm quản lý mọi tài nguyên phần cứng máy tính
và cung cấp dịch vụ cho các phần mềm khác

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 23
Hệ điều hành (Operating System – OS)

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 24
Hệ điều hành (Operating System – OS)

Mac OS by Apple Computer

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 25
Hệ điều hành (Operating System – OS)

Ubuntu, desktop Linux distribution

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 26
Hệ điều hành (Operating System – OS)

Android, a popular mobile


operating system using the
Linux kernel
Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình
Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 27
Ngôn ngữ lập trình
 Ngôn ngữ máy
 Ngôn ngữ assembly
 Ngôn ngữ cấp cao

Hello! Здравствуите Ngôn ngữ máy

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 28
Ngôn ngữ lập trình

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 29
Ngôn ngữ máy
 Ngôn ngữ máy là loại ngôn ngữ cấp thấp nhất của máy tính
 Gồm các dãy số 0 và 1 để yêu cầu phần cứng thực hiện
những tác vụ cơ bản nhất (nhị phân)
 Phần cứng khác nhau có ngôn ngữ máy khác nhau
 Ví dụ: cộng tiền lương và thưởng
00101010 000000000001 000000000010
10011001 000000000010 000000000011
10010000 000000001011 000000010001
 Mỗi lệnh gồm
 Phần mã lệnh: nói cho máy tính biết làm gì
 Phần địa chỉ: lấy dữ liệu ở đâu để tính toán

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 30
Ngôn ngữ Assembly
 Ngôn ngữ Assembly cũng có cùng chức năng như ngôn
ngữ máy, nhưng dùng tên cho mã lệnh và toán hạng thay
vì chỉ 0 và 1
LOAD LUONGCB
ADD NGOAIGIO
STORE THUCLINH

 Chương trình viết bằng ngôn ngữ Assembly phải được


dịch bằng assembler sang chương trình mã máy trước khi
được máy tính thực thi

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 31
Ngôn ngữ lập trình cấp cao
 Ngôn ngữ lập trình cấp cao (high-level programming
languages) sử dụng các câu lệnh dễ hiểu hơn để viết nên
chương trình.
 Chương trình viết bằng ngôn ngữ cấp cao phải được dịch
sang ngôn ngữ máy bằng trình biên dịch.
 Ngôn ngữ cấp cao viết các lệnh giống như viết câu trong
tiếng Anh, dùng ký hiệu toán học.
thucLinh = luongCoBan + luongNgoaiGio

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 32
Ngôn ngữ lập trình cấp cao
Mã mẫu Bộ dịch Từ lập trình viên Từ máy tính

Ngôn ngữ 10010100001 Không Chậm, chán, dễ lỗi Ngôn ngữ tự


Máy 11011001001 nhiên, ngôn ngữ
10001010011 duy nhất có thể
hiểu trực tiếp

Ngôn ngữ LOAD LUONGCB Assembler Viết tắt giống tiếng Assembler
assembly ADD NGOAIGIO Anh, dễ hiểu hơn chuyển ngôn
STORE THUCLINH ngữ assembly
sang mã máy
để máy hiểu

Ngôn ngữ thucLinh = Trình biên dịch Mệnh lệnh giống Trình biên dịch
cấp cao luongCoBan + tiếng Anh; mỗi câu chuyển ngôn
luongNgoaiGio lệnh thực hiện một ngữ cấp cao
tác vụ thành ngôn ngữ
máy

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 33
Trình biên dịch và Trình thông dịch

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 34
Ngôn ngữ lập trình phổ biến
 BASIC được phát triển vào giữa những năm 1960 dùng để
dạy kỹ thuật lập trình cơ bản cho người mới học
 Microsoft giới thiệu Visual Basic vào năm 1991 để dễ lập
trình các ứng dụng có giao diện của Windows
 C do Dennis Ritchie sáng chế vào năm 1973, là ngôn ngữ
để phát triển nên hệ điều hành UNIX
 C++ được Bjarne Stroustrup phát triển vào đầu thập niên
1980, bổ sung nhiều tính năng mới cho C, đặc biệt là lập
trình hướng đối tượng (OOP).
 Java do Sun Microsystems giới thiệu vào năm 1995, dùng
cho máy chủ, thiết bị di động, ứng dụng web,...

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 35
C#
 Microsoft giới thiệu ngôn ngữ lập trình C# vào năm 2000
 Được thiết kế để chạy trên .NET platform
 Phù hợp để viết ứng dụng đa nền tảng
 Máy tính, thiết bị di động, ứng dụng web
 Ảnh hưởng từ C, C++ và Java
 Có thư viện xây dựng sẵn phong phú

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 36
.NET Framework
 .NET (dot net) ra đời vào năm 2000
 Giảm khối lượng công việc khi xây dựng chương trình
 Cho phép hợp nhất hai kiến trúc: chương trình chạy trên
máy đơn và chương trình chạy trên mạng
 Đơn giản hóa việc lập trình.
 Cho phép sử dụng nhiều ngôn ngữ khác nhau trong một
chương trình
 Sản phẩm có thể sử dụng cho máy tính cá nhân, điện thoại
di động, PDA

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 37
.NET Framework
 .NET là môi trường lập trình hướng đối tượng
 Đối tượng là tập các lệnh (hoặc số liệu) mà có thể xây
dựng hoặc mua một lần nhưng được sử dụng nhiều lần
 Tránh viết lại mã khi sử dụng nhiều lần
 Cho phép mua những chức năng. Từ đó có thể tiết kiệm
thời gian xây dựng ứng dụng
 Không cần quan tâm đến hoạt động bên trong, tập trung sự
quan tâm vào bức tranh tổng thể của ứng dụng
 Đối tượng .NET được chuẩn hóa, giúp cho lập trình viên có
thể dễ dàng sử dụng.
 Đối tượng có thể được viết bằng bất cứ ngôn ngữ nào
được .NET hỗ trợ
Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình
Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 38
.NET Framework

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 39
.NET Framework
 MS Intermediate Language (MSIL): tất cả mã nguồn đều
phải được biên dịch thành ngôn ngữ MSIL.
 Common Language Runtime (CLR): thực hiện mã MSIL
 Thư viện lớp của .NET: chứa rất nhiều lớp với nhiều chức
năng khác nhau.
 Ngôn ngữ .NET: có thể lập trình bằng nhiều ngôn ngữ khác
nhau như C#, VB.NET v.v.

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 40
.NET Framework

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 41
.NET Framework
Mã nguồn  MSIL  CLR
 MSIL: là một dạng mã trung gian, đã được tối ưu hóa

nhưng chưa gắn vào một máy tính cụ thể nào, có thể sử
dụng cho nhiều cấu hình khác nhau. Cho phép lập trình
bằng nhiều ngôn ngữ khác nhau.
 CLR: sử dụng JIT để biên dịch mã MSIL thành mã máy

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 42
.NET Framework

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 43
.NET Framework
 Lớp cơ sở của .NET:
 .NET cung cấp thư viện lớp cơ sở đồ sộ. Các lớp với chức năng
tương tự được gộp thành Namespace.
 Để sử dụng lớp cơ sở của .NET, sử dụng:
using System;

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 44
Lập trình có cấu trúc
 Thập niên 1960, nhiều công ty phần mềm gặp khó khăn do
trễ hạn, chi phí tăng, sản phẩm không đáng tin cậy.
 Việc lập trình là quá phức tạp
 Hoạt động nghiên cứu  Lập trình có cấu trúc
 Lập trình có cấu trúc là các nguyên tắc để
 Viết chương trình rõ hơn
 Dễ kiểm thử và gỡ lỗi hơn
 Dễ điều chỉnh hơn

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 45
Lập trình hướng đối tượng
 Vào thập niên 1980, một cuộc cách mạng khác trong cộng
đồng phần mềm: lập trình hướng đối tượng (Object-
oriented programming – OOP)
 Đối tượng là thành phần phần mềm mô tả vật thể trong thế
giới thực và tái sử dụng được
 Sử dụng OOP trong thiết kế và hiện thực giúp việc phát
triển phần mềm hiệu quả hơn
 OOP cho phép tạo ra các đối tượng phần mềm để dễ dàng
dùng lại trong các chương trình khác

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 46
Lập trình hướng đối tượng
 Đối tượng là mô hình đóng gói để tạo nên các đơn vị phần
mềm có ý nghĩa
 Đối tượng ngày, đối tượng thời gian, đối tượng ô tô, ...
 Đối tượng có các thuộc tính
 Đối tượng ô tô có thể có màu, hiệu xe, số cửa,...
 Đối tượng có các hành vi (phương thức)
 Đối tượng ô tô có thể chạy, được bán, được mua, tạo mới,...
 Lớp là các phân loại chung của các đối tượng liên quan
 Tất cả xe hơi thuộc về lớp “xe”, tuy khác hãng, thuộc tính hay hành
vi

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 47
Internet và World Wide Web
 Cuối thập niên 1960, ARPA thiết kế ra mạng máy tính đầu
tiên, và dần phát triển thành ARPAnet, tiền thân của
Internet
 Khả năng lớn nhất là sự liên lạc dễ dàng và nhanh chóng
thông qua thư điện tử
 Giao thức TCP trên Internet phân chia dữ liệu thành từng
“gói”, và đảm bảo việc truyền nhận tin đúng và đầy đủ
 Để liên lạc với nhau, Internet Protocol (IP) ra đời để đảm
bảo sự liên lạc.

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 48
Internet và World Wide Web
 World Wide Web (WWW) là hệ thống các tài liệu văn bản,
hình ảnh, đa phương tiện được liên kết với nhau, và truy
cập được nhờ Internet.
 Tháng 10 năm 1994, World Wide Web Consortium (W3C)
ra để phát triển công nghệ cho WWW
 Thay đổi cách chúng ta sống và làm việc

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 49
Quy trình phát triển phần mềm
 Phát triển phần mềm gồm 3 giai đoạn chính sau:
 Thiết kế và xây dựng

 Viết tài liệu

 Bảo trì

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 50
Quy trình phát triển phần mềm
 Thiết kế và xây dựng gồm các bước
1. Phân tích bài toán
Để biết chương trình cần phải làm gì, giá trị nhập và
xuất là gì
2. Xây dựng giải pháp
Xây dựng giải thuật để giải quyết bài toán. Giải thuật là
các bước mô tả dữ liệu được sử lý như thế nào để tạo ra
kết quả mong muốn.
3. Viết mã
Chuyển giải thuật thành ngôn ngữ lập trình
4. Kiểm thử và sử lỗi chương trình

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 51
Quy trình phát triển phần mềm
 Việc viết tài liệu được thực hiện trong suốt quá trình phân
tích, thiết kế, viết mã, kiểm thử, bảo trì.
 Có 5 loại tài liệu cơ bản
 Mô tả chi tiết chương trình

 Giải thuật sử dụng

 Chương trình được chú thích đầy đủ

 Các mẫu dữ liệu để kiểm thử

 Tài liệu hướng dẫn sử dụng

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 52
Quy trình phát triển phần mềm
 Bảo trì
 Sửa chữa lỗi phát sinh sau khi bàn giao phần mềm cho

khách hàng
 Thay đổi chức năng để đáp ứng đúng yêu cầu của

khách hàng
 Thêm những chức năng mới

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 53
Giải thuật
 Mô tả giải thuật bằng cách sử dụng sơ đồ khối (flow chart).
 Sơ đồ khối thể hiện cấu trúc và lô gic của chương trình.
 Một cách khác để mô tả giải thuật là sử dụng mã giả
(pseudocode).
 Hiện nay xu hướng sử dụng mã giả nhiều hơn là sơ đồ
khối.

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 54
Giải thuật
S ta rt

In p u t N a m e ,
H o u rs , R a te

C a lc u la te
P ay H o u rs R a te

D is la y
N am e, P ay

End

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 55
Giải thuật
Mã giả
Input the three values into the variables Name, Hours,
Rate.
Calculate Pay = Hours Rate.
Display Name and Pay.

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 56
Giải thuật
S ta rt
Vòng lặp:
1. Là khái niệm quan trọng
NUM 4
2. NUM NUM + 1 có nghĩa là lấy
SQNUM NUM
2
NUM + 1 gán cho NUM.

Mã giả:
P rin t
NUM , SQNUM
NUM 4
do
NUM NUM + 1

SQNUM NUM2
No
N U M > 9?
Print NUM, SQNUM
Y es
NUM NUM + 1
STOP while (NUM <= 9)
Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình
Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 57
Một số bài toán
 Có trăm trâu trăm cỏ:
Trâu đứng ăn 5,
Trâu nằm ăn 3,
Trâu già 3 con ăn 1 bó,
Hỏi có bao nhiêu trâu đứng, trâu nằm, trâu già!
 Theo đề bài ta có hệ
x + y + z = 100 (1)
5x + 3y +1/3z = 100 (2)
x, y, z thuộc N, x, y, z>=1
 Cho máy tính thử tất cả những giá trị có thể của x, y, z, để
tìm ra nghiệm

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 58
Một số bài toán
 Tính tích phân xác định
b n n
b a
f ( x ) dx lim
 f ( zi ) xi lim
 f ( xi )
a max xi 0 i 1 n n i 1

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 59
Hệ đếm cơ số 2 và hệ đếm cơ số 16

 Biểu diễn hệ nhị phân


 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, …, 19, 20, …, 99, 100, …
 0, 1, 10, 11, 100, 101, 110, 111, 1000, …
 Chuyển đổi từ hệ nhị phân sang hệ thập phân

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 60
Hệ đếm cơ số 2 và hệ đếm cơ số 16
 Chuyển đổi từ hệ nhị phân sang hệ thập phân
 11001012 = ?
11001012 = 1x26 + 1x25 + 0x24 + 0x23 + 1x22 + 0x21 + 1x20
= 64 + 32 + 4 + 1
= 101

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 61
Hệ đếm cơ số 2 và hệ đếm cơ số 16
 Chuyển đổi từ hệ thập phân Phép tính Số dư
sang hệ nhị phân:
118 2 = 59 0

 11810 = 11101102 59 2 = 29 1

29 2 = 14 1

14 2=7 0

7 2=3 1

3 2=1 1

1 2=0 1

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 62
Hệ đếm cơ số 2 và hệ đếm cơ số 16
 Biểu diễn hệ thập lục
 0, 1, …, 9, A, B, C, D, E, F, 10, 11, 12, …
 Chuyển đổi sang hệ thập phân
 Chuyển đổi từ hệ thập phân sang hệ thập lục

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 63
Hệ đếm cơ số 2 và hệ đếm cơ số 16
10111101011010100102
=0101 1110 1011 0101 0010
= 5 E B 5 2
= 5EB5216

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 64
RAM

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 65
RAM

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 66
RAM

0x10001000

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 67
RAM
MOV B, 3
B=3
MOV C, 2
C=1
MOV REG0, B
A= B+ C
ADD REG0, C
MOV A, REG0
10000010
10000020
10000010
1110 10000010 11
1110 10000010 01
1010 10000010
1011 10000020
1100 10000030
Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình
Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 68
Tóm tắt
 Phần cứng và phần mềm là hai bộ phận chính cấu thành
nên một chiếc máy tính hoạt động được
 Các lập trình viên viết chương trình bằng một ngôn ngữ lập
trình để yêu cầu máy tính thực hiện công việc
 Máy tính chỉ hiểu được mã máy, và các ngôn ngữ lập trình
cấp cao cần phải có trình biên dịch để dịch sang mã máy
 Internet thay đổi cách chúng ta sống và làm việc
 Quy trình phát triển phần mềm giúp chúng ta viết chương
trình hiệu quả, đáng tin cậy và dễ bảo trì hơn

Trường Đại Học Bách Khoa Tp.HCM Kỹ thuật lập trình


Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 1: Giới thiệu về máy tính và lập trình
© 2010 CuuDuongThanCong.com https://fb.com/tailieudientucntt 69

You might also like