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

Giáo trình nhập môn tin học

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 (492.03 KB, 136 trang )

Giáo trình nhập môn tin học
Biên tập bởi:
Khoa CNTT ĐHSP KT Hưng Yên
Giáo trình nhập môn tin học
Biên tập bởi:
Khoa CNTT ĐHSP KT Hưng Yên
Các tác giả:
Khoa CNTT ĐHSP KT Hưng Yên
Phiên bản trực tuyến:
/>MỤC LỤC
1. Giới thiệu giáo trình
2. Bài 1: Thông tin và xử lý thông tin
2.1. Thông tin và xử lý thông tin, hệ thống tính toán và biểu diễn thông tin trong máy
tính
3. Bài 2: Tổng quan hệ thống máy tính
3.1. Tổng quan về hệ thống máy tính
4. Bài 3: Giải bài toán bằng máy tính
4.1. Giải bài toán bằng máy tính
5. Bài 4-5-6: Thực hành, thảo luận và tổng quan về lập trình
5.1. Thực hành, thảo luận và tổng quan về lập trình
6. Bài 7:Thuật toán và chương trình
6.1. Thuật toán và chương trình
7. Bài 8-9: Thảo luận về phát triển ứng dụng C/C++, Các thành phần của một chương
trình
7.1. Thảo luận về phát triển ứng dụng C/C++,Các thành phần của một chương trình
8. Bài 10: Một số hàm chức năng
8.1. Một số hàm chức năng thường dùng trong chương trình
9. Bài 11: Bài thực hành về các thành phần cơ bản và nhập/xuất trong C/C++
9.1. Bài thực hành về các thành phần cơ bản và nhập/xuất trong C/C++
10. Bài 12: Cấu trúc rẽ nhánh
10.1. Cấu trúc rẽ nhánh


11. Bài 13: Bài thực hành về cấu trúc rẽ nhánh
11.1. Bài thực hành về cấu trúc rẽ nhánh
12. Bài 14- 15: Cấu trúc lặp while, do while - Cấu trúc lặp for
12.1. Cấu trúc lặp while, do while - Cấu trúc lặp for
13. Bài 16- 17: Thảo luận về các cấu trúc điểu khiển - Bài thực hành về cấu trúc lặp
13.1. Thảo luận về các cấu trúc điểu khiển - Bài thực hành về cấu trúc lặp
14. Bài 18: Các kiểu dữ liệu trong C/C++
14.1. Các kiểu dữ liệu trong C/C++
15. Bài 19- 20: Chương trình con - thực hành về xây dựng chương trình con
15.1. Chương trình con - thực hành về xây dựng chương trình con
Tham gia đóng góp
1/134
Giới thiệu giáo trình
Tên Module: Nhập môn Tin học
Mã Module:
Giáo viên: Nguyễn Hữu Đông, Ngô Thanh Huyền
Ngành học: Điện-Điện tửSố giờ học: 144h/45t
Loại hình đào tạo: Chính qui Thời gian thực hiện: 12 tuần
Năm học: 2007/2008 Loại Module: 02LT+01TH
Phiên bản: 20080313 Phương pháp dạy học:
Mục tiêu:
Sau khi hoàn thành module này, người học có khả năng:
• Mô tả tỉ mỉ các khái niệm cơ bản về thông tin, xử lý thông tin, mô hình tính
toán trong máy tính điện tử.
• Thiết kế chương trình máy tính, cài đặt chương trình bằng ngôn ngữ C/C++ để
giải một số bài toán thông thường, đơn giản trong khoa học kỹ thuật, đặc biệt
trong lĩnh vực điện tử, đo lường và điều khiển.
• Hình thành thái độ học tập nghiêm túc, kỹ năng làm việc độc lập và theo nhóm.
Module này sẽ giúp người học phát triển các năng lực: phân tích(M1), thiết kế (M1),
thực hiện(M2)

Điều kiện tiên quyết:
Module có thể thực hiện song song với Module: Toán cao cấp.
Mô tả module:
Phần 1 giới thiệu tổng quan về thông tin và xử lý thông tin, máy tính điện tử, giải bài
toán bằng máy tính.
2/134
Phần 2 cung cấp cho người học những nguyên lý cơ bản về lập trình, các cấu trúc điều
khiển, các kiểu dữ liệu, mô hình hướng chức năng, cách thức xây dựng chương trình con
và một số bài toán trong khoa học kỹ thuật.
Module này sử dụng ngôn ngữ C/C++ để minh họa, cài đặt. Tuy nhiên người học dễ
dàng cài đặt được bằng các ngôn ngữ lập trình khác như: VB.NET, C#, Pascal
Nội dung module:
Bài 1: Thông tin và xử lý thông tin, hệ thống tính toán và biểu diễn thông tin
trong máy tính
1.1. Thông tin và xử lý thông tin
1.2. Hệ thống tính toán và biểu diễn thông tin trong máy tính
Bài 2: Tổng quan về hệ thống máy tính
2.1. Cấu trúc tổng quan phần cứng máy tính
2.2. Tổng quan về phần mềm
2.3. Khái niệm về mạng Internet
Bài 3: Giải bài toán bằng máy tính
3.1. Thuật toán
3.2. Biểu diễn thuật toán
3.3. Một số thuật toán thông dụng
Bài 4: Bài thực hành làm quen với máy tính, hệ thống tính toán
Bài 5: Thảo luận về các bước giải quyết bài toán trên máy tính
Bài 6: Tổng quan về lập trình
6.1.Giới thiệu phương pháp học
6.2. Ngôn ngữ lập trình
6.3. Các phương pháp lập trình

3/134
6.4. Một số ngôn ngữ lập trình
6.5. Ngôn ngữ lập trình C/C++
Bài 7: Thuật toán và chương trình
7.1. Thuật toán và lưu đồ thuật toán
7.2. Cấu trúc một chương trình C/C++ đơn giản
Bài 8: Thảo luận về môi trường phát triển ứng dụng C/C++
Bài 9: Các thành phần cơ bản của một chương trình
9.1. Các phần tử cơ bản của một ngôn ngữ lập trình
9.1.1. Bảng chữ cái
9.1.2. Từ khoá
9.1.3. Tên (định danh)
9.2. Các kiểu dữ liệu cơ bản
9.3. Biến, hằng và cách khai báo
9.4. Các phép toán
9.5. Biểu thức
Bài 10: Một số hàm chức năng thường dùng trong chương trình
10.1. Một số hàm thường dùng
10.2. Nhập/xuất dữ liệu (bàn phím, màn hình)
Bài 11: Bài thực hành về các thành phần cơ bản và nhập/xuất trong C/C++
Bài 12: Cấu trúc rẽ nhánh
12.1. Câu lệnh đơn, khối lệnh
12.2. Các cấu trúc rẽ nhánh
4/134
12.2.1. Cấu trúc rẽ nhánh if
12.2.2. Cấu trúc rẽ nhánh switch
Bài 13: Bài thực hành về cấu trúc rẽ nhánh
Bài 14: Cấu trúc lặp while, do while
14.1. Cấu trúc lặp while
14.2. Cấu trúc lặp do while

Bài 15: Cấu trúc lặp for và một số lệnh điều khiển khác
15.1. Cấu trúc lặp for
15.2. Break, continue, return
Bài 16: Thảo luận về các cấu trúc điểu khiển khiển
Bài 17: Bài thực hành về cấu trúc lặp
Bài 18: Các kiểu dữ liệu trong C/C++
Bài 19: Chương trình con
19.1. Đặt vấn đề
19.2. Ví dụ về một chương trình có sử dụng chương trình con
19.3. Phạm vi hoạt động của biến
19.4. Cấu trúc một chương trình con
19.5. Truyền tham số cho chương trình con
19.6. Nguyên tắc hoạt động của chương trình con
19.7. Nguyên tắc sử dụng chương trình con
Bài 20: Bài thực hành về xây dựng chương trình con
5/134
Tài liệu tham khảo:
• Sách, giáo trình chính:
1. Giáo trình, hệ thống bài tập, tài liệu do giáo viên biên soạn.
2. “Ngôn ngữ lập trình C thật là đơn giản”. NXB Giáo dục, 2007.
3. Phạm Văn Ất. “Giáo trình C cơ bản và nâng cao”.
• Sách tham khảo:
1. Phạm Văn Ất. “Giáo trình C++”.
2. Nguyễn Thanh Thuỷ và Nguyễn Quang Huy. “Bài tập lập trình ngôn ngữ C”. NXB
Khoa học và kỹ thuật.
• Khác: Internet
Học liệu:
Giáo trình lưu hành nội bộ, sách tham khảo, hệ thống bài tập mẫu, bài tập tự làm, máy
tính, tài nguyên trên Internet, Projector.
Đánh giá:

Hình thức đánh giá:
• Kiểm tra giữa kỳ (lập trình trên máy tính): 20%
• Đánh giá quá trình (kết quả các buổi thực hành): 30%
• Kiểm tra cuối kỳ (lập trình trên máy tính): 50%
Tiêu chí đánh giá:
• - Kỹ năng thiết kế, xây dựng bài toán
• - Kỹ năng cài đặt bài toán.
Người đánh giá: Giáo viên giảng dạy và người học.
Kế hoạch học tập:
Bài
Mục
tiêu
Hoạt động giáo
viên
Hoạt động sinh
viên
TGSV
Điều hiện thực
hiện
6/134
7/134
Bài 1: Thông tin và xử lý thông tin
Thông tin và xử lý thông tin, hệ thống tính toán và biểu
diễn thông tin trong máy tính
Thông tin và xử lý thông tin
Khái niệm thông tin
Thông tin ( Informations ) là một khái niệm trừu tượng mô tả những gì đem lại hiểu biết
, nhận thức cho con người cũng như các sinh vật khác. Thông tin tồn tại khách quan.
Thông tin có thể tạo ra, phát sinh, truyền đi, lưu trữ, chọn lọc. Thông tin cũng có thể
méo mó, sai lệch đi do nhiễu tác động hay do người xuyên tạc,…

Xử lý thông tin
• Sơ đồ tổng quát của quá trình xử lý thông tin
Hàng ngày con người luôn phải tiến hành xử lý thông tin. Quá trình xử lý đó có thể
hình dung như sau: Từ những dữ kiện có được và các mục đích được đặt ra, con người
cần suy nghĩ để lựa chọn những tác động và trình tự để thực hiện các tác động đó
nhằm đưa ra được những quyết định đúng để đạt được mục đích. Như vậy, phương án
hành động chính là kết quả của quá trình xử lý thông tin. Quá trình xử lý thông tin nói
chung có thể được mô tả bằng sơ đồ sau: ***SORRY, THIS MEDIA TYPE IS NOT
SUPPORTED.***
• Xử lý thông tin bằng máy tính điện tử
Khi chúng ta sử dụng một máy tính bỏ túi để tính toán, ta thấy máy tính có thể tiếp nhận
số liệu do ta nạp vào thông qua hệ thống các nút bấm. Máy có thể hiện lại các số liệu đã
nhận hoặc hiển thị kết quả tính toán trên màn hình. Máy có thể lưu trữ kết quả tính toán
trung gian để tính tiếp. Toàn bộ các thao tác trên được thực hiện với tốc độ rất cao, gần
như tức thời.
Tuy nhiên máy tính sẽ không làm gì được nếu như không có tác động của con người.
Người sử dụng phải bấm các phím nhập dữ liệu vào máy, bấm các phím thực hiện các
phép toán cũng như yêu cầu lưu trữ hoặc hiển thị các kết quả. Điều đó cũng đúng với
máy tính điện tử (MTĐT). MTĐT chỉ có thể thực hiện chức năng một cách tự động khi
con người đã trao trước cho nó một dãy các chỉ dẫn (quy tắc) gọi là các lệnh hay chương
trình. Chương trình cho MTĐT do con người lập ra và nạp vào trong máy. Khi nhận
được lệnh thực hiện thông qua việc bấm một vài phím quy định, máy sẽ theo chỉ dẫn
8/134
của chương trình, từng bước thực hiện các thao tác đã được vạch sẵn để tiến hành xử lý
các dữ liệu được nạp toàn bộ hoặc từng phần trong máy.
***SORRY, THIS MEDIA TYPE IS NOT SUPPORTED.*** Tóm lại, MTĐT hoạt
động theo nguyên tắc “Tự động điều khiển bằng chương trình”. Ta có thể minh hoạ quá
trình xử lý thông tin trong MTĐT bằng lược đồ sau:
Hệ thống tính toán và biểu diễn thông tin trong máy tính
Biểu diễn thông tin trong máy tính điện tử (MTĐT)

• Hệ đếm và số học nhị phân
Hệ đếm
Hệ đếm được hiểu như tập các ký hiệu và quy tắc sử dụng tập ký hiệu đó để biểu diễn
và xác định giá trị các số.
Ví dụ: Hệ đếm La mã và hệ đếm thập phân
• Các hệ đếm thông dụng
* Hệ đếm cơ số 10:
Dùng các số 0,1,2, 9 ( 10 công cụ )
¯
t
n
t
n − 1
t
1
t
0
¯
,
¯
s
1
s
2
s
m
=t
n
.10
n

+ t
n-1
.10
n-1
+ + t
1
.10
1
+t
0
+ s
1
.10
-1
+ s
2
.10
-2
+ + s
m
.10
-m
Trong đó: t
i
,s
i
∈[0,1,2,3,4,5,6,7,8,9]
* Hệ đếm nhị phân, bát phân và thập lục phân:
Dùng a công cụ bắt đầu từ công cụ 0. ta có:
¯

t
n
t
n − 1
t
1
t
0
¯
,
¯
s
1
s
2
s
m
= t
n
.a
n
+ t
n-1
.a
n-1
+ + t
1
.a
1
+ t

0
+ s
1
.a
-1
+ s
2
.a
-2
+ + s
m
.a
-m
a =2 (Hệ nhị phân) ta có hai công cụ: 0,1. Tức là t
i
,s
i
∈[0,1]
a =8 (Hệ bát phân) ta có tám công cụ: 0,1 7 Tức là t
i
, s
i
∈ [0, 1, 2, 3, 4, 5, 6, 7]
a =16 (Hệ thập lục phân) ta có 16 công cụ: 0,1 9,A,B,C,D,E,F
9/134
Tức là t
i
,s
i
∈[0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F]. Các trị này tương ứng với các số từ 0 đến

15 của hệ thập phân.
* Chuyển dạng biểu diễn nhị phân sang hệ thập phân
Cho một số dưới dạng nhị phân
a
n,
a
n-1
a
0
Muốn tìm dạng biểu diễn thập phân ta tính giá trị của đa thức sau:
a
n
.2
n
+a
n-1
.2
n-1
+ a
0
.2
0
Ví dụ: 100
(2)
=1.2
2
+0.2
1
+0=4
(10)

* Chuyển dạng biểu diễn thập phân sang nhị phân
Ta tiến hành theo các bước sau:
Bước 1:
Chia liên tiếp số x cho 2 để được dãy
x
0
=x, x
1
, x
2
x
n
=1 (1)
Bước 2: (chẵn lẻ)
Xét dãy (1)
Nếu x
i
là chẵn thì viết dưới x
i
với a
i
=0
Nếu x
i
là lẻ thì viết dưới x
i
với a
i
=1
ta được dãy:

a
0
, a
1
, a
2
a
n
(2)
Bước 3:
Viết ngược dãy (2) ta thu được số nhị phân cần tìm là
a
0
, a
1
, a
2
a
n
10/134
Ví dụ viết số 11 dưới dạng nhị phân ta tiên hành
• Chia liên tiếp cho 2 được : 11 ,5 , 2, 1
• Chẵn lẻ 1 1 0 1
• Viết ngược lại 1011
Chú ý : bằng cách tương tự ta có thể chuyển hệ 8 hoặc 16 sang hệ thập phân và ngược
lại
* Chuyển dạng biểu diễn từ hệ nhị phân sang dạng thập lục phân và ngược lại
Để chuyển từ hệ nhị phân sang hệ 16 ta chỉ cần nhóm 4 số từ phải sang trái ứng với giá
trị bộ 4 số nhị phân ta có số hệ 16 tương ứng.
Ví dụ

1111 1010 0001=FA1
Ngược lại để chuyên từ hệ 16 sang hệ 2 ta ta viết từng bộ 4 chữ số nhị phân tương ứng
với từng chữ số hệ 16
* Bảng quan hệ giữa các số hệ nhị phân và thập lục phân
Số nhị
phân
Số thập
lục phân
Số nhị
phân
Số thập
lục phân
Số nhị
phân
Số thập
lục phân
Số nhị
phân
Số thập
lục phân
0000 00 0100 04 1000 08 1100 0C
0001 01 0101 05 1001 09 1101 0D
0010 02 0110 06 1010 0A 1110 0E
0011 03 0111 07 1011 0B 1111 0F
• Các phép toán cơ bản của số nhị phân
* Phép cộng
0+0=0 0+1=1
1+0=1 1+1=10
* Phép nhân
0×0=0 0×1=0

11/134
1×0=0 1×1=1
* Phép trừ
1-1=0 0-0=0
1-0=1 10-1=1
12/134
Bài 2: Tổng quan hệ thống máy tính
Tổng quan về hệ thống máy tính
Cấu trúc tổng quan phần cứng máy tính
Central Processing Unit - Bộ xử lý trung tâm
Là bộ phận quan trọng nhất của máy tính điện tử. Nó có chức năng xử lý, tính toán dữ
liệu. Thực hiện các phép toán số học và logic đồng thời điều khiển quá trình thực hiện
các lệnh. CPU có các thành phần chính như sau:
Đồng hồ (Clock) tạo các xung thời gian chính xác để đồng bộ hoá các thành phân khác
của CPU.
Khối tính toán số học và logic ALU (Arithmetic and Logic Unit) thực hiện hầu hết các
thao tác, các phép tính quan trọng của hệ thống, đó là
• Các phép toán số học ( +, -, *, /…)
• Các phép toán Logic (And, Or, Xor, Not)
• Các phép tính quan hệ ( >, >=, <, <=, =, #, <>,…)
Khối điều khiển CU (Control Unit) điều khiển quyết định dãy các thao tác cần phải làm
đối với hệ thống bằng cách tạo ra các tín hiệu điều khiển mọi công việc.
Khối các thanh ghi (Registers): Ngoài các bộ phận trên CPU còn có một tập các thanh
ghi làm nhiệm vụ nhớ trung gian nhằm đẩy nhanh tốc độ tính toán và xử lý của CPU.
Bộ nhớ ( Memory )
Là thiết bị có chức năng lưu trữ dữ liệu và chương trình.
Bộ nhớ trong (Internal Memory): Là bộ nhớ được dùng để ghi chương trình và dữ liệu
trong thời gian xử lý. Giúp cho quá trình truy xuất dữ liệu được nhanh. Bộ nhớ trong có
đặc điểm
• Tốc độ trao đổi thông tin với CPU rất lớn.

• Dung lượng bộ nhớ không cao, giá thành đắt.
Bộ nhớ trong hiện nay thường được xấy dựng với hai loại vi mạch nhớ cơ bản như sau:
13/134
• RAM (Random Access Memory – Bộ nhớ truy cập ngẫu nhiên): Là bộ nhớ
trong khi máy tính hoạt động có thể ghi và đọc thông tin một cách dễ dàng. Khi
mất điện thì thông tin trên đó cũng mất theo.
• ROM (Read Only Memory – Bộ nhớ chỉ đọc): Là bộ nhớ mà ta chỉ có thể đọc
thông tin ra mà không ghi được thông tin lên đó. Thông tin trên ROM do nhà
sản xuất ghi lên và nó không bị mất khi ngắt điện hoặc tắt máy. Nó được dùng
để chứa dữ liệu và chương trình cố định điều khiển máy tính khi mới bật điện.
Bộ nhớ ngoài (External Memory): Là các thiết bị lưu trữ thông tin với khối lượng lớn.
Tốc độ truy cập chậm hơn bộ nhớ trong. Bộ nhớ ngoài điển hình nhất hiện nay là đĩa từ
và đĩa quang.
Đĩa từ là một tấm đĩa tròn, mỏng làm bằng chất dẻo Mylar (đĩa mềm), thuỷ tinh cứng
hay kim loại cứng (đĩa cứng), bên trên có phủ một lớp bột từ tính oxit sắt từ. Nó được
bảo vệ trong một lớp nhựa hay lớp kim loại cách từ gọi là vỏ đĩa. Đĩa từ hiện nay phổ
biến có hai loại là đĩa cứng và đĩa mềm.
Đĩa mềm có hai loại là 1,2 Mb và 1,44 Mb, ngoài ra hiện nay đang có loại 2,88Mb. Với
đĩa mềm thì ta phải dùng với ổ mềm. Ổ mềm chỉ hoạt động khi có đĩa mềm trong đó.
Mật độ ghi thông tin trên đĩa mềm nhỏ chỉ ở mức Mb.
Đĩa cứng thường được lắp trên Case chứa CPU, có mật độ ghi thông tin rất lớn ở mức
Gb. Với đĩa cứng thì đĩa được lắp trong hộp gọi là ổ đĩa cứng. Khi sử dụng chỉ việc cắm
cable điện và cable dữ liệu cho nó.
Đĩa quang: Là loại đĩa hiện nay được bán phổ biến trên thị trường, giá thành rẻ, khả
năng lưu trữ thông tin lớn, độ an toàn dữ liệu không cao. Có hai loại đĩa quan đang được
sử dụng trên thị trường hiện nay là đĩa CD-ROM (Compact Disc Read Only Memory)
và WORM (Write Once Read Memory).
Thiết bị vào ( Input Device)
Thiết bị vào được dùng phổ biến hiện nay là bàn phím (Keyboard), chuột (Mouse), máy
quét (Scaner),…

Bàn phím (Keyboard ):101 hoặc 102 phím. Có các loại phím như sau:
• Phím chức năng(Functions key): F1 F12
• Phím ký tự: '0' '9','A' 'Z','a' 'z' và các ký hiệu. Được bố trí dưới 2 dạng:
***SORRY, THIS MEDIA TYPE IS NOT SUPPORTED.*** và ***SORRY, THIS
MEDIA TYPE IS NOT SUPPORTED.***
14/134
Cách gõ: Shift + Phím(1) Chữ in hoa (Giữ Shift trước)
Phím(1) Chữ in thường
Shift + Phím(2) Ký tự phía trên
Phím(2) Ký tự phía dưới
Ghi chú: Nếu bật phím CapsLock thì phím dạng (1) sẽ có kết quả ngược như trên (Hay
nói một cách khác hai phím Shift & CapsLock làm ngược chức năng của nhau cho loại
phím dạng (1))
• Phím dịch chuyển con trỏ: Home,End, PageUp, PageDown, Tab
• Phím xoá: (Backspace) và Delete hoặc Del
• Phím dịch chuyển: Ctrl, Shift, CapsLock, Alt thường kết hợp với các phím
khác ( tổ hợp phím) để thực hiện một chức năng nào đó.
Có hai phím rất hay dùng là Spacebar và Enter (Ký hiệu lý thuyết: ***SORRY, THIS
MEDIA TYPE IS NOT SUPPORTED.*** ?)
Chuột (Mouse): Có loại hai nút (button), có loại 3 nút. Gọi các nút đó theo vị trí tương
đối của chúng: Nút chuột trái, nút chuột phải, nút chuột giữa. Chuột thường được dùng
cho việc di chuyển đến các thực đơn hoặc các công cụ, các ô điều khiển để nháy (click)
vào đó và yêu cầu thực hiện công việc tương ứng.
Thiết bị ra ( Output Device)
Màn hình (Display)
Có hai chế độ biểu hiện (Text và Graphic)
• Ở chế độ Text 80 cột x 25 hàng.
• Ở chế độ Graphic màn hình ở độ phân giải chuẩn là 640 x 480 dot.
Toạ độ đánh số từ góc trái trên tăng dần qua phải, xuống dưới bắt đầu từ số 0.
Ở chế độ Text có con nháy như "_" luôn nhấp nháy ở tần số 15?20 lần/phút nhắc nhở

địa điểm làm việc trên màn hình.
Ở chế độ đồ hoạ các phần tử biểu diễn dưới dạng điểm tuỳ theo độ phân giải cao hay
thấp của loại màn hình. Thường thì ở chế độ chuẩn là 640x480 dot. Trên màn hình đồ
hoạ không có con trỏ xuất hiện như ở màn hình Text.
15/134
Máy in (Printer)
Khi cần đưa thông tin ra giấy thì người ta sử dụng máy in Tuỳ theo yêu cầu công việc
và điều kiện thực tế người ta sử dụng các loại máy in khác nhau . Hiện nay thường sử
dụng 2 loại máy in chủ yếu : Máy in Kim và máy in LASER
Tổng quan về phần mềm
Hệ điều hành ( OS-Operating System )
Là một hệ thống các chương trình nhằm đảm bảo các chức năng cơ bản sau:
• Điều khiển việc thực thi mọi chương trình.
• Quản lí, phân phối và thu hồi bộ nhớ (cả trong lẫn ngoài)
• Điều khiển các thiết bị, bao gồm cả việc khởi động máy.
• Điều khiển, quản lí việc vào ra dữ liệu.
• Làm nhiệm vụ trung gian ghép nối máy tính với người sử dụng sao cho người
sử dụng thất thuận tiện và hiệu quả.
Hiện nay có rất nhiều hệ điều hành như: Dos, Windows, Unix, Linux,…nhưng phổ biến
ở nước ta từ trước đến nay là hệ điều hành Dos và Windows. Một số nơi ở nước ta hiện
nay đang chuyển sang dùng Linux.
Các chương trình ứng dụng ( Applications)
Là các chương trình phục vụ cho các ứng dụng cụ thể. Hiện nay có rất nhiều các chương
trình ứng dụng cụ thể như:
• Soạn thảo văn bản: Microsoft Word, Notepad,…
• Bảng tính điện tử như: Microsoft Excel, Lotus, Quattro,…
• Thư tín điện tử: Microsoft Mail,…
Khái niệm về mạng Internet
Khái niệm chung về mạng máy tính, lịch sử phát triển
• Khái niệm chung về mạng máy tính.

Là sự kết hợp của hai hay nhiều máy tính với nhau và cho phép dùng chung thiết bị của
nhau, nói cách khác là cho phép chia sẻ tài nguyên giữa các máy tính với nhau như: ổ
đĩa, máy in,…
• Lịch sử phát triển của mạng máy tính.
16/134
Mạng máy tính đầu tiên xuất hiện đó là mạng Sneakernet. Đặc điểm của mạng này là
các máy trao đổi thông tin với nhau thông qua việc dùng các đĩa mềm chép dữ liệu từ
máy này rồi đem sang máy khác dùng. Việc trao đổi dữ liệu đó rất chậm, đôi khi còn
phát sinh nhiều lỗi về dữ liệu. Sau đó người ta phát hiện ra rằng việc trao đổi thông tin
giữa các máy tính dùng Cable hiệu quả hơn, từ đó mạng máy tính được ra đời.
Phân loại mạng máy tính.
Có 4 cách phân loại mạng:
• Phân loại logic mạng: Theo quan điểm này mạng được chia theo khả năng cung
cầu về tài nguyên giữa các máy tính trong mạng và chia làm 3 loại sau:
• Mạng bình đẳng ( peer to peer ): Trong mạng này tất cả các máy có vai trò như
nhau trong mạng, không có máy chủ. Loại mạng này chỉ sử dụng với hệ thống
mạng có quy mô nhỏ.
• Mạng khách chủ (Client/Server): Trong mạng này có một máy chủ và hệ thống
các máy trạm, các tài nguyên chung và quan trọng được tập trung trên máy chủ.
Loại mạng này sử dụng cho hệ thống mạng có quy mô lớn.
• Mạng hỗn hợp: Là sự kết hợp giữa hai loại mạng trên. Loại này được sử dụng
cho hệ thống mạng có quy mô cực lớn.
• Phân loại mạng theo quy mô: Gồm 2 loại:
• Mạng LAN (Local Area Network – Mạng cục bộ): Đây là loại mạng có cấu
trúc thuần nhất, nét đặc trưng nhất để phân biệt mạng LAN với mạng WAN là
khoảng cách từ mỗi máy trạm đến máy chủ không vượt quá khả năng của thiết
bị dành cho mạng cục bộ.
• Mạng WAN (Wide Area Network – Mạng toàn cục): Dùng để chỉ hệ thống
mạng có quy mô lớn, có thể được tạo thành nhờ việc ghép nối của nhiều mạng
LAN và sử dụng các thiết bị viễn thông không có trong mạng LAN (Modem –

Modulation Demodulation - Đều chế và giải điều chế)
• Phân loại theo NIC(Network Interface Card - Card giao diện mạng) Được chia
làm 3 loại tuỳ thuộc vào NIC mà mạng sử dụng gồm:
• Ethernet.
• Arcnet
• Tokenring.
• Phân loại mạng theo sơ đồ nối (Topology): Được chia làm 3 loại:
• Nối theo sơ đồ BUS: Các máy nối tiếp với nhau sử dụng chung một Card.
Điểm đầu và điểm cuối của mạng ở hai đầu khác nhau.
• Nối theo sơ đồ RING: Các máy nối theo vòng tròn, điểm đầu và điểm cuối của
mạng trùng nhau.
• Nối theo sơ đồ STAR: Các máy nối theo kiểu hình sao.
17/134
Internet, Intranet và các dịch vụ trên Internet
• Internet.
Internet là một hệ thống liên kết nhiều mạng máy tính với nhau trên phạm vi toàn cầu
và được gọi là mạng toàn cầu.
Mạng Internet hoạt động trên phạm vi toàn cầu sử dụng công cụ truyền thông chính là
vệ tinh. Tài nguyên trên mạng phong phú, đa dạng về chủng loại và số lượng.
Internet không phải là một chương trình, không phải là phần cứng, không phải là phần
mềm mà nó chỉ là nơi truy xuất thông tin và tạo nên các thông tin lấy miễn phí hay phải
trả tiền.
• Intranet.
Mạng Intranet là mạng cục bộ có phạm vi trên một quốc gia, sử dụng công cụ của
Internet. Tài nguyên trên mạng phong phú, đa dạng về chủng loại và số lượng.
• Các dịch vụ trên Internet.
1. Thư điện tử ( Electric Mail)
Khái niệm: Là dịch vụ phổ biến trên mạng Internet thông qua E_Mail. Mỗi người muốn
tham gia E_Mail cần có một địa chỉ E_Mail riêng của mình và địa chỉ E_Mail nơi gửi
tới.

Lợi ích: Tốc độ truyền cao, đảm bảo độ tin cậy. Khi một E_Mail được gửi đi mà không
có người nhận ngay thì nó sẽ được lưu trên Server.
Ứng dụng: Được ứng dụng trong nhiều lĩnh vực khác nhau như: Truyền các thông tin
ngắn, trao đổi dữ liệu, thông điệp, gửi kèm các tài liệu, tệp tin, chương trình,…
2. Dịch vụ truyền File (File Transfer)
Trên mạng Internet ta có thể truyền các file hình ảnh, âm thanh,… đến một máy trạm
nào đó hay nạp nó lên Internet như một tài nguyên chung của Internet cũng như tải file
từ trên Internet xuống (Nếu như có quyền).
3. Dịch vụ WEB
Trên Internet phổ biến một loại dữ liệu đó là siêu văn bản (bao gồm cả hình ảnh, âm
thanh, chữ viết) nó được sử dụng rộng rãi trong các dịch vụ về thông tin, văn hoá nghệ
thuật trên Internet.
18/134
Để truy cập vào các vùng thông tin mong muốn ta thường sử dụng dịch vụ này. Tất cả
các kho tàng về văn hoá, nghệ thuật, các thông tin kinh tế, thời sự,…đều có thể được
biết đến thông qua các Website (siêu văn bản).
4. Một số dịch vụ khác.
Trên Internet có rất nhiều các dịch vụ, chúng phong phú, đa dạng và có trong tất cả các
lĩnh vực của đời sống xã hội như truy cập thông tin từ xa, các dịch vụ hội thảo, thương
mại điện tử,…
Để sử dụng, nắm bắt được các thông tin trên Internet không có cách nào tốt hơn là hãy
tham gia kết nối Internet. Trên đó ta có thể khai thác đầy đủ các dịch vụ và thông tin cần
thiết.
19/134
Bài 3: Giải bài toán bằng máy tính
Giải bài toán bằng máy tính
THUẬT TOÁN
Thuật toán, còn gọi là giải thuật, là một tập hợp hữu hạn của các chỉ thị hay phương
cách được định nghĩa rõ ràng cho việc hoàn tất một số sự việc từ một trạng thái ban đầu
cho trước; khi các chỉ thị này được áp dụng triệt để thì sẽ dẫn đến kết quả sau cùng như

đã dự đoán.
Nói cách khác, thuật toán là một bộ các qui tắc hay qui trình cụ thể nhằm giải quyết một
vấn đề trong một số bước hữu hạn, hoặc nhằm cung cấp một kết quả từ một tập hợp của
các dữ kiện đưa vào.
Ví dụ: thuật toán để giải phương trình bậc nhất P(x): ax + b = c, (a, b, c là các số thực),
trong tập hợp các số thực có thể là một bộ các bước sau đây:
Nếu a = 0
b = c thì P(x) có nghiệm bất kì
b ≠ c thì P(c) vô nghiệm
Nếu a ≠ 0
P(x) có duy nhất một nghiệm x = (c - b)/a
Lưu ý:
Khi một thuật toán đã hình thành thì ta không xét đến việc chứng minh thuật toán đó mà
chỉ chú trọng đến việc áp dụng các bước theo sự hướng dẫn sẽ có kết quả đúng. Việc
chứng minh tính đầy đủ và tính đúng của các thuật toán phải được tiến hành xong trước
khi có thuật toán. Nói rõ hơn, thuật toán có thể chỉ là việc áp dụng các công thức hay
qui tắc, qui trình đã được công nhận là đúng hay đã được chứng minh về mặt toán học.
"Thuật toán" hiện nay thường được dùng để chỉ thuật toán giải quyết các vấn đề tin học.
Hầu hết các thuật toán tin học đều có thể viết thành các chương trình máy tính mặc dù
chúng thường có một vài hạn chế (vì khả năng của máy tính và khả năng của người lập
trình). Trong nhiều trường hợp, một chương trình khi thiết kế bị thất bại là do lỗi ở các
thuật toán mà người lập trình đưa vào là không chính xác, không đầy đủ, hay không ước
20/134
định được trọn vẹn lời giải của vấn đề. Tuy nhiên cũng có một số bài toán mà hiện nay
người ta chưa tìm được lời giải triệt để, những bài toán ấy gọi là những bài toán NP-
không đầy đủ.
Thuật toán: Thuật toán của một bài toán là một hệ thống chặt chẽ và rõ ràng các quy tắc
nhằm xác định một dãy các thao tác trên những dữ liệu vào (Input), sao cho sau một số
hữu hạn bước thực hiện các thao tác ta thu được kết quả (Output) của bài toán đó.
Chương trình:

Khái niệm thuật giải: Là một tập hợp các thao tác được sắp sếp theo một trình tự nào
đó nhằm giải quyết một vấn đề có hiệu quả.
Biểu diễn thuật toán
Để mô tả thuật giải người ta có thể dùng ngôn ngữ tự nhiên nhưng cũng có thể dùng
hình ảnh trực quan hơn để thể hiện quá trình diễn tiến của việc giải quyết bài toán. Một
thuật giải được biểu diễn bằng các kí hiệu đồ hoạ (Đồ thuật) ta gọi là lưu đồ thuật giải.
Một số thuật toán thông dụng
Sắp xếp nổi bọt
Sắp xếp nổi bọt (bubble sort) là phương pháp sắp xếp đơn giản, dễ hiểu thường được
dạy trong khoa học máy tính. Giải thuật bắt đầu từ đầu của tập dữ liệu. Nó so sánh hai
phần tử đầu, nếu phần tử đứng trước lớn hơn phần tử đứng sau thì đổi chỗ chúng cho
nhau. Tiếp tục làm như vậy với cặp phần tử tiếp theo cho đến cuối tập hợp dữ liệu. Sau
đó nó quay lại với hai phần tử đầu cho đến khi không còn cần phải đổi chỗ nữa.
Sắp xếp chèn
Sắp xếp chèn (insertion sort) là một thuật toán sắp xếp rất hiệu quả với các danh sách
nhỏ. Nó lần lượt lấy các phần tử của danh sách chèn vào vị trí thích hợp trong một danh
sách mới đã được sắp.
Sắp xếp chọn
Sắp xếp chọn (select sort) là phương pháp sắp xếp bằng cách chọn phần tử bé nhất xếp
vào vị trí thứ nhất, tương tự với các phần tử nhỏ thứ hai, thứ ba,
21/134
Sắp xếp trộn
Sắp xếp trộn (merge sort) cùng với sắp xếp nhanh là hai thuật toán sắp xếp dựa vào tư
tưởng "chia để trị" (divide and conquer). Thủ tục cơ bản là việc trộn hai danh sách đã
được sắp xếp vào một danh sách mới theo thứ tự. Nó có thể bắt đầu trộn bằng cách so
sánh hai phần tử một (chẳng hạn phần tử thứ nhất với phần tử thứ hai, sau đó thứ ba với
thứ tư ) và sau khi kết thúc bước 1 nó chuyển sang bước 2. Ở bước 2 nó trộn các danh
sách hai phần tử thành các danh sách bốn phần tử. Cứ như vậy cho đến khi hai danh sách
cuối cùng được trộn thành một.
Sắp xếp vun đống

Sắp xếp vun đống (heapsort) là một trong các phương pháp sắp xếp chọn. Ở mỗi bước
của sắp xếp chọn ta chọn phần tử lớn nhất (hoặc nhỏ nhất) đặt vào cuối (hoặc đầu) danh
sách, sau đó tiếp tục với phần còn lại của danh sách. Thông thường sắp xếp chọn chạy
trong thời gian O(n
2
). Nhưng heapsort đã giảm độ phức tạp này bằng cách sử dụng một
cấu trúc dữ liệu đặc biệt được gọi là đống (heap). Đống là cây nhị phân mà trọng số ở
mỗi đỉnh cha lớn hơn hoặc bằng trọng số các đỉnh con của nó. Một khi danh sách dữ
liệu đã được vun thành đống, gốc của nó là phần tử lớn nhất, thuật toán sẽ giải phóng nó
khỏi đống để đặt vào cuối danh sách. Sắp xếp vun đống chạy trong thời gian O(n log n).
Sắp xếp nhanh
Sắp xếp nhanh (quicksort) là một thuật toán theo tư tưởng chia để trị, nó dựa trên thủ
tục phân chia như sau: để chia một dãy ta chọn một phần tử được gọi là "chốt" (pivot),
chuyển tất cả các phần tử nhỏ hơn chốt về trước chốt, chuyển tất cả các phần tử lớn hơn
chốt về sau nó. Thủ tục này có thể thực hiện trong thời gian tuyến tính. Tiếp tục phân
chia các dãy con đó như trên cho đến khi các dãy con chỉ còn một phần tử.
Điểm khác biệt giữa sắp xếp nhanh và sắp xếp trộn là trong sắp xếp trộn việc xác định
thứ tự được xác định khi "trộn", tức là trong khâu tổng hợp lời giải sau khi các bài toán
con đã được giải, còn sắp xếp nhanh đã quan tâm đến thứ tự các phần tử khi phân chia
một danh sách thành hai danh sách con.
Ngoài ra còn nhiều giải thuật sắp xếp khác, trong đó nhiều giải thuật sắp xếp được cải
tiến từ các giải thuật trên. Trong sau giải thuật liệt kê trên, ta thường coi các giải thuật
chèn, chọn, nổi bọt là các giải thuật cơ bản, độ phức tạp trong trường hợp trung bình của
chúng là O(n
2
). Ba giải thuật còn lại thường được coi là giải thuật cao cấp, độ phức tạp
tính toán trung bình của chúng là n.lnn.
22/134
Sắp xếp theo cơ số
Sắp xếp theo cơ số (radix sort) dựa trên tính chất "số" của các khóa. Trong giải thuật

sắp xếp theo cơ số, ta không chỉ so sánh giá trị của các khóa, mà so sánh các thành phần
của khóa. Giả sử các khóa là các số biểu diễn theo hệ ghi số cơ số M. Khi đó sắp xếp
theo cơ số sẽ so sánh từng ký số của nó.
Chúng ta mô tả cách sắp này khi cơ số M=10. Giả sử phải sắp các hồ sơ đánh số bởi
3 chữ số thập phân. Đầu tiên ta chia các hồ sơ vào các đống có cùng chữ số hàng trăm
(đồng thới xếp các đống theo thứ tự của chữ số hàng trăm), trong mỗi đống con lại phân
chia theo chữ số hàng chục, cuối cùng trong mỗi đống có cùng chữ số hàng trăm và hàng
chục, sắp xếp theo thứ tự của chữ số hàng đơn vị.
Trong máy tính, đương nhiên việc sắp xếp theo cơ số nhị phân (cơ số 2) hoặc cơ số là
lũy thừa của 2 là thuận lợi nhất. Trong trường hợp cơ số 2, việc phân hoạch tương tự
như phân hoạch trong Quick Sort, chỉ khác ở chỗ cách chọn phần tử chốt.
Sắp xếp đếm phân phối
Sắp xếp đếm phân phối là phương pháp sắp xếp có độ phức tạp tuyến tính trong trường
hợp các khóa nhận hữu hạn giá trị trong khoảng cho trước. Để đơn giản ta giả sử các
phần tử của danh sách a[1 n] nhận các giá trị tự nhiên trong khoảng [1 M].
Sắp xếp đếm phân phối đầu tiên đếm các phần tử thuộc danh sách nhận giá trị k với
. Các giá trị đếm được đươc ghi vào mảng Counter[1 M]. Sau đó khi duyệt theo k từ 1
đến M, ta lần lượt xếp Counter[k] phần tử của vào danh sách a[1 n].
23/134

×