Tải bản đầy đủ (.doc) (60 trang)

xay dung co so du lieu exel + ung dung to mau do thi doc

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 (1.67 MB, 60 trang )

Phần 4: Thực hiện đề tài
Bài 1: Xây dựng cơ sở dữ liệu Excel:
1.1 Khái niệm cơ sở dữ liệu
Trong Excel, một Cơ sở Dữ liệu (CSDL) là một công cụ được dùng để lưu trữ, tổ
chức, quản lý và truy tìm cũng như trích ra (theo điều kiện do bạn chỉ định) các thông
tin. Cơ sở dữ liệu là những dữ liệu được tổ chức một cách có hệ thống thành bản, được
tạo ra trên một phần của Bảng tính, và được sử dụng để quản lý và bảo trì một khối
lượng dữ liệu rất lớn hoặc rất phức tạp. Chẳng hạn, nếu bạn muốn lưu trữ Tên, Địa chỉ,
Số điện thoại, .... của những khách hàng, bạn có thể tạo một cơ sở dữ liệu để lưu trữ
những thông tin sau đây cho mỗi khách hang: Họ và Tên, Địa chỉ, Số điện thoại, Số
Fax,... Mỗi thông tin như vậy được đưa vào một Vùng tin riêng biệt. Tất cả các vùng
tin có liên quan cho mỗi khách hàng tạo thành một Mẫu tin. Trong Excel mỗi Vùng tin
nằm trên một cột, mỗi Mẫu tin nằm trên một dòng. Mẫu tin là một thực thể còn vùng
tin là đặc tính của thực thể đó.
Có những chương trình chun dùng để quản lý và xử lý CSDL, những chương
trình này được gọi là hệ quản trị CSDL. Có thể kể ra đây một số chương trình trong số
đó Foxpro,Access,Paradox,.... Trong Excel, chức năng chính là xử lý bảng tính, tuy
nhiên, nếu các dữ liệu trong bảng tính được tổ chức thành các CSDL, thì ở một mức độ
nào đó Excel có thể xử lý những dữ liệu này.
- Trên Bảng tính của Excel, CSDL là một khối ơ gồm có: Dịng đầu dùng để chứa
tên các Vùng tin cơ sở dữ liệu, các dòng kế cận bắt đầu từ dòng thứ hai trở đi được
dùng để chứa các Mẫu tin cơ sở dữ liệu. Excel đã đơn giản hoá các công việc với cơ sở
dữ liệu bằng cách coi cơ sở dữ liệu là danh sách đơn giản các dữ liệu. Các dữ liệu này
cũng như các dữ liệu của Bảng tính, có khác chăng là khi bạn chọn một lệnh từ trong
thực đơn Data, Excel coi danh sách là một cơ sở dữ liệu.
- Phạm vi tối đa của một cơ sở dữ liệu là 256 Vùng tin và 65535 Mẫu tin.

1


1.2 Cấu trúc tổng thể Excel.


Cấu trúc của MS Excel bao gồm 2 phần: phần ứng dụng Excel và phần tập tin
Workbook. Phần ứng dụng có chức năng kiểm tra các thanh menu chuẩn, thanh cơng
cụ, các cấu hình ngầm định về việc các tập tin workbook được tạo, được mở và được
lưu ra sao. Tập tin workbook là tập hợp của các bảng: bảng tính (worksheet), bảng đồ
thị (chart sheet) và bảng các Macro (macro sheet). Trong các tập tin workbook còn lưu
trữ những thành phần khác nhau của workbook như mật mã, kiểu trình bày và kịch
bản. Nhằm mục đích chuẩn hóa các workbook và bản thân ứng dụng Excel trong cơng
ty, xí nghiệp của bạn, bạn có thể lưu các workbook khơng chỉ dưới dạng workbook,
mà cịn dưới các dạng khác như Template hay Add-In.
1.2.1 Phần ứng dụng Microsoft Excel
Các cấu hình ngầm định cũng như đường dẫn của Excel được thiết lập khi cài đặt.
Những cấu hình này có thể thay đổi (customize) sau khi cài đặt cho từng người dùng,
cho nhóm hoặc cho tồn thể người dùng trên mạng của một đơn vị. Có các cách sau để
điều chỉnh cấu hình của Excel:
Qua giao diện người dùng, trong hộp thoại Options từ Menu Tools. Những thay đổi
này sẽ được lưu trong các Registry tương ứng của Windows 95.
Thay đổi thẳng trong Windows 95 registry. Thay đổi bằng cách tạo các Add-Ins mới.
Thực chất Add-in là một workbook ẩn, chỉ được phép đọc, trong đó tồn bộ các mã
của Visual Basic đã được dịch ra. Bạn có thể tạo các Add-in cho từng nhóm riêng biệt,
chạy độc lập như một phiên bản "hiệu chỉnh" của Excel. Hoặc tạo Add-in để bổ sung
thêm một số chức năng đặc biệt vào ứng dụng Excel đang có sẵn trên máy.
Những thay đổi hay chức năng bổ sung này được lưu trong các tập tin riêng biệt:
Cấu hình Toolbar và nội dung danh sách AutoFill (Custom AutoFill Lists). Khi bạn
thay đổi cách trình bày Toolbar hay nội dung của danh sách AutoFill (để điền tự động
các ơ trong bảng tính), Excel sẽ lưu chúng trong tập tin Usename.xlb trong folder
Windows 95, với Usename là tên khai báo vào Windows 95 của bạn.

2



Bạn có thể chia sẻ danh sách AutoFill hoặc cung cấp Toolbar riêng của mình cho
các người dùng khác trên mạng. Để làm điều này hãy tạo một Custom List và Custom
Toolbar trong workbook. Sau đó lưu workbook và đặt tập tin kết quả .xlb vào thư mục
dùng chung của mạng. Các người dùng khác có thể liên kết những thay đổi này vào
workbook của họ bằng cách mở tập tin .xlb bằng lệnh Open trên menu File.
Khi Toolbar của bạn liên kết đến một module trong workbook, nó sẽ không được
lưu trữ trong tập tin Usename.xlb trong folder Windows 95 trên máy bạn như trường
hợp ở trên, mà được lưu chung với workbook chứa module đó.
1.2.1.1 Startup.
Khi khởi động Excel mở toàn bộ các workbook, đồ thị và các tập tin làm việc
được lưu trong folder Xlstart. Nếu bạn nhấn vào mục New trên menu File, các
Template workbook chứa trong Xlstart sẽ hiển thị. Do đó nếu muốn mở một workbook
tự động khi vào Excel bạn hãy chép hoặc dời nó vào folder nói trên. Cách này đặc biệt
có hiệu quả nếu một nhóm cùng làm việc chung với ứng dụng Excel chia sẻ từ mạng,
với một folder Xlstart chung.
Trong trường hợp bạn muốn khởi động Excel với các workbook và Template lưu
trong các folder khác với Xlstart (được gọi là Alternate Startup Folder), hãy xác định
tên của nó trong hộp thoại Options sau khi chọn tab General. Lưu ý những cấu hình
này sẽ được lưu trong registry của Windows 95.
Bạn có thể tạo Alternate Startup Folder chung cho mọi người dùng trên mạng, tất
nhiên nếu họ có Excel cài trên máy, mổi người với Xlstart folder của mình. Bằng cách
xác định tên một Alternate Startup Folder riêng trên mạng, bạn sẽ có một folder để
quản lý, duy trì các workbook, đồ thị, tập tin workspace mà Bạn muốn người dùng mở
ra mổi khi họ vào Excel. Startup Workbook ngầm định (Default Startup Workbook) và
các AutoTemplate. Nếu bạn không chỉ ra workbook cụ thể nào bạn muốn mở khi vào
Excel, tự Excel sẽ mở một workbook mới, chưa lưu cho bạn. Workbook này được lấy
từ AutoTemplate, một Template tự dộng nạp có tên là Book.xlt được lưu trong folder
Xlstart (hoặc trong Alternate Startup Folder).

3



Ngồi ra bạn cũng có thể xác định phơng chữ ngầm định, kiểu định dạng, tiêu đề,
logo công ty, công thức, macro, hay các mục chọn khác của workbook mới cho các
người dùng bằng cách tạo một Custom AutoTemplate. Để tạo một workbook
AutoTemplate, hãy tạo hoặc mở workbook bạn muốn, chọn Save As trên menu File,
sau đó lưu workbook dưới dạng Template (chọn File style là Template) với tên là
Book.xlt. Chép tập tin kết quả vào folder Xlstart hoặc vào Alternate Startup Folder.
Khi người dùng nhấn nút New trên Toolbar, Excel sẽ tạo một workbook mới dựa
trên AutoTemplate. Ngoài ra khi chọn New từ menu File hay khi nhấn nút Start a New
Document trên Microsoft Office Shortcut Bar AutoTemplate hiện lên trong tab General
như một biểu tượng (icon) với tên là Workbook.
1.2.1.2 Tập tin Workspace.
Để mở nhiều workbook cùng lúc Bạn có thể tạo một tập tin workspace cho
chúng. Tập tin workspace chứa các thông tin như danh sách, địa chỉ, kích thước, vị trí
trên màn hình của các workbook cần mở. Cần biết là trong bản thân tập tin workspace
không chứa các workbook. Để tạo tập tin workspace, bạn hãy mở tất cả các workbook
cần thiết, điều chỉnh kích thước, vị trí của chúng trên màn hình, sau đó chọn mục Save
Workspace trên menu File. Tên ngầm định của tập tin workspace do Excel gán cho là
Resume.xlw, bạn có thể đổi lại tên theo ý mình. Nếu muốn mở tập tin workspace tự
động mổi khi vào Excel, bạn sao tập tin này vào folder Xlstart hay vào Alternate
Startup Folder. Tên của các workbook và địa chỉ của chúng được lưu trong tập tin
workspace, do đó nếu dời các tập tin workbook đi chổ khác, Excel sẽ khơng tìm thấy
chúng.
1.2.2 Phần tập tin Workbook
Một cách nơm na ta có thể so sánh workbook của Excel như văn bản (document)
của Word, hay như tập tin trình diễn của Powerpoint. Workbook là nơi dữ liệu được
lưu trữ theo dạng thức của Excel, các workbook của Excel đều có phần mở rộng là
.xls.


4


Microsoft Excel lưu các tập tin workbook dưới dạng BIFF (binary interchange file
format). Thực chất các workbook là những tập tin phức hợp (compound file), bao gồm
một hệ thống phân cấp các đơn vị lưu trữ (storage) và các chuổi (stream). Một đơn vị
lưu trữ tương đương như một folder, còn một chuổi tương đương như một tập tin trong
folder. Dạng thức lưu trữ tập tin nói trên là sự thể hiện OLE của chuẩn lưu trữ theo mơ
hình cấu trúc (Structured Storage Model).
1.2.3 Template
Template là một workbook đặc biệt được sử dụng như khuôn mẫu để tạo các
workbook khác cùng dạng. Các Teplate có phần mở rộng là .xlt.
Bạn có thể tạo những Template cho từng nhóm làm việc tùy theo nhu cầu. Ví dụ tạo
template về báo cáo kinh doanh. Các người dùng trong nhóm sau đó có thể sử dụng nó
để tạo những báo cáo hàng tuần, v.và Những cấu hình được lưu trong Template xác
định các thông số của một workbook được tạo dựa trên Template đó như sau:


Số lượng bảng và dạng của chúng trong workbook (Number and Type of sheets)



Kiểu định dạng trang (Page formats)



Kiểu định dạng ơ (Cell formats)




Kiểu trình bày cột và dịng (Row and column styles)



Nội dung một số trình bày sẵn mà bạn đưa vào template (text, dates, numbers,
formulas, graphics)



Các lệnh bổ sung trên menu, các macro hoặc Toolbar gán với một module trong
template.

Khi bạn mở một template, Excel mở nó như một bản sao thứ hai, chưa có tên và
chưa được lưu, bao gồm mọi thứ (data, formatting, formulas, macros, styles, scenarios,
v.và) chứa trong Template "thật". Bản chính này vẫn cịn ngun trên đĩa và khơng hề
bị thay đổi.

5


Để tạo một Template, trước hết bạn hãy tạo một workbook chứa tất cả các thứ bạn
muốn, sau đó chọn Save As trên menu File. Đặt tên cho nó, chọn ở mục Save As Type
là Template và lưu vào một folder chia sẻ chung nào đó trên mạng mà bạn muốn. Nếu
lưu Template vào folder Xlstart (hoặc vào Alternate Startup folder) thì sẽ dùng được
mọi thứ trong Template ngay khi mở workbook mới bằng New trên menu File.
Lưu ý mặc dầu Template trong folder Startup cho phép sử dụng ngay khi tạo một
workbook mới, nhưng chỉ có một Template với tên là Book.xlt nêu ở trên mới thực sự
là Autotemplate. Nếu bạn khởi động Excel bằng cách nhấn nút New trên toolbar hay
nút Start a New Document trên Microsoft Office Shortcut Bar thì workbook mới được
tạo dựa trên Autotemplate này.

1.2.4 Add-in
Ngoài việc lưu những workbook như tập tin .xls hay .xlt, bạn cịn có thể lưu chúng
như các Add-in. Các Add-in được dịch từ Excel sẽ có đi là .xla. Bạn có thể tạo
những Add-in với các chức năng bổ sung theo ý mình và khi liên kết nó vào Excel bạn
sẽ có cảm giác như thể chính Excel mang sẵn trong mình những chức năng này vậy.
Lưu ý Add-in có thể được viết bằng ngơn ngữ C, khi dịch những Add-in này tập tin thu
được sẽ có phần mở rộng là .xll (trong Word các Add-in kiểu này có đuôi là .wll).
1.3 Cách tạo một cơ sở dữ liệu
Một trong những ứng dụng căn bản của Excel là quản trị dữ liệu. Bạn có thể dùng
các tính năng của Excel để làm việc với một danh sách đơn giản ví dụ mục các việc
cần làm cho đến các cơ sở dữ liệu phức tạp hơn. Trong Excel, khái niệm cơ sở dữ liệu
và danh sách đều là một. Chúng ta sử dụng khái nhiệm cơ sở dữ liệu để ám chỉ cả hai:
danh sách đơn và cơ sở dữ liệu phức tạp.
Một CSDL chứa các bộ dữ liệu giống nhau như cơ sở dữ liệu khách hàng. Một
hàng thông tin trong CSDL được gọi là bản ghi record. Các mục tin được ghi trong các
trường, mỗi cột là một trường. Ví dụ tên khách hàng được lưu trong trường tên. Nếu tổ
chức dữ liệu dưới dạng cơ sở dữ liệu, bạn có thể nhanh chóng sắp xếp, lọc và tổng hợp
thông tin.

6


Các bước:
1. Nhập tên trường trên một hàng của bảng tính. Các tên trường này (ví dụ Họ
Tên, Địa Chỉ, Điện Thoại, ... ) là các tiêu đề cột của cơ sở dữ liệu.
2. Chọn vùng tên trường và định dạng ví dụ chọn chữ đậm, nghiêng hay chọn Font
chữ to hơn để làm nổi bật trường với các bản ghi.
3. Nhập các bản ghi (như thông tin từng khách hàng) ngay dưới tên trường, mỗi
bản ghi trên một hàng. Không để các hàng trắng sau tên trường.
Chú ý: Cơ sở dữ liệu của Excel sự thực chỉ là một dạng bảng tính đặc biệt. Chúng ta

vẫn có thể dùng các lệnh bảng tính bình thường để hiệu chỉnh và định dạng cơ sở dữ
liệu.
1.4 Nhập dữ liệu
Dữ liệu một ô của bảng tính sau khi nhập sẽ được MS-Excel tự động phân loại và
đưa về một trong kiểu dữ liệu sau:
-

kiểu số(Number),

-

kiểu văn bản (Text)

-

kiểu logic,

-

kiểu mã lỗi(Error).

1.4.1 Nhập dữ liệu kiểu số
Dữ liệu kiểu số được tạo bởi kí tự cho phép đó là: 0 12 3 4 5 6 7 8 9 + - ( ) , / $
% . E e. Ví dụ minh hoạ dữ liệu kiểu số: 789,-789,7.89,7.89E+08
Nếu muốn nhập số âm, đánh dấu “ - ” trước số đó hoặc nhập số vào giữa cặp
ngoặc đơn ( ). Để muốn nhập số có phần thập phân, sử dụng dấu “ . ” ngăn cách với
phần nguyên.
Dữ liệu ngày tháng trong Excel được xem là kiểu số. Kiểu nhập ngày tháng
được hệ điều hành qui định trong mục Regional Settings đặt trong cửa sổ Control
Panel của hệ điều hành. Thông thường nhập theo khuôn dạng tháng-ngày năm


7


Ví dụ:
* Nhập vào ơ nội dung 24-5-08, nhấn Enter. Kết quả xuất hiện trên ô là 24-508, đây không phải là giá trị kiểu số.
* Nhập vào ô nội dung 5-24-08, nhấn Enter. Kết quả xuất hiện trên ô tự
động đổi thành 24/5/08, đây chính là giá trị kiểu số.

MS-Excel tự động điều chỉnh số để hiển thị hết dữ liệu trong một ô. Nhưng nếu
một ô đã cố định độ rộng đoạn dữ liệu số không thể thực hiện được hết thì chúng ta sẽ
nhìn thấy dạng thơng báo “# # # # # # # # #”.
Lưu ý:
Giá trị của dữ liệu số sau khi nhập là không thay đổi khi chúng ta thay đổi khuôn
dạng hiển thị dữ liệu trên màn hình.
Ví dụ: chúng ta nhập giá trị vào ô D1, D3, D4, D5 đều là 19000000. Sau đó thay
đổi khn dạng ơ D3, D4, D5, chúng ta có dạng thể hiện số khác nhau. Nhưng chúng
ta có thể nhìn thấy giá trị dữ liệu ơ D4 vẫn là 19000000 được hiển thị rõ ràng trên
thanh công thức.

8


1.4.2 Nhập dữ liệu kiểu văn bản
Dữ liệu kiểu văn bản được tạo bởi các kí tự hoặc là kí tự sốhoặc la khoảng trống
hoặc là các kí tự khơng phải số.
Ví dụ minh hoạ:
* 10AA109 là dữ liệu kiểu văn bản vì có chứa dãy kí tự AA;
* 208 675 là dữ liệu kiểu văn bản vì có chứa khoảng trống;
Khi số kí tự nhập vượt quá độ dài ơ và ơ bên phải đang cịn trống thì MS-Excel tiếp

tục hiển thị phần kí tự cịn lại của ơ đó sang bên phải.
Khi số kí tự vượt q độ dài ơ mà bên phải đã có dữ liệu thì MS-Excel che dấu các
kí tự vượt q ơ. Điều đó không làm thay đổi giá trị dữ liệu nhập của ô.
Để nhập dãy số theo kiểu văn bản, ví dụ nhập số chứng minh nhân dân của một
người, chúng ta nhập kí tự đâu tiên là kí tự ép kiểu gồm: kí tự nháy đơn ’, kí tự nháy
kép ”. Sau khi nhập dữ liệu của ơ khơng chứa kí tự ép kiểu.
1.5 Thêm dữ liệu
Thêm dữ liệu trong Excel thực chất là việc chúng ta chèn một bản ghi. Tính
năng data form cung cấp cách thuận lợi để chèn, xố và tìm bản ghi. Bạn cũng có thể
chèn, xố trực tiếp trên bảng tính.
Các bước:
1. Chọn một ơ bất kỳ trong CSDL; sau đó gọi Data, Form.
2. Nhấn nút New ; sau đó nhập bản ghi mới vào các hộp văn bản.

9


3. Lặp lại bước 2 cho mỗi bản ghi mới bạn muốn thêm.
4. Nhấn Close khi kết thúc. Các bản ghi mới được thêm nối đi vào CSDL. Bạn
có thể sắp xếp lại các bản ghi theo một trật tự khác.
TIP: Để không ghi bản ghi vừa nhập, nhấn nút Restore.
Để chèn trực tiếp bản ghi vào bảng tính, nhấn chuột phải lên tiêu đề hàng nơi bạn
muốn hàng mới xuất hiện. Sau đó chọn Insert từ menu tắt để chèn một hàng trắng vào
CSDL.
1.6 Tìm kiếm bản ghi
Khi cần tìm các bản ghi cụ thể, bạn có thể dùng data form để tìm. Chỉ cần nhập tiêu
chuẩn tìm kiếm và Excel sẽ tìm các bản ghi thoả mãn tiêu chuẩn.
Các bước
1. Chọn một ô bất kỳ trong CSDL; sau đó gọi Data, Form.
2. Nhấn nút Criteria; sau đó nhập tiêu chuẩn cần tìm trong một hay nhièu hộp văn

bản. Excel tìm các bản ghi thoả mãn tiêu chuẩn.
3. Nhấn Find Next cho đến khi gặp bản ghi cần tìm, để thoát khỏi Form nhấn nút
Close.
TIP: Trong phần tiêu chuẩn bạn có thể dùng các ký tự thay thế (* và ?) cho trường văn
bản và các toá tử so sánh đối với trường số.

10


Bi 2:các ứng dụng thực tế của bài toán
tô màu đồ thị:
I. Nhắc lại thuật toán của bài toán tô màu đồ thị
Thuât toán tô mu đồ thị
- Đếm số bậc của mỗi đỉnh trong đồ thị
- Tô mu cho ®Ønh cã bËc cao nhÊt, g¸n sè bËc cđa ®Ønh đó bằng
0
- Giảm bậc của các đinh còn lại 1 đơn vị,không tô mu các đỉnh
còn lại bằng mu đà tô cho dỉnh có bậc cao nhất
- Lặp lại 3 bớc trên cho đến khi bậc của các đỉnh đều bằng 0
- Định mu cho đỉnh no cha đợc tô
II. Các ứng dụng của bài toán tô màu đồ thị
1. Bài tốn tơ màu đồ thị tổng qt :
Cho một đồ thị vô hướng N đỉnh ( N ≤ 200 ), mỗi đỉnh được nối với 1 số đỉnh
khác bằng 1 cung nối trực tiếp duy nhất ( khơng có 2 đỉnh nào có nhiều hơn 1 đường
nối trực tiếp ). Bài tốn đặt ra là: Hãy tơ màu các đỉnh sao cho khơng có hai đỉnh nào
có 2 màu giống nhau mà lại nối trực tiếp với nhau với số màu cần tơ là ít nhất.
*Giải thuật cho bài tốn tơ màu đồ thị:
Một đồ thị là một tập hợp các điểm gọi là đỉnh và các đường nối các đỉnh gọi là
cạnh. Tô màu một đồ thị nghĩa là gán một màu cho mỗi đỉnh của đồ thị sao cho hai
đỉnh thuộc cùng một cạnh phải được gán màu khác nhau. Bài tốn tơ màu đồ thị đã

được nghiên cứu từ nhiều thập kỉ trước nhưng để tô màu một đồ thị với số màu ít nhất
là một bài toán NP-complete mà những giải pháp được biết đến đều thuộc dạng “thử
hết mọi khả năng”, nghĩa là cố thử gán các màu cho các đỉnh cho đến khi việc tơ màu
hồn tất. Vì vậy ta thấy rằng để đạt được giải pháp tối ưu cho bài toán này thì phải
chấp nhận một giải thuật ở cấp mũ.
Tuy nhiên đối với một số ứng dụng mà ta chỉ cần có một giải pháp tốt chấp nhận
được chứ khơng cần giải pháp tối ưu, nghĩa là chúng ta hài lòng với giải pháp mà số
màu gần bằng số màu ít nhất nhưng thời gian chạy nhanh hơn. Một trong những giải
pháp như vậy cho bài tốn tơ màu đồ thị là “giải thuật tham lam”.

2. C¸c øng dơng
Bài tốn tơ màu có nhiều ứng dụng trong thực tế. Chẳng hạn:
a. Ứng dụng bài tốn tơ màu đồ thị vào việc xếp lịch thi cho sinh viên

11


Bài toán lập lịch thi: Hãy lập lịch thi cho các sinh viên trong một trường đại
học sao cho không có sinh viên nào phải thi 2 mơn trong cùng một lúc.
b. Ứng dụng bài tốn tơ màu đồ thị vào việc phân lng giao th«ng:
Bài tốn phân luồng giao thơng: Cho một ngã năm như
B
hình dưới, trong đó C và E là các đường một chiều theo
A
chiều mũi tên, các đường khác là hai chiều. Hãy thiết kế
một bảng đèn hiệu điều khiển giao thông tại ngã năm này
một cách hợp lý, nghĩa là: phân chia các lối đi tại ngã
năm này thành các nhóm, mỗi nhóm gồm các lối đi có
C
E

thể cùng đi đồng thời nhưng khơng xảy ra tai nạn giao
thông ( các hướng đi không cắt nhau ), và số lượng nhóm
D
là ít nhất có thể được.
c. Ứng dụng bài tốn tơ màu đồ thị vào việc phân chia tần số:
Bài toán phân chia tần số: Hãy phân chia kênh truyền hình cho các đài truyền
hình sao cho khơng có hai đài nào cách nhau khơng quá 150 dặm lại phát cùng một
kênh.
III. Cách giải quyết
Đối với bài tốn xếp lịch thi: Có thể giải quyết bài tốn lập lịch thi bằng mơ
hình đồ thị, với các đỉnh là các mơn thị, có một cạnh giữa 2 đỉnh nếu tồn tại một sinh
viên phải thi cả 2 môn được biểu diễn bằng 2 đỉnh này(không nối hai đỉnh này nếu một
sinh viên không phải thi 2 môn này cùng một lúc). Thời điểm thi của mỗi môn được
biễu thị bằng các màu khác nhau. Như vậy việc lập lịch thi sẽ tương ứng với việc tô
màu th ny.
Đối với bài toán phân luồng giao thông:
Ta có thể xem đầu vào ( input ) của bài toán là tất cả các lối đi tại ngã năm này,
đầu ra ( output ) của bài toán là các nhóm lối đi có thể đi đồng thời mà khơng xảy ra
tai nạn giao thơng, mỗi nhóm sẽ tương ứng với một pha điều khiển của đèn hiệu, vì
vậy ta phải tìm kiếm lời giải với số nhóm là ít nhất để giao thơng khơng bị tắc nghẽn vì
phải chờ đợi quá lâu.
Trước hết ta nhận thấy rằng tại ngã năm này có 13 lối đi: AB, AC, AD, BA, BC,
BD, DA, DB, DC, EA, EB, EC, ED. Tất nhiên, để có thể giải được bài tốn ta phải tìm
một cách nào đó để thể hiện mối liên quan giữa các lối đi này. Lối nào với lối nào
không thể đi đồng thời, lối nào và lối nào có thể đi đồng thời. Ví dụ cặp AB và EC có
thể đi đồng thời, nhưng AD và EB thì khơng, vì các hướng giao thông cắt nhau. Ở đây

12



ta sẽ dùng một sơ đồ trực quan như sau: tên của 13 lối đi được viết lên mặt phẳng, hai
lối đi nào nếu đi đồng thời sẽ xảy ra đụng nhau (tức là hai hướng đi cắt qua nhau) ta
nối lại bằng một đoạn thẳng, hoặc cong, hoặc ngoằn ngo tuỳ thích. Như vậy, hai lối
đi có cạnh nối lại với nhau là hai lối đi không thể cho đi đồng thời. Với cách biểu diễn
như vậy ta đã có một đồ thị (Graph), tức là ta đã mơ hình hố bài tốn giao thơng ở
trên theo mơ hình tốn là đồ thị, trong đó mỗi lối đi trở thành một đỉnh của đồ thị, hai
lối đi không thể cùng đi đồng thời được nối nhau bằng một đoạn ta gọi là cạnh của đồ
thị. Bây giờ ta phải xác định các nhóm, với số nhóm ít nhất, mỗi nhóm gồm các lối đi
có thể đi đồng thời, nó ứng với một pha của đèn hiệu điều khiển giao thông. Giả sử
rằng, ta dùng màu để tô lên các đỉnh của đồ thị này sao cho:
- Các lối đi cho phép cùng đi đồng thời sẽ có cùng một màu: Dễ dàng nhận thấy
rằng hai đỉnh có cạnh nối nhau sẽ khơng được tơ cùng màu.
- Số nhóm là ít nhất: ta phải tính toán sao cho số màu được dùng là ít nhất.
- Hai đỉnh có cạnh nối với nhau (hai còn gọi là hai đỉnh kề nhau) khơng cùng
màu.
- Số màu được dùng là ít nhất.
Đối với bài tốn phân chia tần số: Có thể phân chia kênh truyền hình bằng mơ
hình tơ màu đồ thị. Ta xây dựng đồ thị bằng cách coi mỗi đài phát là một đỉnh. Hai
đỉnh được nối với nhau bằng một cạnh nếu chúng ở cách nhau không quá 150 dặm(hai
đỉnh cách nhau lớn hơn 150 dặm thì khơng nối với nhau). Việc phân chia kênh tương
ứng với việc tô màu đồ thị, trong đó mỗi màu biểu thị một thời điểm phát sóng của
kênh.
IV. Ví dụ minh họa
(ta chi xÐt bài toán lập lịch thi và bài toán phân chia tÇn sè)
Bài tốn xếp lịch thi:
Chẳng hạn, có 7 mơn cần xếp lịch thi được đánh số lần lượt từ 1 đến 7 và các
cặp mơn sau có chung sinh viên dự thi:
+ 1 và 2, 1 và 3, 1 và 4, 1 và 7.

+ 4 và 5, 4 và 6.


+ 2 và 3, 2 và 4, 2 và 5, 2 và 7.

+5 và 6, 5 và 7.

+ 3 và 4, 3 và 6, 3 và 7.

+ 6 và 7.

Giải: Xây dựng đồ thị G = (V, E) mô tả bài toán:
- Mỗi đỉnh vi ∈V (i = 1,7) đại diện cho môn thi thứ i.

13


- Mỗi cạnh e ∈ E nối 2 đỉnh vi và vj nếu có sinh viên phải thi cả hai mơn được
biểu diễn bằng 2 đỉnh này.
Ta có đồ thị G =(V, E) như sau:
- Để lập lịch thi ta sẽ tiến hành tơ màu cho G theo
thuật tốn Welch-Powell như sau:
§Ønh: 2
3
4
7
1
5
6
BËc: 5
5
5

5
4
4
4
Màu: M1
M3
M4
M4
M2
M2
M1

1
2

7
6

3

- Ta thấy G có chứa đồ thị con K4 nên dùng 4 màu
để tô cho G là ít nhất. Vậy

5
4

G

Ø Tóm lại, ta có lịch thi như sau:
s

Buổi thi

Mơn thi

I

2, 6

II

1,5

III

3

IV

4,7

Bài tốn phân chia tần số:
Chẳng hạn, có 10 đài truyền hình được đánh số lần lượt từ 1 đến 10 và các cặp
đài truyền hình sau cách nhau khơng q 150 dặm mà phát cùng một kênh:
+ 1 và 2, 1 và 4, 1 và 5, 1 và 6.
+ 6 và 7, 6 và 9.
+ 2 và 3.
+ 7 và 8.
+ 3 và 5.
+ 8 và 9, 8 và 10.
+ 4 và 5, 4 và 7, 4 và 8.

+ 9 và 10.
+ 5 và 6, 5 và 7, 5 và 9.
Giải:
Xây dựng đồ thị G = (V, E) mơ tả bài tốn:
- Mỗi đỉnh vi ∈V (i = 1,7) đại diện cho kênh thứ i.

14


- Mỗi cạnh e ∈ E nối 2 đỉnh vi và vj nếu có 2 đài phải cách nhau khơng quá
150 dặm được biểu diễn bằng 2 đỉnh này.
Ta có đồ thị G =(V, E) như sau:

- Để phân chia kênh cho các đài ta sẽ tiến hành tô màu cho G theo thuật tốn WelchPowell như sau:
§Ønh: 5
1
4
6
7
8
9
2
3
10
BËc: 6
4
4
4
4
4

4
2
2
2
Màu: M1
M2
M3
M3
M2
M1
M2
M1
M2
M3
- Ta thấy G có chứa đồ thị con K 4 nên dùng 4 màu để tô cho G là ít nhất.
Vậy X(G)=3.
Ø Tóm lại, ta có lịch phát sóng của các kênh cho các đài như sau:
Thời điểm phát

Đài truyền hình

I

2, 5, 8

II

1, 3, 7, 9

III


4, 6, 10

IV. Cài đặt thuật toán
Tư tưởng của thuật toán(dựa trên tư tưởng của thuật toán tham lam):
- Trước hết ta định nghĩa bậc của một đỉnh là số đỉnh trên đồ thị chưa được tô mầu
mà đỉnh này được nối trực tiếp với đỉnh đang xét bằng một cạnh nối trực tiếp. Nếu
đỉnh đó khơng được nối với bất kỳ đỉnh nào thì bậc của đỉnh đó là 0.
- Bước 1: Tìm đỉnh có bậc cao nhất trên đồ thị (gọi là đỉnh u )
- Bước 2: Tăng số màu cần tô lên 1 và tơ màu cho đỉnh vừa tìm
- Bước 3: Tìm đỉnh v để tơ màu giống u thỏa mãn các điều kiện sau: v đi đến đỉnh
u thông qua duy nhất 1 đỉnh w khác và v có số bậc lớn nhất. Nếu khơng tìm được
đỉnh như vậy ta sẽ tìm đỉnh v có số bậc lớn nhất mà khơng kề với u. Nếu tìm được
v thỏa mãn thì ta tơ màu cho v chính là màu của đỉnh u. Sau đó nhập đỉnh u và v

15


vào làm 1 đỉnh. Tức: đỉnh w kể với v thì cũng coi như kề với u (a[v,w] =1 →
a[u,w] =1 and a[w,u] = 1)
- Bước 4 : Lặp lại bước 3 cho đến khi v = 0.
- Bước 5 : Lặp lại bước 1 cho đến khi tô hết mu cỏc nh ca th.
Chơng trình:
#include<fstream.h>
#include<math.h>
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
typedef mang1[30];
typedef mang2[30][30];

mang1 color; //Mang luu mau cua dinh do thi, color [i] = 0 nghia la dinh i chua duoc to
mau
mang2 a; //a[u,v] = 1 tuc hai dinh u va v co canh noi, a[u,v] = 0 tuc hai dinh khong co
canh noi
int somau,n,count,u,v,dem; //count=so dinh da to mau ,Count = N -> ngung chuong
trinh
char *filename;
//-----------------TIM DINH CO BAC LON NHAT-------------------int dinh_bac_max(){
int max,dem,i,j;
max=-1; //Vi co the co dinh co bac la 0
for(i=1;i<=n;i++)
if (color[i]==0){ /*Xet cac dinh chua duoc to mau de
tim ra dinh bac lon nhat*/
dem=0;
for(j=1;j<=n;j++)
if ((color[j]==0)&&(a[i][j]==1)) dem++;
if (dem>max){ //cap nhat gia tri lon nhat
max=dem;
u=i;
}
}
return u;
}
//-------------------GAN MAU CHO DINH U---------------------void tomau(int u){
count=count+1;
color[u]=somau;
cout<<"\nDinh "<
16



}
//-------------TIM DINH V CO THE TO CUNG MAU VOI DINH U---------void tim_dinh_cung_mau(int u, int &v){
int i,j,max,dem;
max=0; //do neu ton tai v thi bac lon nhat cua v phai > 0
v=0;
for (i=1;i<=n;i++)
if ((color[i]==0)&&(a[u][i]==0)){/*xet cac dinh ma u cach 1
hay cac dinh ma u khong ke ma di den u qua duy nhat 1 dinh khac */
dem=0;
for(j=1;j<=n;j++)
if ((color[j]==0)&&(a[i][j]==1)&&(a[u][j]==1)) dem++;
if(dem>max){
max=dem;
v=i;
}
}
if (v>0) exit;/*Neu ton tai v chua to mau di den duoc u
thong qua duy nhat 1 dinh khac*/
max=-1; //o day max phai = 0 va co the ton tai v ma bac chi la 0
for(i=1;i<=n;i++)
if ((color[i]==0)&&(a[u][i]==0)){ /*Xet cac dinh i khong
ke voi u va chua duoc to mau voi so dinh lon nhat*/
dem=0;
for(j=1;j<=n;j++)
if ((color[j]==0)&&(a[i][j]==1)) dem++;
if(dem>max){
max=dem;
v=i;
}

}
}
//-------------NHAP 2 DINH U VA V COI NHU 1 DINH-------------void ghep_dinh(int &u,int &v){
for(int i=1;i<=n;i++)
if (a[v][i]==1){/*dinh i ke voi dinh v thi coi nhu no
ke voi dinh u */
a[u][i]=1;
a[i][u]=1;
}
}

17


//--------------NHAP CANH,MAU,TEN DINH-----------------------void nhap(){
cout<<"Nhap so dinh n="; cin>>n;cout<<"\n";
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++){
cout<<"\ta["<cin>>a[i][j];
while((a[i][j]!=0)&&(a[i][j]!=1)){
cout<<"\tMoi nhap lai, du lieu khong hop le";
cout<<"\n\ta["<cin>>a[i][j];
}
}
for(i=1;i<=n;i++) color[i]=0;
}
//------------------LAY DU LIEU TU FILE---------------------void docfile(){
ifstream fin(filename); //lop phuc vu cho cac thao tac doc dl tu file

if (!fin) cout<<"tep chua ton tai ";
fin>>n; //su dung luong dl dua tu file vao
int i=1, j=1;
while (fin>>a[i][j])
if ((j % n) == 0){i++;j=1;}
else
j++;
fin.close();
}

//--------------TO mau de TIM RA SO MAU IT NHAT---------------void to_mau(){
somau=0;count=0;
somau=0;count=0;
do{
somau=somau+1;
u=dinh_bac_max();//u la dinh co bac lon nhat
tomau(u);//gan mau cho dinh u
do{
tim_dinh_cung_mau(u,v);//Tim dinh v co the to mau giong mau cua u
if(v>0){
tomau(v);//gan mau cho hinh v
ghep_dinh(u,v);//nhap 2 dinh u,v coi nhu mot dinh

18


}
}
while(v!=0);
}

while(count!=n);
cout<<"\nVay so mau can to la "<// ve_hinh();
}
//-------------------------CHUONG TRINH CHINH----------------------void main(){
cout<<"\n\n\t\t************ TO MAU DO THI****************";
cout<<"\n\t\t*";cout<<"\t\t\t\t\t *";
cout<<"\n\t\t**********NHOM THUC HIEN-NHOM...**********";
char hoi;
cout<<"\n\nLay tu tep(C/K)?";cin>>hoi;
if (hoi=='k')
{ nhap(); to_mau();}
else if (hoi=='c'){
cout<<"Ten tep can doc:";cin>>filename;
docfile();
to_mau();
}
else{
cout<<"\nBan nhap khong hop le!";
exit;
}
getch();}

19


20


Bài 3: Bảo trì thơng thường:

1.Bảo trì chuột và bàn phím:
Nếu như chiếc màn hình máy vi tính được coi như đơi mắt thì bàn phím và
chuột vốn vẫn được coi như đôi bàn tay. Nếu như đôi tay của bạn bị lấm bẩn hoặc bị
đau thì sẽ có rất nhiều sự việc trong cuộc sống mà bạn chỉ có thể nhìn chứ khơng thể
cầm, nắm, sờ, mó…. Có cơng dụng quan trọng là vậy nhưng dám cá rằng không ít
người trong số chúng ta khơng biết cách giữ gìn đơi tay của chiếc máy vi tính ln
khỏe mạnh và sạch sẽ.
Cách bảo trì chuột của máy vi tính:
Chuột là một thiết bị ngoại vi được sử dụng rất nhiều trong mơi trường Windows
hiện nay, điều này giải thích tại sao chuột ln địi hỏi phải được thường xun để mắt
tới như bất kỳ một bộ phận nào khác của máy vi tính. Bạn nên làm vệ sinh cho con
chuột khi nào bạn cảm thấy chúng di chuyển chậm lại trong khi bạn muốn chúng
nhanh và có một vài sự di chuyển lạ lùng, không theo ý muốn của người sử dụng.
Chuột dùng bi (Ball): Đầu tiên, bạn hãy ngắt kết nối của chuột với máy vi tính thơng
qua cổng P/S2 đằng sau hộp máy chính. Tháo dây cắm chuột ra khỏi máy vi tính, ấn
nhẹ và xoay nắp đậy viên bi nằm ở phía dưới ngược theo chiều kim đồng hồ (hoặc

21


theo chiều mũi tên Unlock) để tháo và lấy bi ra khỏi chuột.



Rửa sạch viên bi bằng nước hoặc xà phịng và sau đó lau cho khơ.



Dùng tăm bơng gịn thấm cồn 90 độ để chùi sạch vết bẩn bám trên các bánh xe
và thanh cuộn, có thể cần phải dùng móng tay hoặc vật cứng để cạo chất bẩn ra

nhưng lưu ý không làm trầy, hư bánh xe và thanh cuộn.

22




Lau sạch chất bẩn bám trên các bề mặt tiếp xúc bên dưới chuột với thảm chuột
(Mouse Pad).



Gắn bi vào chuột và xoay nắp đậy để khóa chặt để cho bi khơng bị rớt ra ngồi.
Gắn chuột vào máy vi tính.

Chuột quang (Optical):


Đối với chuột quang do khơng sử dụng bi nên chỉ cần làm sạch các bề mặt tiếp
xúc bên dưới là được.



Lưu ý nếu chuột quang di chuyển khơng đúng như điều khiển của người dùng
thì nên kiểm tra lại bề mặt của thảm chuột, không sử dụng chuột quang trên bề
mặt quá bóng láng, có độ phản chiếu cao vì sẽ tạo sai lệch phương hướng định

23



vị giữa ánh sáng hồng ngoại với cảm biến làm cho con trỏ chuột định vị không
theo ý người sử dụng.

Khi bàn phím máy vi tính của bạn đã có những dấu hiệu của thời gian, chúng sẽ
trở nên ố vàng, các ký tự trên mỗi phím sẽ bị mờ. Hàng ngày bạn phải soạn thảo những
văn bản trong sự khó khăn và chậm chạp do thường xuyên bị kẹt phím… Tất cả những
triệu chứng trên cho thấy rằng chiếc bàn phím máy vi tính của bạn đã rất bẩn cả trong
lẫn ngoài
Sau đây là cách làm vệ sinh bàn phím của máy vi tính:


Rút dây của bàn phím ra khỏi máy vi tính, úp ngược bàn phím xuống và vỗ nhẹ
để bụi rớt ra ngồi.



Dùng máy hút/thổi bụi để làm sạch bụi bẩn ở khoảng trống bên dưới phím.

24




Lau chùi bàn phím bằng khăn khơ, sạch. Nếu bàn phím q dơ thì có thể dùng
khăn ẩm để lau nhưng sau đó phải lau lại cho khơ. Khơng được dùng các hóa
chất tẩy rửa vì có thể sẽ làm mờ các ký hiệu trên phím.



Dùng một thanh kim loại dẹp có bọc vải để lau chùi các mặt bên hơng của

phím.



Nếu phím nhấn khơng nhẹ và trơn thì có thể dùng thanh kim loại dẹp hoặc cây
vặn vít để nạy các phím lên, nếu khơng cần thiết thì khơng cần tháo các phím to
và dài như Enter, Shift, Space Bar,... Lưu ý phải nhớ các vị trí của phím để khi
gắn lại cho đúng.

25


×