1. Trang chủ
  2. » Thể loại khác

Tin học đại cương - profthinh Giao trinh THDC C

141 84 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 141
Dung lượng 15,07 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

4 1.1.1 Lịch sử phát triển của máy tính Năm 1945, Von Neumann là người đề xuất ra nguyên lý làm việc của máy tính số, Theo đó, máy tính làm việc theo chương trình được lưu trữ trong bộ

Trang 1

ThS Trần Thị Mỹ Tiên

BÀI GIẢNG TIN HỌC ĐẠI CƯƠNG

(Tài liệu dùng cho sinh viên khối ngành kĩ thuật)

THÀNH PHỐ HỒ CHÍ MINH – NĂM 2013

Trang 2

1

MỤC LỤC

PHẦN 1 ĐẠI CƯƠNG VỀ TIN HỌC 2

Chương 1 CÁC KIẾN THỨC CƠ BẢN VỀ TIN HỌC 3

1.1 Giới thiệu về máy tính điện tử 3

1.2 Thông tin và xử lí thông tin 7

1.3 Hệ đếm và biểu diễn thông tin trong máy tính 9

1.4 Cấu trúc cơ bản của máy tính 16

1.5 Phần mềm máy tính 20

Chương 2 HỆ ĐIỀU HÀNH VÀ CÁC CHƯƠNG TRÌNH TIỆN ÍCH 22

2.1 Khái niệm và các chức năng chính của hệ điều hành 22

2.2 Phân loại hệ điều hành 29

2.3 Một số hệ điều hành phổ biến 29

2.4 Các chương trình tiện ích của hệ điều hành Windows 30

Chương 3 THUẬT TOÁN 34

3.1 Giới thiệu 34

3.2 Khái niệm thuật toán 34

3.3 Các phương pháp biểu diễn thuật toán 35

3.4 Các cấu trúc cơ bản 38

PHẦN 2 NGÔN NGỮ LẬP TRÌNH C 45

Chương 1 TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH C 47

1.1 Giới thiệu ngôn ngữ C 47

1.2 Các thành phần cơ bản của ngôn ngữ C 48

1.3 Cấu trúc cơ bản của một chương trình C 65

1.4 Biên dịch và thực thi chương trình C 67

Chương 2 NHẬP XUẤT DỮ LIỆU VÀ CÁC LỆNH ĐIỀU KHIỂN 70

2.1 Nhập xuất dữ liệu 70

2.2 Các lệnh điều khiển 81

Chương 3 HÀM VÀ TỔ CHỨC CHƯƠNG TRÌNH 100

3.1 Tổ chức chương trình thành các chương trình con 100

3.2 Định nghĩa hàm và khai báo nguyên mẫu hàm 101

3.3 Lời gọi hàm 104

3.4 Truyền đối số cho hàm 107

3.5 Phạm vi của biến 110

3.6 Hàm đệ quy 113

Chương 4 MẢNG VÀ CON TRỎ 118

4.1 Mảng 118

4.2 Con trỏ 132

Trang 3

2

PHẦN 1 ĐẠI CƯƠNG VỀ TIN HỌC

Trang 4

3

Chương 1 CÁC KIẾN THỨC CƠ BẢN VỀ TIN HỌC

1.1 Giới thiệu về máy tính điện tử

Máy tính là một trong những công cụ mạnh nhất mà con người đã tạo ra Nó hiện diện ở khắp mọi nơi, từ trường học cho đến các cơ quan, ngân hàng, bệnh viện, siêu thị, căn nhà của chúng ta,…Với sự phát triển vượt bậc trong lĩnh vực công nghệ thông tin, máy tính hiện nay rất đa dạng về tính năng và kích cỡ, đáp ứng được nhu cầu của nhiều người tiêu dùng khác nhau

Thông qua máy tính, xã hội có thể tiếp cận ngay lập tức thông tin từ khắp mọi nơi trên thế giới như tin tức, thông tin dự báo thời tiết, tỉ số của các trận đấu, lịch trình các chuyến bay, danh bạ điện thoại, bản đồ và đường đi, … Mọi người cũng có thể gửi những tin nhắn, chia sẻ sách, hình ảnh, nhạc, video, thực hiện các cuộc gọi, kết bạn mới, chia sẻ ý kiến, đặt vé máy bay, mua sắm, hoặc tham gia các khóa học chỉ với một chiếc máy tính có kết nối mạng internet

Hình 1.1 - Ứng dụng của tin học

Dù ở nhà hay đang đi trên đường, mọi người đều có thể sử dụng máy tính để quản lí lịch biểu, kiểm tra tài khoản, chuyển tiền, thanh toán hóa đơn hoặc mua bán cổ phiếu Khi công nghệ càng phát triển thì máy tính trở thành một phần trong cuộc sống hàng ngày Nhiều người tin rằng, có kiến thức và kinh nghiệm sử dụng máy tính hiệu quả sẽ góp phần tạo nên thành công cho họ

Vậy máy tính điện tử là gì?

Máy tính là một thiết bị điện tử hoạt động dưới sự điều khiển của các chỉ thị được lưu trữ trong bộ nhớ Nó có khả năng đọc, xử lí, xuất và lưu trữ dữ liệu Rất nhiều kiểu dữ liệu khác nhau có thể được xử lí bởi máy tính bao gồm dữ liệu số (số nguyên, số thực), dữ liệu kí tự (tên, địa chỉ,…), dữ liệu đồ họa (hình vẽ, biểu đồ, ….),

và âm thanh Trong đó, hai kiểu dữ liệu phổ biến nhất là dữ liệu số và dữ liệu kí tự

Trang 5

4

1.1.1 Lịch sử phát triển của máy tính

Năm 1945, Von Neumann là người đề xuất ra nguyên lý làm việc của máy tính

số, Theo đó, máy tính làm việc theo chương trình được lưu trữ trong bộ nhớ chính của

nó cùng với các dữ liệu liên quan Và chiếc máy tính điện tử đầu tiên “ENIAC” đã ra đời năm 1946 được phát triển bởi Eckert và Mauchly Từ đó đến nay, sự phát triển của máy tính đã trải qua nhiều thế hệ

Thế hệ thứ nhất (1940-1956): sử dụng một số lượng lớn bóng đèn chân không

UNIVAC và ENIAC là ví dụ điển hình của thiết bị tính toán nhanh nhất thời kì này Tuy nhiên, chúng là một thiết bị rất khổng lồ, chiếm diện tích lớn, tiêu thụ nhiều điện năng và độ tin cậy thấp, thường xuyên bị trặc do lỗi phần cứng Tốc độ tính toán cũng chỉ từ vài nghìn đến vài chục nghìn phép tính trên một giây Phần mềm chưa phát triển, chủ yếu là sử dụng ngôn ngữ máy để lập trình Dữ liệu được đưa vào máy sử dụng thẻ đục lỗ Thế hệ máy tính này đắt đến mức chỉ có các chính phủ hay các viện nghiên cứu lớn mới có đủ điều kiện để duy trì hoạt động của chúng

Thế hệ thứ hai (1956-1963): Bóng bán dẫn (Transistor) được sử dụng để thay

thế cho bóng đèn chân không Bóng bán dẫn giúp máy tính trở nên nhỏ gọn hơn, tiêu thụ điện năng ít hơn, bộ nhớ có dung lượng lớn hơn, và tin cậy hơn Ở thế hệ này đã bắt đầu chuyển từ mã nhị phân sang sử dụng kí tự và ngôn ngữ bậc thấp cho phép lập trình viên viết các chỉ thị bằng các từ Một số ngôn ngữ bậc cao cũng được phát triển trong thời gian này, chẳng hạn như COBOL, FORTRAN, ALGOL, SNOBOL

Thế hệ thứ 3 (1964-1971): Phát triển mạch tích hợp (IC) là một sự cải tiến lớn

trong giai đoạn này Các bóng bán dẫn được thu nhỏ và tích hợp trên một con chip đơn, làm tăng đáng kể tốc độ và hiệu suất của máy tính Các ngôn ngữ bậc cao như COBOL và FORTRAN được chuẩn hóa theo chuẩn ANSI Ngoài ra, một số ngôn ngữ mới cũng được giới thiệu trong thời gian này như PL/I PASCAL và BASIC Các tiến

bộ khác cần phải kể đến: người dùng có thể tương tác với máy tính thông qua bàn phím và màn hình, hệ điều hành bắt đầu xuất hiện cho phép máy tính có thể chạy nhiều ứng dụng cùng một lúc

Thế hệ thứ 4 (1971-1989): Hàng ngàn mạch tích hợp được xây dựng trên một

con chip đơn gọi là bộ vi xử lí (microprocessor) Con chip Intel 4004 được phát triển năm 1971 có thể chứa tất cả các thành phần của máy tính, từ CPU, bộ nhớ, cho đến các điều khiển xuất/nhập Bên cạnh sự nhỏ gọn, máy tính trở nên mạnh mẽ hơn với khả năng liên kết với nhau qua hình thức kết nối mạng, đánh dấu sự phát triển của Internet Máy tính ở thế hệ thứ 4 cũng cho thấy sự phát triển của giao diện đồ họa, chuột và các thiết bị cầm tay Đĩa mềm đã được sử dụng thay thế cho đĩa từ, các hệ điều hành mới được giới thiệu như MS-DOS, MS-WINDOWS UNIX và hệ điều hành độc quyền của hãng Apple

Thế hệ thứ 5 (ngày nay): Lĩnh vực nghiên cứu hiện nay chủ yếu tập trung vào

việc phát triển những máy tính biết suy nghĩ, có khả năng tự học, tự xử lí gọi là trí tuệ nhân tạo Một số ứng dụng của nó đã được dùng rộng rãi, chẳng hạn như nhận dạng hình ảnh, nhận dạng giọng nói, dịch thuật,…

Trang 6

5

1.1.2 Phân loại máy tính

Dựa trên kích thước, kiến trúc vật lý, dung lượng bộ nhớ, tốc độ xử lí, máy tính

có thể được chia làm nhiều loại như trong sơ đồ dưới đây:

Siêu máy tính: Là loại máy tính mạnh nhất, nhanh nhất và đắt nhất, nên thường

được sử dụng vào các lĩnh vực quan trọng, những bài toán cần xử lí dữ liệu lớn và tính toán phức tạp như dự báo thời tiết, nghiên cứu sự biến đổi của khí hậu, nghiên cứu năng lượng hạt nhân, khai thác dầu khí, thiết kế tên lửa, thiết kế máy bay,…

Hình 1.2 – Siêu máy tính

Máy tính lớn: Điểm khác biệt chính giữa một siêu máy tính và một máy tính lớn

là trong khi siêu máy tính tận dụng sức mạnh của nó để thực hiện một vài chương trình nhanh nhất có thể, thì một máy tính lớn lại tập trung khả năng để thực hiện nhiều chương trình đồng thời cùng lúc Máy tính lớn chủ yếu được sử dụng bởi các cơ quan,

và doanh nghiệp lớn như các ngân hàng, hàng không, các tổ chức của chính phủ để chạy những ứng dụng cần xử lý khối lượng dữ liệu lớn

Máy tính mini: Là máy tính với kích cỡ, tốc độ và khả năng tầm trung Nó thuộc

lớp máy tính đa người dùng, nằm trong khoảng giữa máy tính lớn(hệ thống đa người dùng) và máy tính cá nhân(hệ thống đơn người dùng) Máy tính mini thường được dùng trong các doanh nghiệp vừa và nhỏ

Máy vi tính: Là máy tính có kích thước nhỏ và giá thành rẻ hơn các loại máy

trên, phù hợp với nhiều người, nên đã dần được sử dụng rộng rãi ở khắp nơi từ hộ gia đình, trường học, các công ty nhỏ…Vào năm 1981, công ty IBM đã phát triển phiên

Trang 7

o Laptop: là một loại máy tính cá nhân, tích hợp hầu hết các thành phần cơ bản giống như Desktop, nhưng nó có kích thước nhỏ gọn hơn, có thể mang xách được, có thể hoạt động bằng pin, và năng lực xử lí tốt nên rất được ưa chuộng Hiện nay, rất nhiều thương hiệu laptop ra đời với tính năng, độ tin cậy, kích thước, và giá cả khác nhau như: Apple, Sony, Dell, HP, Acer,…

đã mang lại sự đa dạng hóa cho thị trường máy tính giúp người dùng dễ dàng chọn lựa sản phẩm phù hợp với nhu cầu và khả năng của mình Bên cạnh đó, loại máy tính này còn có nhiều dạng khác cũng cần phải kể đến như: netbook, tablet PC, subnotebook, ultrabook,…

o Các thiết bị cầm tay: là những thiết bị được thiết kế nhỏ gọn, có thể để gọn

trong túi Toàn bộ dữ liệu và các chương trình được lưu trữ trên vùng nhớ với dung lượng nhỏ của thiết bị hoặc thẻ nhớ ngoài Một số loại thiết bị cầm tay phổ biến nhất hiện nay như: PDA, smartphone, mobile phone,… chủ yếu phục vụ nhu cầu giải trí, đọc sách, truy cập internet của người dùng, hoặc thực thi những ứng dụng đơn giản

o Máy tính nhúng: được thiết kế để thực hiện một chức năng nhất định nào

đó và được nhúng vào trong các sản phẩm như ô tô, ti vi, robot, ATM, máy bán vé tự động,…Ưu điểm của hệ thống nhúng là có thể được tối ưu để giảm thiểu chi phí, chẳng hạn như nó không đòi hỏi bàn phím, chuột, màn hình

Hình 1.3 – Máy tính nhúng Lưu ý: Cách phân loại trên chỉ mang tính tương đối Trong tương lai, các loại

máy tính sẽ có khả năng vượt trội hơn so với hiện tại

Trang 8

7

1.2 Thông tin và xử lí thông tin

1.2.1 Thông tin và dữ liệu

Trước khi tìm hiểu thông tin được xử lí như thế nào trong máy tính, ta cần phân biệt hai khái niệm cơ bản đó là dữ liệu và thông tin Dữ liệu là tập hợp tất cả những thứ

gì mà chúng ta thu thập được, chưa qua xử lí bao gồm văn bản, số liệu, hình ảnh, audio

và video Thông tin là dữ liệu đã được xử lí, được tổ chức, có ý nghĩa và hữu dụng với con người Thông tin có thể được sinh ra, được lưu trữ, được truyền đi, được sao chép

và cũng có thể bị biến dạng

Ta xét một ví dụ sau: Một khách hàng đến siêu thị Co.op Mart Phan Văn Trị mua hàng, sau đó ra quầy tính tiền Nhân viên tại quầy sẽ nhập dữ liệu về các mặt hàng vào máy tính Sau khi các dữ liệu đó được xử lí xong thì khách hàng sẽ nhận được hóa đơn tính tiền chứa các thông tin gồm tổng số tiền cần thanh toán, số tiền thừa,….Thông tin tổng số tiền đã thu được sẽ được lưu trong bộ nhớ máy tính và siêu thị có thể sử dụng chúng làm dữ liệu đầu vào để thực hiện quá trình thống kê, báo cáo trong tương lai

Hình 1.4 – Ví dụ minh họa về thông tin và dữ liệu 1.2.2 Xử lí thông tin

Máy tính xử lí dữ liệu (đầu vào) thành thông tin (đầu ra) Dữ liệu và thông tin thường được lưu trữ trong bộ nhớ máy tính để sử dụng trong tương lai Do đó, ta có

Trang 9

8

thể xem chu kỳ xử lí thông tin là một tiến trình bao gồm ghi nhận dữ liệu đầu vào, xử

lí nó, xuất ra thông tin có ý nghĩa và các hoạt động lưu trữ

Hình 1.5 – Quá trình xử lí thông tin

Thông tin là kết quả của quá trình xử lí các dữ liệu và sau đó thông tin có thể trở thành dữ liệu mới để thông qua quá trình xử lí khác tạo ra những thông tin mới hơn

1.2.3 Đơn vị đo thông tin

Máy tính điện tử được xây dựng từ các bóng bán dẫn có hai trạng thái là tắt hoặc

mở Vì vậy, để biểu diễn thông tin trong máy tính người ta sử dụng các chữ số nhị phân 0 và 1 Việc xử lí trên hai chữ số 0 và 1 sẽ đơn giản hơn, rẻ hơn và đáng tin cậy hơn so với việc sử dụng 10 chữ số trong hệ thập phân Mỗi chữ số nhị phân mang một lượng thông tin nào đó về đối tượng và được xem là một đơn vị thông tin Đơn vị đó được gọi là “bit” và ta có thể gọi 0 hoặc 1 là một bit

Tuy nhiên, để dễ dàng hơn trong việc biểu diễn thông tin, người ta đã nhóm dãy

8 bit thành 1byte (B) Số lượng 8 bit được chọn vì đó là số lượng cần thiết để biểu diễn hoặc mã hóa một kí tự đơn Như vậy, thuật ngữ “byte” được dùng để chỉ một đơn vị lưu trữ dữ liệu trên máy tính Ngoài ra, người ta còn dùng nhiều đơn vị khác là bội của byte như sau:

Đơn vị đo dung lượng lưu trữ thông tin

Trang 10

Số này sẽ có giá trị là:

(*)

Trong đó, S là tập hợp các ký hiệu, các chỉ số k-1, k-2,…, 2, 1, 0 chính là vị trí

của của các ký hiệu ở phần nguyên của số, còn các chỉ số -1, -2, …, -l là vị trí của các

ký hiệu ở phần thập phân của số đó Mỗi hệ đếm theo vị trí đều cơ số riêng, ký hiệu là

b và tập hợp các ký hiệu nhất định Sau đây, ta sẽ xem xét 4 hệ đếm theo vị trí gồm hệ

thập phân, hệ nhị phân, hệ thập lục phân, và hệ bát phân Để phân biệt một số I ở các

hệ đếm khác nhau ta sử dụng dấu ngoặc đơn và cơ số làm chỉ số: (I)b

Ví dụ: I = 224

b Hệ nhị phân (hệ cơ số 2)

Hệ nhị phân là hệ đếm có cơ số b là 2 và sử dụng bộ 2 ký hiệu S = {0, 1} Hai ký hiệu 0 và 1 còn được gọi là bit Đây là hệ đếm mà máy tính sử dụng để biễu diễn thông tin Với một số ở hệ nhị phân ta có thể tính được giá trị của nó ở hệ thập phân dựa vào công thức (*)

Trang 11

Hệ thập lục phân có cơ số b là 16 và sử dụng 16 ký hiệu để biểu diễn:

Bảng 1.2 – Các kí hiệu tương ứng giữa hệ 10 và hệ 16

Tương tự như các hệ đếm trước, giá trị của một số thập lục phân được đánh giá dựa vào vị trí của các ký hiệu

Ví dụ: I = (2AE)16

Trang 12

11

d Hệ bát phân (hệ cơ số 8)

Hệ đếm này được sử dụng rộng rãi ở những máy tính lớn đời đầu, nhưng càng về

sau nó đã trở nên ít phổ biến hơn so với hệ nhị phân và hệ thập lục phân

Hệ bát phân có cơ số b là 8 và sử dụng bộ ký hiệu S = {0, 1, 2, 3, 4, 5, 6, 7} để

biểu diễn

Để tính được giá trị của một số ở hệ bát phân ta có thể sử dụng công thức (*)

Ví dụ: I = (1256)8

Bảng dưới đây thể hiện các số từ 0 15 được biểu diễn ở các hệ đếm khác nhau:

Thập phân Nhị phân Bát phân Thập

Hệ thập phân là hệ đếm cơ bản mà con người sử dụng hàng ngày Trong khi đó,

máy tính lại sử dụng các hệ nhị phân, hệ bát phân và hệ thập lục phân Cho nên, cần

phải có thuật toán để chuyển đổi một số từ hệ đếm này sang hệ đếm khác Ở phần giới

thiệu về các hệ đếm, chúng ta đã làm quen với cách chuyển đổi một số từ hệ đếm bất

kỳ sang hệ thập phân Sau đây là một số cách chuyển đổi từ hệ thập phân sang một hệ

đếm bất kỳ, và giữa các hệ nhị phân, hệ bát phân và hệ thập lục phân với nhau

Trang 13

12

a Chuyển đổi từ hệ 10 sang hệ đếm bất kỳ

Khi chuyển đổi một số từ hệ 10 sang hệ đếm cơ số b, ta không cần phải quan tâm tới vị trí của các ký hiệu trong số đó Giả sử một số ở hệ thập phân có dạng:

(N) 10 = I.F, với I là phần nguyên và F là phần thập phân của số N

Trước hết, ta cần tách 2 phần ra và chuyển đổi chúng riêng biệt sang hệ đếm cơ

số b Sau đó, ta ghép nối 2 kết quả lại với nhau thu được số cần tìm

Để chuyển đổi phần nguyên I, ta lấy I chia cho cơ số b được phần thương Q 1

phần dư R 1 Sau đó, tiếp tục lấy phần thương Q 1 chia cho cơ số b được phần thương

Q 2 và phần dư R 2 Tiếp tục lặp lại như trên cho đến khi phần thương Q n bằng 0 thì

dừng lại và được phần dư R n Kết quả thu được ở hệ đếm cơ số b có dạng là: R n R

trình này cho đến khi phần thập phân F n bằng 0 thì dừng Nếu trường hợp lặp vô hạn thì ta lấy kết quả gần đúng tùy theo yêu cầu Kết quả thu được ở hệ đếm cơ số b có

dạng là: 0.D 1 D 2 D 3 …D n

Ví dụ 1: Đổi số (35.625)10 sang hệ nhị phân

Trang 14

13

Phần thập phân sau khi được chuyển đổi là (0.625)10 = (0.101)2

Vậy, kết hợp với kết quả ở ví dụ 1 ta thu được (35.625)10 = (100011.101)2

Ví dụ 2: Đổi số (126.175)10 sang hệ bát phân

Phần thập phân sau khi được chuyển đổi là (0.175)10 = (0.13146…)8

Vậy, kết hợp với kết quả ở ví dụ 2 ta thu được (126.175)10 = (176.13146…)8

b Chuyển đổi giữa hệ 2 và hệ 16

Để biến đổi một số từ hệ 2 về hệ 16, ta thực hiện nhóm 4 bit từ phải sang trái, sau

đó lần lượt chuyển từng nhóm 4 bit sang hệ 16 (tra theo bảng chuyển đổi giữa các hệ đếm) và ghép lại với nhau sẽ thu được kết quả Ngược lại, khi chuyển từ hệ 16 về hệ 2, ứng với mỗi ký hiệu (chữ số) trong số 16 sẽ được biểu diễn dưới dạng 4 bit tương đương ở hệ 2

Hình 1.6 – Chuyển đổi giữa hệ 2 và hệ 16

Trang 15

c Chuyển đổi giữa hệ 2 và hệ 8

Để biến đổi một số từ hệ 2 về hệ 8, ta thực hiện nhóm 3 bit từ phải sang trái, sau

đó lần lượt thay thế từng nhóm 3 bit thành số tương ứng ở hệ 8 (tra theo bảng chuyển đổi giữa các hệ đếm) và ghép lại với nhau sẽ thu được kết quả Ngược lại, khi chuyển

từ hệ 8 về hệ 2, ứng với mỗi ký hiệu (chữ số) trong số 8 sẽ được biểu diễn dưới dạng 3 bit tương đương ở hệ 2

Hình 1.7 – Chuyển đổi giữa hệ 2 và hệ 8

Ví dụ: Đổi số (101110010)2 sang hệ cơ số 8

Kết quả là: (101110010)2 = (562)8

d Chuyển đổi giữa hệ 16 và hệ 8

Để chuyển đổi giữa hai hệ đếm này, ngoài việc sử dụng hệ 10 làm trung gian, ta

có thể sử dụng hệ 2 làm trung gian Tức là, chuyển số từ hệ 8 sang hệ 2, kết quả thu được sẽ tiếp tục chuyển sang hệ 16

1.3.3 Biểu diễn thông tin trong máy tính

Máy tính sử dụng hệ đếm nhị phân để biểu diễn tất cả các loại thông tin khác nhau Khi các dữ liệu được đưa vào máy tính dù ở dạng số hoặc phi số, thì chúng đều được mã hóa thành các dãy nhị phân gồm các bit 0 và 1 Thiết bị xuất sẽ nhận dữ liệu dạng nhị phân và biến đổi chúng trở lại dạng dữ liệu có chứa số hoặc phi số như ban đầu trước khi hiển thị hoặc in ra Mặc dù mọi dữ liệu trong máy tính đều ở dạng nhị

Trang 16

a Biểu diễn số nguyên

Số nguyên được phân ra làm 2 loại là số nguyên không dấu và số nguyên có dấu

Nó thường được biểu diễn bằng dấu +/- và độ lớn Nhưng khi chuyển sang dạng số nhị phân, ta không thể sử dụng dấu +/- nữa mà phải sử dụng bit 0 hoặc 1 để biểu diễn dấu của số nguyên và bit này được gọi là bit dấu

o Số nguyên không dấu

Để biểu diễn số nguyên không dấu, ta thực hiện chuyển số nguyên sang hệ nhị phân Nếu số lượng bit của số nhị phân nhận được nhỏ hơn N, thì cần phải thêm vào bên trái của nó các bit “0” cho đủ N bits

Ví dụ: Biểu diễn số 7 trong máy tính sử dụng 8 bits như sau:

Chuyển (7)10 sang hệ nhị phân  1 1 1

Thêm 5 bits vào bên trái  0 0 0 0 0 1 1 1

Đối với số nguyên không dấu, mọi bit đều được sử dụng để biểu diễn giá trị số Với 8 bits, có thể biểu diễn được 28 = 256 số có giá trị từ 0 (00000000)  255

(11111111) Vậy với N bits, có thể biểu diễn các số có giá trị từ 0  2N – 1

o Số nguyên có dấu

Trong biểu diễn số nguyên có dấu, ta sử dụng bit đầu tiên bên trái nhất làm bit dấu: 0 là số dương, 1 là số âm Với N – 1 bits còn lại, ta sử dụng để biểu diễn độ lớn của nó giống như số nguyên không dấu

Ví dụ 1 : Biểu diễn số +28 trong máy tính sử dụng 8 bits như sau:

Chuyển (28)10 sang hệ nhị phân dùng 7 bits  0 0 1 1 1 0 0 Thêm 1 bit dấu vào bên trái  0 0 0 1 1 1 0 0

Ví dụ 2 : Biểu diễn số -28 trong máy tính sử dụng 8 bits như sau:

Chuyển (28)10 sang hệ nhị phân dùng 7 bits  0 0 1 1 1 0 0 Thêm 1 bit dấu vào bên trái  1 0 0 1 1 1 0 0

Vậy, với N bits ta có thể biểu diễn các số nằm trong miền từ -2N-1 2N-1 – 1 Với N = 8, có thể biểu diễn các số nguyên từ -128  127 (-27  27 – 1)

N = 16, có thể biểu diễn các số nguyên từ -32768  32767 (-215  215 – 1)

b Biểu diễn số thực

Để biểu diễn số thực trong máy tính sử dụng N bits, có hai cách là biểu diễn dấu phẩy tĩnh và dấu phẩy động

Trang 17

16

o Biểu diễn dấu phẩy tĩnh

Trong N bits dùng để biểu diễn thì bit đầu tiên bên trái dùng làm bit dấu (0 là số dương, 1 là số âm), còn lại dùng một số bit để biểu diễn phần nguyên và một số khác cho phần thập phân Do đó, dấu phẩy nằm ở vị trí cố định

Ví dụ: trong dãy 8 bits ta sử dụng 4 bits cho phần nguyên, 3 bits cho phần thập phân và 1 bit dấu để biểu diễn số 10011.101

1 0 0 1 1 1 0 1

Bit dấu Phần nguyên Phần thập phân

Tuy nhiên, việc cố định số lượng bit cho phần nguyên và phần thập phân khi biểu diễn sẽ gây thiếu chính xác, cũng như làm hạn chế miền giá trị mà nó có thể biểu diễn được

o Biểu diễn dấu phẩy động

Đây là phương pháp biểu diễn đảm bảo được độ chính xác cần thiết Mỗi số thực

sẽ được đưa về dạng như sau: N = M x R E

Trong đó, M: phần định trị, R: là cơ số của hệ đếm hiện thời, E: phần số mũ

mã khác nhau sẽ dùng số lượng bit khác nhau để biểu diễn một ký tự Hiện nay, có nhiều bảng mã khác nhau được dùng để mã hóa các ký tự:

- BCD: sử dụng 6 bits và biểu diễn được 26 = 64 ký tự

- ASCII: đầu tiên sử dụng 7 bits, nhưng về sau mở rộng ra 8 bits Bảng mã này được chia làm hai phần: phần đầu gồm 128 ký tự chuẩn dùng chung, phần sau là phần

mở rộng dùng để mã hóa ký tự đặc biệt, ký tự riêng của từng nước

- UNICODE: là bảng mã toàn cầu chứa tất cả các ký tự của các nước trên thế giới Nó sử dụng 16 bits và biểu diễn được 216 = 65536 ký tự

Ví dụ: Ký tự A trong bảng mã ASCII có mã là 1000001, nhưng mã nhị phân khó nhớ nên ta thường chuyển sang hệ thập phân là 65

1.4 Cấu trúc cơ bản của máy tính

Về cơ bản, máy tính bao gồm những thành phần chính như: thiết bị nhập, thiết bị xuất, bộ nhớ, và bộ xử lí trung tâm Các thành phần này được tổ chức theo cấu trúc như hình dưới đây:

Trang 18

17

Hình 1.8 – Cấu trúc logic của máy tính

Trong đó,

thể hiện luồng dữ liệu và chỉ thị

- biểu diễn các lệnh điều khiển được thực hiện bởi bộ điều khiển

1.4.1 Thiết bị nhập

Là thiết bị được sử dụng để đọc dữ liệu và các chỉ thị vào trong máy tính Thiết

bị nhập sẽ thực hiện chuyển đổi dữ liệu nhập thành dạng nhị phân để máy có thể hiểu được Sau đây là một số thiết bị nhập phổ biến:

1.4.2 Thiết bị xuất

Là thiết bị nhận thông tin ở dạng nhị phân từ máy tính và chuyển đổi nó sang dạng ngôn ngữ con người có thể hiểu được Thông tin được hiển thị ở nhiều dạng khác nhau như dạng in trên giấy, dạng điện tử được lưu trên đĩa cứng, CD và được hiển thị trên màn hình máy tính, hoặc dạng âm thanh Một vài thiết bị xuất phổ dụng cần phải

kể đến như màn hình, máy chiếu, loa, tai nghe, máy in, máy vẽ (plotters),…

Trang 19

18

1.4.3 Thiết bị nhập xuất

Bên cạnh những thiết bị chỉ có khả năng xuất hoặc nhập, hiện nay còn có nhiều thiết bị tích hợp cả hai chức năng này Chẳng hạn như màn hình cảm ứng, máy FAX, headset, modem,…

Bộ nhớ trong được chia làm 2 loại gồm bộ nhớ truy xuất ngẫu nhiên (RAM) và

bộ nhớ chỉ đọc (ROM)

Bộ nhớ RAM (Random Access Memory): được gọi là truy xuất ngẫu nhiên bởi

vì máy tính có thể truy xuất dữ liệu ngay lập tức tại ô nhớ bất kì Thời gian truy xuất

dữ liệu hoàn toàn không phụ thuộc vào vị trí lưu trữ dữ liệu RAM là nơi lưu trữ tạm thời các dữ liệu và chương trình trong quá trình xử lí Chúng ta có thể ghi/đọc/xóa dữ liệu trên RAM, tuy nhiên toàn bộ dữ liệu này sẽ bị mất khi tắt máy

Bộ nhớ ROM (Read Only Memory): chứa những dữ liệu và các chỉ thị cơ bản

mà máy tính sử dụng khi khởi động Dữ liệu trên ROM được ghi sẵn bởi nhà sản xuất

và sẽ không bị mất khi tắt máy ROM là bộ nhớ chỉ đọc nên người sử dụng không thể thay đổi dữ liệu trên nó

Tuy có tốc độ truy xuất cao nhưng bộ nhớ trong thường có kích thước nhỏ và chỉ để lưu trữ tạm thời, nên khi cần sao lưu lượng dữ liệu lớn để sử dụng về sau thì cần phải ghi chúng vào các thiết bị lưu trữ (bộ nhớ ngoài) Thiết bị lưu trữ truy xuất dữ liệu một cách tuần tự, tức là tìm qua từng ô nhớ cho đến khi tìm thấy dữ liệu Vì thế, thời gian truy xuất lâu hơn nhiều so với bộ nhớ trong Tuy vậy, các thiết bị lưu trữ rẻ hơn nhiều so với bộ nhớ trong, và đặc biệt là dữ liệu được lưu trữ trên chúng có thể dễ dàng được mang chuyển, được sao chép từ máy tính này sang máy tính khác Hiện nay, các thiết bị lưu trữ rất đa dạng gồm băng từ, đĩa mềm, đĩa cứng, bộ nhớ dùng công nghệ flash (thẻ nhớ, đĩa USB flash), các đĩa quang (CD-R, CD-RW, DVD-R, DVD-RW, Blu-ray Disc-ROM), …

Trang 20

19

1.4.5 Bộ xử lí trung tâm (CPU)

CPU (còn được gọi là bộ vi xử lí) là bộ não của máy tính Chức năng của CPU là thực thi các chương trình và điều khiển mọi hoạt động của các thành phần khác như bộ nhớ, thiết bị xuất/nhập CPU gồm 4 phần chính là bộ điều khiển, bộ số học-logic (ALU) các thanh ghi và đồng hồ

Bộ điều khiển thực hiện kiểm soát và điều phối hoạt động của tất cả các đơn vị khác nên nó được xem như là thành phần quan trọng nhất của CPU Bộ điều khiển có chức năng nạp các chỉ thị từ bộ nhớ, giải mã các chỉ thị, điều khiển đưa dữ liệu đến các

vị trí chính xác và đúng thời điểm

Chức năng của bộ số học –logic là thực hiện các phép tính toán số học cơ bản (cộng, trừ, nhân, chia) và phép tính logic ( and, or, not) Nó cũng thực hiện các phép so sánh, tăng, giảm, và dịch trái

Còn thanh ghi dùng để lưu trữ tạm thời các dữ liệu và chỉ thị Nó là bộ nhớ có kích thước nhỏ và tốc độ truy xuất cao Bộ vi xử lí chứa nhiều loại thanh ghi khác nhau, mỗi loại có chức năng riêng của mình

Bên cạnh đó, CPU còn chứa một bộ phận phát sinh xung nhịp nhằm đồng bộ hóa các hoạt động của nó gọi là đồng hồ Tốc độ của CPU chính là nhịp của đồng hồ trong mỗi giây, và được đo bằng gigahertz (GHz) Tốc độ càng cao thì hiệu suất của máy tính càng cao

CPU sẽ xử lí mỗi chỉ thị theo chu kỳ gồm bốn thao tác cơ bản là nạp, giải mã, thực thi và lưu trữ

Hình 1.9 – Quá trình xử lí một chỉ thị của CPU

Ngoài các bộ phận đã nêu trên, máy tính còn có các bộ phận khác như bo mạch chủ dùng để kết nối các bộ phận của máy tính lại với nhau, các khe cắm mở rộng, card mạng, card âm thanh, card màn hình, các cổng giao tiếp với các thiết bị ngoại vi, đường truyền (bus), bộ nguồn,…

Trang 21

20

1.5 Phần mềm máy tính

Phần cứng của máy tính không thể suy nghĩ, phân tích dữ liệu hoặc tự mình đưa

ra quyết định được Sự ra đời của phần mềm (tập hợp các chương trình) khiến cho hiệu quả sử dụng phần cứng được nâng cao, rất nhiều công việc của con người được tự động hóa và vận hành nhanh chóng Một chương trình là tập hợp các chỉ thị được sắp xếp theo một trình tự có logic để chỉ dẫn cho máy tính giải quyết các vấn đề Quá trình viết chương trình được gọi là lập trình Một tập hợp các qui ước để viết một chỉ thị(lệnh) để đưa vào máy, cho máy có thể nhận diện và thi hành gọi là ngôn ngữ lập trình Một phần mềm có thể được viết bằng một hoặc nhiều ngôn ngữ lập trình khác nhau bởi lập trình viên Phần mềm được chia ra làm hai loại là phần mềm hệ thống và phần mềm ứng dụng

Chương trình tiện ích được sử dụng để phân tích, cấu hình, tối ưu, và bảo trì hệ thống máy tính

1.5.2 Phần mềm ứng dụng

Là các chương trình được thiết kế nhằm phục vụ nhu cầu sử dụng của con người

để hoàn thành một hoặc nhiều công việc nào đó Nó sử dụng những dịch vụ mà phần mềm hệ thống cung cấp để tương tác với phần cứng Những loại phần mềm ứng dụng phổ biến như:

- Phần mềm văn phòng nổi tiếng nhất hiện nay là Microsoft Office Trong bộ phần mềm này gồm có Word, Excel, PowerPoint, Access, One Note, InfoPath, Outlook, Publisher,…

- Phần mềm hỗ trợ học tập : Matlab, MathType, các phần mềm từ điển,…

- Phần mềm thiết kế đồ họa: AutoCAD, Adobe Photoshop, MS Paint…

- Phần mềm hỗ trợ trao đổi thông tin: trình duyệt web(IE, Firefox Chrome, Safari, Opera), Yahoo Messenger, Skype,

- Phần mềm giải trí: game, windows media player,

Trang 22

21

CÂU HỎI CHƯƠNG 1

Câu 1: Máy tính được chia ra làm bao nhiêu loại? Hãy kể tên từng loại

Câu 2: Phân biệt hai khái niệm thông tin và dữ liệu

Câu 3: Hãy liệt kê các đơn vị đo thông tin

Câu 4: Thực hiện chuyển đổi sau: 15GB = ?MB = ?KB

Câu 5: Giả sử mỗi bài hát MP3 có dung lượng 3.5MB Hỏi một ổ đĩa cứng có

dung lượng 500GB chứa được khoảng bao nhiêu bài hát trên?

Câu 6: Chuyển đổi các giá trị sau từ hệ đếm cơ số b1 sang hệ đếm cơ số b2:

Câu 7: Kể tên các thiết bị nhập, thiết bị xuất, thiết bị nhập xuất

Câu 8: Bộ nhớ là gì? Có bao nhiêu loại bộ nhớ?

Câu 9: Các thành phần chính của CPU là gì?

Câu 10: Phân biệt phần mềm hệ thống và phần mềm ứng dụng

Trang 23

22

Chương 2

HỆ ĐIỀU HÀNH VÀ CÁC CHƯƠNG TRÌNH TIỆN ÍCH

2.1 Khái niệm và các chức năng chính của hệ điều hành

Hệ điều hành (HĐH) là hệ thống phần mềm chạy trên máy tính, dùng để điều hành, quản lí các thiết bị phần cứng và các tài nguyên hệ thống HĐH tạo ra môi trường giao tiếp giữa người sử dụng và phần cứng máy tính, cho phép họ có thể phát triển và sử dụng các ứng dụng một cách dễ dàng Chính vì thế, bất cứ máy tính nào cũng cần phải cài đặt HĐH, nếu thiếu nó thì máy tính sẽ trở nên vô dụng HĐH thường được cài đặt và lưu trữ trên đĩa cứng của máy tính Đối với các thiết bị cầm tay như điện thoại thông minh thì nó thường được cài đặt ở bộ nhớ trong Mỗi loại máy tính sẽ

sử dụng một loại HĐH riêng Chẳng hạn như, máy tính lớn sẽ không sử dụng HĐH giống như máy tính cá nhân, và thậm chí các loại máy tính để bàn cũng có thể sử dụng những HĐH khác nhau Và một số loại khác lại có thể cài đặt đồng thời nhiều HĐH Hiện nay có rất nhiều HĐH cho nhiều loại máy khác nhau Nhưng đa số các HĐH đều có các chức năng chính như khởi động và tắt máy tính, hỗ trợ giao diện người dùng, quản lí các chương trình, quản lí bộ nhớ, điều phối các tác vụ, cấu hình thiết bị, thiết lập các kết nối internet, giám sát hiệu năng máy tính, quản lí tập tin, tự động cập nhật, bảo mật, quản lí mạng và một số tiện ích khác

2.1.1 Khởi động và tắt máy tính

Quá trình khởi động một máy tính được thực hiện dựa trên hai cách là khởi động nguội và khởi động nóng Khởi động nguội tức là bắt đầu bật máy tính đã được tắt hoàn toàn bằng cách nhấn vào nút “ON” Ngược lại, khi ta khởi động lại máy tính bằng cách sử dụng HĐH hoặc là nhấn nút “RESET” gọi là khởi động nóng Quá trình khởi động nóng thường xảy ra sau khi cài đặt phần mềm mới, hoặc khi một chương trình nào đó bị treo Ở hầu hết các máy tính thường có 3 chế độ tắt máy là Shutdown, Sleep, Hibernate Đối với máy tính để bàn thì ba chế độ này hầu như không khác nhau, nhưng với máy tính xách tay thì vấn đề tiết kiệm điện năng luôn được quan tâm Nên cần phải lựa chọn chế độ tắt hiệu quả nhất và phù hợp với nhu cầu sử dụng

- Shutdown: là chế độ tắt toàn bộ các chương trình đang được mở và máy tính

sẽ không tiêu tốn điện năng nữa

- Sleep: còn được gọi là chế độ standby Khi sử dụng chế độ này, máy tính sẽ

lưu lại trạng thái hiện tại gồm tất cả các chương trình đang được mở và dữ liệu đang xử lí vào bộ nhớ RAM Máy tính lúc này sẽ chỉ cần một lượng điện năng nhỏ để duy trì hoạt động của bộ nhớ, còn các bộ phận khác sẽ được tắt hoàn toàn Khi bật máy tính trở lại từ chế độ Sleep, hệ thống sẽ khởi động nhanh chóng và chúng ta có thể làm việc được ngay Tuy nhiên, chế độ này vẫn có nhược điểm là nếu nguồn điện bị ngắt đột ngột thì toàn bộ dữ liệu đang xử lí

và chương trình đang mở sẽ bị mất

- Hibernate: là chế độ ngủ đông và gần giống với chế độ sleep Tuy nhiên, ở

chế độ này thì trạng thái làm việc hiện tại sẽ được lưu vào ổ cứng và không

Trang 24

và các lệnh Nó gây khó khăn khi sử dụng với những người ít kinh nghiệm vì họ phải nhớ tất cả các lệnh

Hình 2.2 – Giao diện dòng lệnh

Trang 25

24

Ngược lại, với giao diện đồ họa, người dùng có thể tương tác với phần mềm thông qua hệ thống thực đơn (menu), và các biểu tượng hình ảnh trực quan Loại giao diện này phù hợp với nhiều đối tượng người sử dụng, kể cả những người ít kinh nghiệm hoặc không hiểu nhiều về máy tính

Hình 2.3 – Giao diện đồ họa 2.1.3 Quản lí chương trình

Một chức năng quan trọng của HĐH đó là quản lí dữ liệu và chương trình chạy trên nó Khi người dùng mở một ứng dụng, thì CPU sẽ tải ứng dụng đó từ thiết bị lưu trữ vào bộ nhớ trong Trước đây, máy tính cá nhân thường hay sử dụng các HĐH đơn nhiệm, cho phép người dùng chạy một ứng dụng tại một thời điểm Hầu hết các loại điện thoại di động đều sử dụng HĐH đơn nhiệm Chẳng hạn như, người dùng đang làm việc với chương trình chụp ảnh và muốn nhắn tin cho một người bạn thì họ phải tắt chương trình chụp ảnh trước

Để khắc phục nhược điểm đó, rất nhiều HĐH đa nhiệm ra đời, cho phép người dùng làm việc với nhiều ứng dụng cùng lúc Khi máy tính đang chạy nhiều ứng dụng đồng thời, thì sẽ có một ứng dụng ở trạng thái kích hoạt và đang được sử dụng còn các ứng dụng còn lại ở trạng thái chạy nền Trạng thái chạy nền là mức mà các ứng dụng không hiển thị ở màn hình chính nhưng vẫn tiếp tục thực thi các lệnh

Trang 26

25

Hình 2.4 – Các chương trình chạy trên HĐH đa nhiệm 2.1.4 Quản lí bộ nhớ

HĐH chịu trách nhiệm quản lí bộ nhớ để tối ưu hóa việc sử dụng bộ nhớ RAM

Cụ thể là HĐH sẽ tổ chức cấp phát và thu hồi vùng nhớ lưu trữ dữ liệu và các chỉ thị khi chúng đang được xử lí Nếu máy tính chạy nhiều ứng dụng đồng thời, sẽ có lúc xảy ra tình trạng thiếu bộ nhớ Ví dụ như: một trình duyệt web cần 128MB RAM, chương trình diệt virus cần 256MB RAM, chương trình chỉnh sửa hình ảnh cần 256MB RAM Vậy tổng dung lượng cần thiết cho tất cả các ứng dụng là 640MB Nhưng nếu, máy tính chỉ có 512MB bộ nhớ RAM thì HĐH phải sử dụng bộ nhớ ảo để giải quyết vấn đề này Bộ nhớ ảo thực ra chính là một phần không gian của thiết bị lưu trữ, thường là ổ cứng, được HĐH phân bổ, có chức năng giống như RAM Bên cạnh

đó, người sử dụng HĐH Windows có thể sử dụng thẻ nhớ ngoài, hoặc USB làm bộ nhớ ảo vì tốc độ truy xuất thông tin nhanh hơn so với ổ cứng

2.1.5 Điều phối tác vụ

Mỗi tác vụ bao gồm các hoạt động như nhận dữ liệu từ thiết bị nhập, xử lí các chỉ thị, gửi thông tin ra thiết bị xuất, truyền dữ liệu từ thiết bị lưu trữ vào bộ nhớ trong và ngược lại Nhiệm vụ của HĐH chính là xác định thứ tự thực hiện cho mỗi tác vụ dựa trên độ ưu tiên của nó Tại mỗi thời điểm, một thiết bị chỉ có thể xử lí một tác vụ duy nhất nên nếu có nhiều tác vụ cần xử lí thì HĐH sẽ đưa toàn bộ chúng vào trong hàng đợi, và chờ tới lượt xử lí Ta xét một ví dụ sau, máy in đang in một tài liệu A, sau đó ta cần in thêm 3 tài liệu khác Lúc này, HĐH vẫn xử lí và thay vì gửi tới máy in ngay lập tức thì nó sẽ đưa 3 tài liệu này vào trong bộ đệm để chờ được chuyển tới máy in

Trang 27

26

2.1.6 Cấu hình thiết bị

Như đã giới thiệu ở chương trước, một máy tính là sự kết hợp của nhiều thiết bị khác nhau Mỗi thiết bị đều có những đặc điểm, tính năng và một driver riêng biệt Driver là một chương trình cung cấp các thông số của thiết bị, để giúp cho HĐH có thể nhận diện và giao tiếp với thiết bị đó Khi bắt đầu khởi động máy tính, HĐH sẽ tải lên driver của từng thiết bị Các thiết bị sẽ không hoạt động được nếu không có driver chính xác Trong trường hợp, ta gắn một thiết bị mới vào máy tính, chẳng hạn như máy in hoặc máy quét thì driver của nó phải được cài đặt trước khi sử dụng Ngày nay, rất nhiều HĐH đã tích hợp driver của các thiết bị khác nhau HĐH sẽ tự động cấu hình thiết bị mới khi cài đặt nó và kiểm tra xung đột với các thiết bị khác

2.1.7 Thiết lập kết nối internet

Ngày nay, máy tính sẽ kém hữu dụng nếu không có kết nối internet Vì vậy, HĐH cung cấp phương thức để một máy tính giao tiếp được với máy tính khác Chẳng hạn như trong HĐH Windows 7, để thiết lập kết nối mạng ta có thể vào Control Panel

 Network and Internet  Network and Sharing Center, rồi chọn “Set up a new connection or network” Sau đó, dựa trên hướng dẫn của wizard ta có thể thiết lập kết nối thành công

2.1.8 Giám sát hiệu năng máy tính

HĐH thường tích hợp một chương trình giám sát hiệu năng Chương trình này sẽ thực hiện đánh giá và báo cáo thông tin liên quan đến những tài nguyên và thiết bị khác nhau của máy tính Ví dụ như, người dùng có thể theo dõi được bộ vi xử lí, ổ đĩa, mạng, và bộ nhớ đang được sử dụng như thế nào Những thông tin trong báo cáo hiệu năng sẽ giúp cho người dùng hoặc người quản trị xác định được và giải quyết các vấn

đề liên quan đến tài nguyên máy tính Một vấn đề thường gặp là máy tính chạy cực chậm, nhờ vào chương trình giám sát hiệu năng, ta có thể xác định được bộ nhớ đang được sử dụng tối đa Khi đó người dùng có thể nâng cấp bộ nhớ RAM cho máy tính

Hình 2.5 – Chương trình giám sát hiệu năng máy tính

Trang 28

27

2.1.9 Quản lí tập tin

Một chức năng khá quan trọng của HĐH là tổ chức, quản lí tập tin (file) và thư mục (folder)

Tập tin: là một tập hợp các thông tin được tổ chức lưu trữ thành một đơn vị độc

lập Mỗi tập tin gồm có 2 phần là tên và phần mở rộng được cách nhau bởi dấu (.) Đây là đơn vị nhỏ nhất được lưu trữ ở bộ nhớ ngoài Dữ liệu sẽ không thể lưu ở bộ nhớ ngoài được nếu nó không nằm trong dạng tập tin Tập tin có các thuộc tính như vị trí lưu trữ, kích thước, loại tập tin, thời gian được tạo ra, thời gian chỉnh sửa cuối cùng,

Hình 2.6 – Hiển thị các thuộc tính của các tập tin

HĐH luôn theo dõi vị trí lưu trữ các tập tin trên bộ nhớ ngoài thông qua các loại

hệ thống tập tin Có hai loại hệ thống tập tin là FAT và NTFS Đa số các HĐH hiện nay đều sử dụng loại NTFS vì những tính năng của nó mang lại độ tin cậy và bảo mật cao như khả năng chịu lỗi, cung cấp khả năng phục hồi tập tin nếu ổ cứng bị lỗi, cho phép thiết lập quyền truy cập đối với tập tin hoặc thư mục,…

Thư mục: HĐH cho phép tổ chức các tập tin thành từng nhóm, được gọi là thư

mục để dễ dàng quản lí và truy xuất Một thư mục có thể chứa một hoặc nhiều thư mục con Các thư mục trên ổ đĩa được tổ chức một cách logic dưới dạng cây gọi là cây thư mục

Hệ thống quản lí tập tin cho phép người dùng thực hiện các thao tác trên tập tin

và thư mục gồm tạo, sao chép, di chuyển, xóa, sắp xếp và chỉnh sửa tên, tìm kiếm

2.1.10 Tự động cập nhật

Ở hầu hết các HĐH hiện nay đều có tính năng tự động cập nhật bao gồm phiên bản mới của các phần mềm sau khi sửa lỗi hoặc bổ sung thêm chức năng mới, những thay đổi về driver của các thiết bị Chẳng hạn như, cập nhật các phiên bản mới của trình duyệt web, chương trình diệt virus,…

Nhiều nhà cung cấp phần mềm cho phép tải miễn phí các phiên bản mới đối với những người dùng đã mua bản quyền Tính năng tự động cập nhật sẽ đưa ra thông báo khi các bản cập nhật đã sẵn sàng, nếu người dùng đồng ý thi nó sẽ tự động tải về và cài đặt

Trang 29

Hình 2.8 – Quản lí tài khoản

Bên cạnh cơ chế tài khoản người dùng, để bảo vệ dữ liệu khi truyền qua mạng internet, người quản trị có thể chỉ định cho HĐH mã hóa chúng thành dạng không thể đọc được Người nhận dữ liệu muốn đọc được, cần phải biết cách giải mã dữ liệu đó

Trang 30

29

2.2 Phân loại hệ điều hành

Dựa trên nhiều tiêu chí khác nhau, HĐH có thể được phân loại như bảng sau:

Tiêu chí phân loại Phân loại HĐH

Số lượng người

dùng (truy xuất tài

nguyên)

HĐH đơn người dùng: chỉ cho phép một người dùng

truy xuất đến tài nguyên máy tính tại một thời điểm

HĐH đa người dùng: tài nguyên của máy tính có thể

được chia sẻ cho nhiều người dùng khác nhau tại cùng một thời điểm

Loại máy tính

HĐH dành cho máy chủ

HĐH dành cho máy tính cá nhân

HĐH nhúng: dành cho các thiết bị di động hoặc hệ

98, Windows 2000, Windows XP, Windows Vista, Windows 7, Windows Server

2003, Windows Server 2008 Bên cạnh đó, những phiên bản mới nhất của Windows dành cho máy tính cá nhân, thiết bị di động và máy chủ cũng đã được phát hành như Windows 8, Windows Phone 8, Windows Server 2012 R2 HĐH Windows có khá nhiều ưu điểm nổi trội như giao diện trực quan, dễ sử dụng, phù hợp cho tất cả mọi người, có một số lượng lớn các phần mềm được viết cho Windows, hỗ trợ hầu hết các thiết bị phần cứng, Tuy nhiên, nó cũng có những nhược điểm nhất định như người dùng cần phải trả phí khá cao khi sử dụng, độ tin cậy và bảo mật chưa cao, không phải

là hệ thống mã nguồn mở…

2.3.2 Hệ điều hành Linux

Linux là HĐH mã nguồn mở khá nổi tiếng cho phép người dùng có thể xem và

thay đổi mã nguồn của nó Ngoài ra, nó còn có rất nhiều những ưu điểm khác như hỗ trợ một số phiên bản miễn phí hoặc giá thành thấp hơn nhiều so với Windows, phần lớn các phiên bản đều hoạt động ổn định trong thời gian dài mà không cần phải khởi động lại máy, khả năng bảo mật cao, phù hợp với nhiều người sử dụng khác nhau,… Tuy nhiên, số lượng phần cứng được hỗ trở bởi Linux vẫn còn rất khiêm tốn so với Windows Linux đầu tiên do Linus Torvalds viết vào năm 1991 dựa trên HĐH Unix Linux gồm có một nhân kernel và bộ các ứng dụng của người dùng Nhân Linux được

Trang 31

30

sử dụng trong nhiều bản phân phối phổ biến như Ubuntu, Debian, Google’s Android, Red Hat

2.3.3 Hệ điều hành dành cho các thiết bị di động

Đây là loại HĐH được cài đặt trên các thiết bị như điện thoại thông minh, máy tính bảng, PDA Một số tính năng phổ biến của chúng là hỗ trợ đa tác vụ, duyệt Web, gửi và nhận email, đồng bộ hóa dữ liệu với máy tính cá nhân, hỗ trợ đọc các loại file khác nhau (.doc, xls, pdf,…), cho phép người dùng cài đặt ứng dụng mới,… Các HĐH dành cho thiết bị di động phổ biến nhất hiện nay là Android, iOS, Windows Phone, BlackBerry

2.4 Các chương trình tiện ích của hệ điều hành Windows

Chương trình tiện ích là một loại phần mềm thực hiện một tác vụ cụ thể, thường liên quan đến quản lí và bảo trì hệ thống máy tính Hầu hết các HĐH đều tích hợp nhiều chương trình tiện ích khác nhau Những chức năng mà chúng cung cấp như quản

lí tập tin, tìm kiếm tập tin, xem ảnh, gỡ bỏ chương trình, dọn dẹp ổ đĩa, chống phân mảnh ổ đĩa, sao lưu dữ liệu, thiết lập chế độ lưu màn hình, nén tập tin,…

2.4.1 Windows Explorer

Windows Explorer là một chương trình quản lí tập tin trong HĐH Windows cho phép hiển thị các tập tin/thư mục và thực hiện các thao tác cơ bản trên chúng như tạo mới, sao chép, đổi tên, xóa, di chuyển, sắp xếp, tìm kiếm,…

Hình 2.9 – Tiện ích Windows Explorer 2.4.2 Tiện ích tìm kiếm dữ liệu

Đây là một tiện ích hỗ trợ cho người dùng tìm kiếm các tập tin được lưu trữ ở những vị trí khác nhau trong máy tính Nó sẽ tìm kiếm một hoặc nhiều tập tin dựa trên những tiêu chí do người dùng đưa ra Những tiêu chí đó có thể là một từ hoặc một câu nào đó chứa trong tập tin, các thuộc tính của tập tin như ngày tạo, kích thước, tên và loại tập tin

Trang 32

31

Hình 2.10 – Tiện ích dọn dẹp ổ đĩa 2.4.3 Chương trình dọn dẹp ổ đĩa

Tiện ích này sẽ thực hiện tìm kiếm và xóa tất cả các tập tin không cần thiết khỏi

ổ đĩa, chẳng hạn như tập tin đã bị xóa, tập tin chương trình không được sử dụng, …

Hình 2.11 – Tiện ích dọn dẹp ổ đĩa 2.4.4 Chương trình sao lưu và phục hồi dữ liệu

Tiện ích sao lưu dữ liệu trong cho phép người dùng sao chép các tập tin hoặc toàn bộ đĩa cứng và lưu trữ ở một vị trí khác như đĩa cứng ngoài, CD/DVD, USB,…Trong quá trình sao lưu, các tập tin có thể được nén lại để giúp thu nhỏ kích cỡ của chúng Vì vậy, người dùng thường không thể sử dụng trực tiếp các tập tin ở dạng sao lưu Trong trường hợp này, tiện ích phục hồi dữ liệu sẽ giúp giải nén và trả về dạng ban đầu cho chúng Người dùng có thể đặt lịch biểu cho máy tính tự động sao lưu thường xuyên, tránh mất mát dữ liệu

Trang 33

WinZip hoặc WinRAR là hai tiện ích nén dữ liệu thường được sử dụng trong HĐH Windows

Trang 34

33

CÂU HỎI CHƯƠNG 2

Câu 1: Nêu khái niệm hệ điều hành? Có bao nhiêu loại HĐH? Hãy kể tên một số

hệ điều hành được dùng phổ biến hiện nay?

Câu 2: Hãy cho biết những chức năng chính của hệ điều hành là gì?

Câu 3: Phân biệt các chế độ tắt máy tính?

Câu 4: Phân biệt giao diện dòng lệnh và giao diện đồ họa?

Câu 5: Nêu khái niệm tập tin và thư mục?

Câu 6: Chương trình nào sau đây dùng để quản lí thư mục và tập tin?

của máy tính?

Trang 35

34

Chương 3 THUẬT TOÁN

3.1 Giới thiệu

Trước hết, chúng ta hãy cùng xem xét bài toán thường gặp là tìm đường đi ngắn nhất từ địa điểm A đến địa điểm B

- Dữ kiện: Địa điểm A, B và bản đồ

- Yêu cầu: Tìm ra một đường đi ngắn nhất giữa hai địa điểm trên

Dễ thấy rằng, mỗi bài toán đặt ra luôn có hai thành phần cơ bản là các dữ kiện của bài toán và yêu cầu phải làm gì Việc giải quyết bài toán nghĩa là từ các dữ kiện đã cho dùng một số hữu hạn các thao tác thích hợp để tìm ra kết quả theo yêu cầu của bài toán

Từ khi máy tính ra đời, với tốc độ và tính chính xác của mình, nó đã trở thành một công cụ hữu dụng trong việc giải quyết nhiều bài toán phức tạp Tuy nhiên, bản thân máy tính chỉ là một thiết bị vật lí vô tri vô giác chỉ có khả năng thực hiện chính xác từng bước các chỉ thị được viết trong chương trình Vì thế, bước đầu tiên quan trọng nhất mà con người cần phải làm đó là đưa ra cách giải quyết bài toán mà có thể

“giao cho máy làm được” Như vậy, trình tự các bước thực hiện để giải quyết một bài toán được gọi là một thuật toán Thuật toán là sự thể hiện của phương pháp giải quyết tường minh một bài toán và là cơ sở để chuyển giao công việc cho máy tính Lập trình chính là quá trình mã hóa thuật toán bằng cách sử dụng các ngôn ngữ lập trình để máy tính có thể hiểu và thực thi được Không có thuật toán thì không thể có chương trình

Do đó, việc nghiên cứu các thuật toán hiệu quả đóng vai trò rất quan trọng đối với lĩnh vực khoa học máy tính

3.2 Khái niệm thuật toán

Thuật toán là thủ tục gồm một tập hợp hữu hạn các qui tắc, nhằm xác định một dãy hữu hạn các thao tác thực hiện trên các đối tượng dữ liệu đầu vào (input) để giải quyết một hoặc một lớp bài toán và thu được kết quả xác định (output)

Ví dụ 1: Thuật toán Euclid là thuật toán tìm ước số chung lớn nhất (USCLN) của hai số nguyên dương a và b

- Input: a, b là số nguyên dương

- Output: USCLN của a và b

Thuật toán có thể được mô tả như sau:

 Bước 1: Nếu a < b thì hoán vị hai số a, b cho nhau

 Bước 2: Nếu b = 0 thì USCLN là a

Trang 36

35

 Bước 3: Ngược lại, thì thực hiện

o Tìm số dư r của phép chia a cho b

o Gán a = b, b = r, rồi quay trở lại bước 2

Ví dụ 2: Thuật toán tìm phần tử lớn nhất trong một dãy hữu hạn các số nguyên

- Input: một dãy hữu hạn các số nguyên

- Output: giá trị lớn nhất trong dãy

Ta có thể mô tả thuật toán như sau:

 Bước 1: Đặt giá trị lớn nhất max bằng số nguyên đầu tiên

 Bước 2: So sánh số nguyên kế tiếp trong dãy với giá trị max, nếu nó lớn

hơn max thì ta gán max bằng số nguyên này

 Bước 3: Nếu trong dãy còn số nguyên chưa xét tới thì tiếp tục lặp lại bước

2

 Bước 4: Ngược lại thì dừng Giá trị lớn nhất trong dãy chính là giá trị max

Các tính chất đặc trưng của thuật toán:

 Dữ liệu đầu vào(Input): Mỗi thuật toán cần phải có một hoặc nhiều dữ liệu

đầu vào

 Dữ liệu đầu ra(Output): Từ dữ liệu đầu vào, thuật toán xử lí và sẽ cho ra

kết quả xác định thể hiện lời giải của bài toán

 Tính tổng quát: Thuật toán phải áp dụng để giải một lớp bài toán có dạng

tương tự, chứ không phải chỉ áp dụng những bài toán cụ thể riêng lẻ

 Tính xác định: Các bước trong thuật toán phải rõ ràng, trật tự thực hiện

phải xác định và là duy nhất Như vậy, khi dùng thuật toán với cùng một dữ liệu đầu vào phải cho ra cùng một kết quả

 Tính dừng: Thuật toán phải cho ra kết quả sau một số hữu hạn các bước

 Tính hiệu quả: Một thuật toán được gọi là hiệu quả nếu nó đơn giản, dễ

hiểu, thời gian thực hiện nhanh và chiếm ít bộ nhớ

3.3 Các phương pháp biểu diễn thuật toán

Mỗi thuật toán cần được biểu diễn sao cho người khác hoặc máy tính có thể hiểu

và thực hiện được Người ta thường diễn tả thuật toán sử dụng một trong các ngôn ngữ sau:

- Ngôn ngữ tự nhiên (Liệt kê các bước thực hiện)

- Ngôn ngữ lưu đồ (Sơ đồ khối)

- Mã giả

Trang 37

36

3.3.1 Ngôn ngữ tự nhiên

Với cách biểu diễn này, người ta sử dụng một loại ngôn ngữ tự nhiên (tiếng việt, tiếng anh, …) để liệt kê từng bước thực hiện của thuật toán Cách biểu diễn này đơn giản, không đòi hỏi người viết và người đọc thuật toán phải nắm các kí hiệu và qui tắc Tuy vậy, phương pháp này thường dài dòng, không thể hiện rõ cấu trúc của thuật toán, câu chữ mang nhiều ý nghĩa khác nhau nên dễ gây hiểu lầm

3.3.2 Ngôn ngữ lưu đồ (Sơ đồ khối)

Ngôn ngữ lưu đồ là một dạng sơ đồ biểu diễn trực quan luồng dữ liệu được xử lí trong hệ thống Khi người đọc nhìn vào sơ đồ có thể thấy rõ các thao tác được thực hiện như thế nào và trình tự của chúng trong một hệ thống Chính vì vậy, sơ đồ khối là một công cụ rất hữu dụng để diễn đạt thuật toán

Sơ đồ khối sử dụng một số ký hiệu hình học sau để diễn đạt:

Bảng 3.1 – Các ký hiệu hình học trong sơ đồ khối

Ví dụ: Biểu diễn thuật toán tìm giá trị lớn nhất của một dãy số nguyên a gồm N số: a0, a1, a2,…, aN-1

Trang 38

37

Người ta thường sử dụng sơ đồ khối trong giai đoạn đầu của việc xây dựng giải pháp để giải quyết bài toán Nó giúp cho lập trình viên hiểu được tính logic của những bài toán phức tạp, cũng như giúp họ phân tích vấn đề hiệu quả hơn Ngoài ra, nó còn được sử dụng để gỡ lỗi chương trình Tuy vậy, nó cũng có một số nhược điểm là phải

vẽ nhiều làm mất thời gian, và nó sẽ trở nên quá cồng kềnh với các bài toán phức tạp Đôi khi, một chút thay đổi trong các giải pháp có thể yêu cầu vẽ lại toàn bộ sơ đồ

3.3.3 Mã giả

Mã giả là một ngôn ngữ gần giống với ngôn ngữ lập trình Nó sử dụng kết hợp ngôn ngữ tự nhiên, các ký hiệu toán học, và vay mượn một số cấu trúc của một ngôn ngữ lập trình nào đó để thể hiện thuật toán Mã giả giúp cho người thiết kế và lập trình viên tập trung vào logic của thuật toán mà không cần quan tâm đến các chi tiết của cú pháp ngôn ngữ Vì là mã giả nên nó không thể được thực thi trên máy tính và không có tiêu chuẩn chung trong việc viết mã giả Mỗi tác giả có phong cách viết cho riêng mình, miễn là trình bày rõ ràng và họ thường kèm theo chú thích về cú pháp được sử dụng

Các cấu trúc thường gặp trong mã giả như:

Trang 39

38

Ví dụ 1: Tìm số lớn nhất trong hai số a và b Ví dụ 2: In ra các số từ 1 đến 5 Nhập giá trị a, b;

sử dụng các cấu trúc này sẽ làm cho chương trình hoặc thuật toán trở nên dễ hiểu, dễ

gỡ lỗi và dễ thay đổi

3.4.1 Cấu trúc tuần tự

Cấu trúc tuần tự là một cấu trúc cơ bản nhất Trong cấu trúc tuần tự, các bước được thực hiện theo một trình tự tuyến tính từ trên xuống, hết bước này đến bước khác Mỗi bước thường thực hiện một trong số các thao tác cơ bản như: nhập dữ liệu, xuất kết quả, thực hiện các phép toán số học và phép gán

Sơ đồ khối thể hiện cấu trúc tuần tự:

Trang 40

có thể rẽ theo một trong hai nhánh khác nhau Trong cấu trúc rẽ nhánh, ngoài các thao tác cơ bản như trong cấu trúc tuần tự, nó còn thực hiện thao tác so sánh hai giá trị

Ngày đăng: 11/12/2017, 17:13

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. PGS.TS Phạm Văn Ất, Nguyễn Hiếu Cường, Nguyễn Đức Dư, Hoàng Văn Thông (2008), Tin học đại cương, Trường Đại học Giao Thông Vận Tải Hà nội Sách, tạp chí
Tiêu đề: Tin học đại cương
Tác giả: PGS.TS Phạm Văn Ất, Nguyễn Hiếu Cường, Nguyễn Đức Dư, Hoàng Văn Thông
Năm: 2008
[2]. Nguyễn Hồng Phương (2012), Bài giảng Tin học đại cương, Trường Đại học Bách khoa Hà nội Sách, tạp chí
Tiêu đề: Bài giảng Tin học đại cương
Tác giả: Nguyễn Hồng Phương
Năm: 2012
[3]. J. B. Dixit (2006), Computer Fundamentals and Programming in C, Laxmi Publications PVT. LTD Sách, tạp chí
Tiêu đề: Computer Fundamentals and Programming in C
Tác giả: J. B. Dixit
Năm: 2006
[4]. Brian W. Kernighan and Dennis M. Ritchie (1988), The C programming Language, Prentice-Hall Sách, tạp chí
Tiêu đề: The C programming Language
Tác giả: Brian W. Kernighan and Dennis M. Ritchie
Năm: 1988
[5]. Reema Thareja (2012), Computer Fundamentals and Programming in C, Oxford University Press Sách, tạp chí
Tiêu đề: Computer Fundamentals and Programming in C
Tác giả: Reema Thareja
Năm: 2012
[6]. Gary B. Shelly (2011), Discovering Computers, Cengage Learning Sách, tạp chí
Tiêu đề: Discovering Computers
Tác giả: Gary B. Shelly
Năm: 2011

TỪ KHÓA LIÊN QUAN

w