Tim kiếm

Sưu tầm cách học

xem video trên youtube, nơi chứa rất nhiều rất nhiều các bài giảng của các trường đại học lớn trên thế giới như MIT, Stanford...

ví dụ như bạn nào không phải dân cs mà muốn học về cs thì mình nghĩ nên thử xem qua cái chương trình http://see.stanford.edu/default.aspx. nó có dạy miễn phí 3 khóa (rất hay!) giới thiệu về cs, xoay quanh các kỹ năng lập trình, phát triển phần mềm, cấu trúc dữ liệu và giải thuật...

ngoài ra nó còn có 3 khóa về trí tuệ nhân tạo, dành cho bạn nào muốn tìm hiểu về robot, xử lý ngôn ngữ tự nhiên và học máy. tất cả đều là những ngành học rất thú vị, có nhiều ứng dụng trong thực tế. thậm chí là nếu không có ứng dụng gì cho công việc, thì mình nghĩ cũng nên học cho bớt http://vnhacker.blogspot.com/2008/05/i-am-that-stupid.html :-p.

mình đang theo học một cái khóa ở đây, thấy cách làm của chương trình này hay hơn OpenCourseWare của MIT, bởi nó có chiếu video, làm cho mình có cảm giác giống như đang ở trong lớp học đàng hoàng, rất là tương tác. (cập nhật: mình mới phát hiện ra là MIT cũng cung cấp http://www.youtube.com/profile?user=MIT&view=playlists)

ngoài mấy cái khóa trên, Stanford còn có cung cấp các khóa về vật lý hiện đại (mình rất thích học cái này), hóa học và cơ khí...xem danh sách đầy đủ các video ở http://www.youtube.com/profile?user=stanforduniversity&view=playlists.

mình nghĩ học kiểu này là hiệu quả nhất trong các kiểu tự học. lợi ích lớn nhất là chương trình học nó giúp mình định hướng và tập trung vào việc học, không bị sa đà vào những cái không cần thiết hay lang mang quá nhiều thứ cùng một lúc, điều mà mình thường gặp phải khi tự học một đề tài mới nào đó.

vả lại còn gì sướng bằng khi được mấy ông giáo sư của mấy trường lớn thế này giảng cho nghe. rồi còn có bài tập về nhà, sách cần phải đọc hay những khuyến cáo về việc nên học gì tiếp theo...quá đủ để mà học cho tốt, chỉ yêu cầu duy nhất là phải thực sự tập trung.

mà giờ mình mới biết, mấy ông giáo sư Mỹ giảng bài cực kỳ hài hước, ngồi nghe mà cứ 5'-10' là cười rần rần y như coi hài kịch :-p. chỉ có điều mấy ổng nói hơi nhanh nên gặp ông nào nói khó nghe là coi như điếc luôn. nhưng cũng may là có transcript, nghe không kịp thì đọc transcript vậy. hơ hơ nghe kiểu này hoài thì còn được cái side-effect là mai mốt coi film trên cable tv khỏe re, khỏi cần phụ đề :-p.

khi viết cái bài này, mình mới chợt nhớ đến cái blog http://freescienceonline.blogspot.com/ chuyên sưu tầm các video hay về các đề tài khoa học. bạn nào hứng thú thì nên xem qua. mình nghĩ đây là cách sử dụng máy tính và Internet hiệu quả nhất, thay vì tốn hàng giờ ngồi chat chit linh tinh

Giáo trình Môn Visual Basic

Download giáo trình
Link dự phòng
Giáo trình Visual Basic này gốm các nội dung sau:
1          Mục lục
2          Làm quen với visual basic
2.1.1    Viết ứng dụng ban đầu
2.1.2    Xây dựng tính năng Calendar
2.1.3    Thêm tính năng Clock
2.2       Các tính năng mới trong Visual basic 
2.1       Khái quát vắn tắt về Visual basic 6.0
2.2.2    Khai thác thế mạnh của các điều khiển mở rộng
2.3       Làm việc với môi trường lập trình trong Visual basic
2.3.1    Tìm hiểu các phần của IDE
2.3.2    Thêm và xoá các thanh công cụ trong IDE của Visual basic
2.3.3    Thêm các điều khiển vào hộp công cụ
2.3.4    Định hướng thông qua cửa sổ form và code
2.3.5    Quản lý ứng dụng với project explorer
2.3.6    Cửa sổ properties
2.3.7    Hiển thị IDE
2.3.8    Trợ giúp
3          Tìm hiểu Visual basic 6
3.1       Thuộc tính phương thức và sự kiện
3.1.1    Đối tượng
3.1.2    Thuộc tính
3.1.3    Phương thức
3.1.4    Sự kiện
3.1.5    Mối quan hệ giữa phương thức, thuộc tính và sự kiện
3.1.6    Cửa sổ Properties
3.1.7    Viết chương trình sử dụng thuộc tính, phương thức và sự kiện
3.2       Làm việc với một đề án
3.2.1    Định nghĩa
3.2.2    Cửa sổ Project Explorer
3.2.3    Tạo đề án
3.2.4    Đổi thuộc tính đề án
3.2.5    Lưu và đặt tên đề án
3.2.6    Mở đề án có sẵn
3.2.7    Thêm xoá và lưu tập tin trong đề án
3.2.8    Thêm điều khiển vào đề án
3.2.9    Tạo tệp tin EXE
3.2.10  Sửa đổi thuộc tính đề án
3.3       Làm việc với nhiều đề án
3.3.1    Sử dụng Project Group
3.3.2    Thêm đề án vào nhóm đề án
3.3.3    Xoá đề án trong nhóm đề án
4          Làm việc với các điều khiển
4.1       Các loại điều khiển
4.1.1    Thao tác với điều khiển
4.2       Các điều khiển nội tại
4.2.1    Nút lệnh
4.2.2    Hộp văn bản
4.2.3    Điều khiển thanh cuộn
4.2.4    Điều khiển Timer
4.2.5    Điều khiển nhãn
4.2.6    Checkbox: 
4.2.7    Một số thuộc tinh thông dụng:
4.2.8    4.2.9 Hộp danh sách (Listbox).
4.3       Các điều khiển M ới
5          Nhập môn lập trình
5.1       Chuẩn lập trình (Coding convention)
5.1.1    Coding conventions   
5.1.2    Form design standard
5.1.3    Report design standard (for Crystal Report)
5.1.4    Database design standards    
5.2       Thiết kế trước khi viết chương trình  
5.3       Các thao tác thông dụng trong cửa sổ Code
5.3.1    Soạn thảo Code
5.3.2    Một số chức năng tự động
5.4       Biến hằng và các kiểu dữ liệu
5.4.1    Khai báo biến 
5.4.2    Khai báo ngầm
5.4.3    Khai báo tường minh
5.4.4    Khai báo biến Static
5.4.5    Hằng
5.5       Hàm và thủ tục
5.6       Cấu trúc điều khiển
5.6.1    Cấu trúc chọn
5.6.2    Cấu trúc lặp
5.6.3    Làm việc với cấu trúc
5.7       Gỡ rối chương trình
5.7.1    Một số giải pháp giảm lỗi
5.7.2    Gỡ rối
5.8       Bẫy lỗi
5.8.1    Lệnh On Error
5.8.2    Kết thúc bẫy lỗi
6          Lập trình xử lý giao diện
6.1       Menu
6.1.1    Dùng trình soạn thảo menu để tạo menu
6.1.2    Viết chương trình điều khiển menu
6.2       Hộp thoại
6.2.1    Thông điệp(Message box)
6.2.2    Hộp nhập(Input box)
6.2.3    Các hộp thoại thông dụng(Common dialog)
6.2.4    Hộp thoại hiệu chỉnh
6.3       Thanh công cụ(ToolBar)
6.3.1    Trong ứng dụng đơn giản
6.3.2    Nhúng đối tượng
6.4       Thanh trạng thái
6.5       Xử lý chuột và bàn phím
6.5.1    sự kiện chuột
6.5.2    Hiệu chỉnh con trỏ chuột
6.5.3    Sự kiện bàn phím
7          Xử lý tập tin
7.1       Mô hình FSO(File System Object model)
7.2       Xử lý các tập tin với các dòng lệnh và hàm I/O cổ điển
7.2.1    Các kiểu truy cập tập tin
7.3       Các điều khiển trên hệ thống tập tin
7.3.1    Hộp danh sách ổ đĩa
7.3.2    Hộp danh sách thư mục
7.3.3    Hộp danh sách tập tin
7.4       Điều khiển richtextbox
7.4.1    Phương thức loadfile
7.4.2    Phương thức savefile
8          Sử dụng DLL và Windows API
8.1       DLL và cấu trúc của Windows
8.1.1    Các hộp thoại thông dụng
8.2       WIN API
8.3       Sử dụng API
8.3.1    Tìm kiếm API
8.3.2    Các DLL của Windows
8.3.3    Gọi API
8.4       Dùng API khai thác khả năng Multimedia
8.4.1    Lớp multimedia
9          Thêm trợ giúp vào ứng dụng
9.1       Thêm hỗ trợ cho Help
9.1.1    Thuộc tính HelpFile
9.1.2    Thuộc tính HelpContextID
9.2       Thêm hỗ trợ cho WHAT’S THIS HELP
9.2.1    Kích hoạt What’s This Help cho biểu mẫu
9.3       Cung cấp help cùng với ứng dụng
9.3.1    Cung cấp WinHelp
9.3.2    Cung cấp HTML Help
10        Lập trình hướng đối tượng
10.1     Giới thiệu về đối tượng
10.1.1  Đối tượng trong VB
10.1.2  Modul Lớp
10.1.3  Tham số tuỳ chọn
10.1.4  Sự kiện của lớp
10.1.5  Huỷ đối tượng
10.2     Biến đối tượng
10.2.1  Tạo điều khiển lúc thi hành
10.2.2  Sự kiện của mảng điều khiển
10.2.3  Quản lý điều khiển như biến đối tượng
10.2.4  Khai báo biến đối tượng
10.3     Tập hợp
10.3.1  Thuộc tính Controls
10.3.2  Xác định điều khiển trên biểu mẫu
10.4     Biểu mẫu MDI
10.4.1  Biểu mẫu con (Child Form)
10.4.2  Tạo Instance của biểu mẫu
10.4.3  Xác định biểu mẫu
10.4.4  Tạo danh sách cửa sổ
11        Công cụ trong VB6
11.1     ADD-INS
11.2     Các công cụ trong ADD-INS
11.2.1  Trình cài đặt ứng dụng
11.2.2  Trình đối tượng dữ liệu tự động
11.2.3  Trình xây dựng dữ liệu tự động
11.2.4  Trình thiết kế Add-ins tự động
11.2.5  Trình thiết kế tự động
11.2.6  Tiện ích xây dựng lớp
11.2.7  Trình tạo thanh công cụ tự động
11.3     Trình đóng gói và triển khai ứng dụng
11.3.1  Phát hành ứng dụng
11.3.2  Trình đóng gói và triển khai ứng dụng
11.3.3  Mở trình đóng gói và triển khai trong VB
11.3.4  Mở trình đóng gói và triển khai như một ứng dụng độc lập.
11.3.5  Thi hành Wizard dưới chế độ silent
11.3.6  Setup toolkit
11.4     Bài tập
12        Những khái niệm cơ bản về CSDL
12.1     Cơ sở dữ liệu là gì?
12.1.1  Bộ máy (Engine) cơ sở dữ liệu là gì?
12.1.2  Bản và trường
12.1.3  Recordset là gì ?
12.1.4  Các kiểu cơ sở dữ liệu
12.1.5  Tạo lược đồ cơ sở dữ liệu
12.1.6  Dùng Visual Basic để tạo một cơ sở dữ liệu
12.1.7  Các mối quan hệ
12.1.8  Chuẩn hoá
12.2     Sử dụng cửa sổ xem dữ liệu
12.3     Tạo trình thiết kế môi trường dữ liệu
12.3.1  Tạo một giao diện người sử dụng với thiết kế DATAENVIRONMENT
12.4     Sử dụng điều khiển dữ liệu để tạo giao diện người sử dụng
12.4.1  Kết nối với một cơ sở dữ liệu và làm việc với các mẩu tin
12.4.2  Tạo một giao diện người sử dụng cơ bản
12.4.3  Thao tác trên các mẩu tin thông qua điều khiển ADO Data
12.4.4  Các thuộc tính quan trọng khác của điều khiển ADO DATA
12.5     Tổng kết
12.6     Hỏi và Đáp
13        Các đối tượng truy cập dữ liệu
13.1     Sử dụng mô hình đối tượng DAO
13.1.1  Lập trình với đối tượng
13.1.2  Sử dụng điều khiển DAO Data
13.1.3  Sử dụng thuộc tính Connect của điều khiển DAO Data để truy cập nguồn dữ liệu bên ngoài
13.2     Sử dụng DAO để làm việc với dữ liệu
13.2.1  Dùng đối tượng DataBase để kết nối với một CSDL
13.2.2  Sử dụng đối tượng Recordset           
13.2.3  Chỉ ra các tuỳ chọn cho Recordset
13.3     Sử dụng đối tượng Field để thao tác với các trường
13.4     Sửdụng các phương thức duyệt với đối tượng Recorset
13.4.1  Sử dụng BOF và EOF để  duyệt qua Recordset
13.4.2  Dùng BOF và EOF để xác định một Recordset có rỗng hay không
13.4.3  Dùng thuộc tính RecordCout để xác định số mẩu tin trong một recordset
13.4.4  Dùng phương thức Edit để sửa đổi giá trị trong một mẩu tin
13.4.5  Sử dụng phương thức AddNew và Update để tạo mẩu tin mới
13.4.6  Sử dụng AppendChunk để nối dữ liệu vào một trường nhị phân
13.4.7  Sử dụng phương thức Close để đóng Recordset
13.5     Tìm kiếm dữ liệu trong Recordset và bảng
13.5.1  Sử dụng phương thức Find để định vị mẩu tin trong một recordset
13.5.2  Sử dụng phương thức Seek để thi hành tìm kiếm theo chỉ mục
13.5.3  Lặp qua suốt tập hợp Indexes của TableDef
13.5.4  Sử dụng thuộc tính Bookmark để ghi nhớ vị trí trong một Recordset
13.5.5  sử dụng tập hợp Errors và đối tượng Error để xử lý lỗi
13.6     Tạo đối tượng để thao tác trên cấu trúc của một CSDL
13.6.1  Tạo một CSDL
13.6.2  Sử dụng đối tượng TableDef để thao tác với bảng
13.7     Làm việc với tài liệu và nơi chứa CSDL
13.8     Tạo và sử dụng các thuộc tính hiệu chỉnh của đối tượng DataBase
13.9     Tổng kết
13.10   Hỏi và đáp
14        Thiết lập báo cáo và Xuất thông tin
14.1     Sử dụng thiết kế DataReport
14.1.1  Thiết kế với DataReport
14.1.2  Xem và xuất DataReport
14.2     Sử dụng Microsoft Access để làm báo cáo
14.2.1  Thi hành báo cáo của Access từ Visual Basic
14.3     Sử dụng Crystal report để lập báo cáo
14.3.1  Cài đặt Crystal Reports
14.3.2  Dùng Crystal Reports tạo báo cáo
14.3.3  Thi hành báo cáo trong ứng dụng với điều khiển ActiveX  của Crystal Reports
14.3.4  Sử dụng bản mới hơn của Crystal Reports
15        ODBC và các đối tượng dữ liệu từ xa          
15.1     Định cấu hình và sử dụng ODBC
15.1.1  Kiến trúc của ODBC
15.1.2  Tạo nguồn dữ liệu
15.1.3  Truy cập nguồn dữ liệu với điều khiển DAO DATA và ODBCDIRECT
15.2     Truy cập dữ liệu dùng điều khiển dữ liệu từ xa
15.2.1  Sử dụng RDC
15.3     Sử dụng RDO trong chương trình
15.3.1  Quy định thuộc tính bộ máy cơ sở dữ liệu dùng đối tượng RDOENGINE.
15.3.2  Truy cập môi trường đối tượng  rdoEnvironment
15.3.3  Thiết lập kết nối dùng đối tượng rdoConnection
15.3.4  Đáp ứng sự kiện trong RDO
15.4     Tạo kết nốI với trình thiết kế uerconnecttion
15.5     Truy cập truy vấn với trìng thiết kế UserConnection
15.5.1  Gọi thủ tục chứa sẵn trong một trình thiết kế UserConnection
15.5.2  Dùng Microsotf Query để xây dựng chuỗi SQL trong trình thiết kế UserConnection.
15.6     Sử dụng dữ liệu với đối tượng rdorerultset
15.7     Thi hành truy vấn với đối tượng rdoQuery
16        Truy cập cơ sở dữ liệu với lớp
16.1     Làm việc với lớp và đối tượng
16.1.1  Tạo cây phân nhánh lớp với tiện ích xây dựng lớp
16.1.2  Sử dụng biểu mẫu như lớp
16.2     Tạo Intance bội cho biểu mẫu
16.2.1  Sử dụng lớp và đối tượng trong truy cập cơ sở dữ liệu
16.3     Tạo các lớp cần sử dụng dữ liệu
16.3.1  Tạo lớp xuất dữ liệu
16.3.2  Triển khai lớp thành Active Server
16.4     Tổng kết
17        Truy cập dữ liệu từ xa
17.1     Client / Server và các thành phần
17.1.1  Cấu trúc Cilent/Server Three- Tier
18        Đối tượng dữ liệu ActiveX
18.1     Xây dựng ứng dụng Visual basic với ADO
18.1.1  Tìm hiểu cấu trúc OLE DB / ADO
18.1.2  Cài đặt và thiết lập tham chiếu đến ADO trong ứng dụng Visual basic
18.1.3  Sử dụng ADO với các thư viện đối tượng truy cập dữ liệu khác
18.1.4  Dùng đối tượng connection của ADO để kết nối với nguồn dữ liệu
18.1.5  Làm việc với con trỏ
18.1.6  Khoá bản ghi trong ADO
18.1.7  Sử dụng đối tượng Recordset của ADO để thao tác với dữ liệu
18.1.8  Tạo Recordset ngắt kết nối
18.2     Sử dụng dịch vụ dữ liệu từ xa của ADO


Các bạn có thể tải tài liệu môn học Visual Basic tại đây.
Download giáo trình
Link dự phòng
Bạn nào có thắc mắc gì hãy để lại dòng nhắn tại mục nhận xét nhé. Chúc các bạn học tốt môn này.

Đề cương ôn tâp môn Pascal

1.Viết chương trình tìm các số nguyên tố nhỏ hơn n cho trước, với n nhập từ bàn phím
2. Viết chương trình tính tổng
S= 1+ x/1!+x^2/2!+x^3/3!+...+x^n/n! : x>0,n nhập từ bàn phím
3. Nhập ma trận cấp MxN. In ma trận đó ra màn hình và tính tổng của mỗi hàng, mỗi cột của ma trận
4. Nhập mảng MxN. In ra màn hình và tìm phần tử lớn nhất của mảng. cho biết chỉ số dòng và cột của phần tử đó
5. Nhập ma trận A cấp MxN. In ra ma trận A, tìm và đưa ra ma trận chuyển vị của ma trận A
6. Nhập vào 1 xâu kí tự. Kiểm tra tính đối xứng của xâu và đưa ra thông báo
7.Nhập vào xâu kí tự. Đếm số từ trong xâu và đưa kết quả ra màn hình(Giữa các từ cách nhau bởi 1 ký tự trống)
8.Nhập vào họ và tên 1 người với các ký tự viết thường. Đưa ra màn hình tên người đó với các kí tự đầu từ đã được viết hoa
9. Viết chương trình thực hiện các phép toán cộng, trừ, nhân, chia 2 phân số ( sử dụng cấu trúc Record)
10. Viết chương trình nhập vào danh sách 7 sinh viên với các thông tin sau: Họ tên, quê quán, giới tính, năm sinh, điểm 3 môn thi. Sắp xếp cà in ra màn hình theo thứ tự giảm dần của tổng điểm. Đưa ra màn hình danh sách các sinh viên có tổng điểm >20.

Giáo trình Nhận dạng và xử lý ảnh

Một số giáo trình tham khảo khác.

Khoa học nhận dạng và xử lý ảnh là một trong những lĩnh vực có nhiều ứng dụng trong thực tiễn. Ngày nay có rất nhiều ứng dụng cần đến thông tin hình ảnh như hệ thông tin văn phòng, các hệ bản đồ, hệ thông tin địa lý, trong quân sự, y học... Việc xử lý dữ liệu ảnh bằng đồ họa đề cập đến các ảnh nhân tạo. Mục đích chính đặt ra cho xử lý ảnh bao gồm:
Phần 1: Từ ảnh của đối tượng trong tự nhiên thu lại thành ảnh số, sau đó qua các bước biến đổi để nâng cao chất lượng của ảnh thu được nhiều thông tin hơn, có thể quan sát bằng mắt. Quá trình này là biến đổi ảnh (Image transformation) hay làm đẹp ảnh (Image Enhancement).
Phần 2: Tự động nhận biết hoặc đánh giá nội dung các ảnh. Quá trình nhận dạng ảnh (Patten Recognition) hay đoán nhận ảnh (Image Understanding).


Các bạn có thể tham khảo tài liệu môn xử lý ảnh trong phần này:
Download tại đây.
Một số giáo trình tham khảo khác.
Giáo trình nhận dạng và xử lý ảnh - ĐH Hàng Hải
Nội dung tài liệu gồm các mục sau:
Chương 1 - TỔNG QUAN VỀ XỬ LÝ ẢNH SỐ
1.1. Giới thiệu về xử lý ảnh
1.1.1. Xử lý ảnh số là gì
1.1.2. Lịch sử của xử lý ảnh
1.2. Các ứng dụng của xử lý ảnh
1.2.1. Ảnh gamma
1.2.2. Ảnh X quang
1.2.3. Ảnh trong dải nhìn thấy được và ảnh hồng ngoại
1.2.4. Ảnh trong dải sóng radio
1.3. Các bước cơ bản của xử lý ảnh
1.4. Một số khái niệm cơ bản về xử lý ảnh
1.4.1. Ảnh số là gì?
1.4.2. Phần tử ảnh
1.4.3. Mức xám
1.4.4. Độ phân giải của ảnh
1.4.5. Biểu diễn ảnh
1.4.6. Tăng cường, nâng cao chất lượng ảnh
1.4.7. Khôi phục ảnh
1.4.8. Biến đổi ảnh
1.4.9. Phân tích ảnh
1.4.10. Nhận dạng ảnh
1.4.11. Tra cứu ảnh
1.4.12. Nén ảnh
1.5. Một số quan hệ cơ bản giữa các điểm ảnh
1.5.1. Lân cận của điểm ảnh
1.5.2. Tính liền kề, tính liên thông, vùng và biên
1.5.3. Thuật toán tìm các thành phần liên thông
1.5.4. Độ đo khoản cách giữa các điểm
Câu hỏi ôn tập

Chương 2- THU NHẬN, SỐ HÓA, BIỂU DIỄN, LỮU TRỮ ẢNH
2.1. Cấu trúc mắt người
2.2. Sự hình thành ảnh trong mắt người
2.3. Ánh sáng và phổ điện từ của ảnh sáng
2.4. Cảm biến và thu nhận ảnh
2.4.1. Thu nhận ảnh sử dụng thiết bị cảm biến
2.4.2. Mô hình tạo ảnh đơn giản
2.5. Lấy mẫu và lượng hóa
2.5.1. Các khái niệm cơ bản trong lấy mẫu và lượng hóa
2.5.2. Biểu diễn ảnh số
2.5.3. Độ phân giải không gian và độ phân giải cấp xám
2.6. Các không gian màu thông dụng
2.6.1. Màu sắc
2.6.2. Tổng hợp màu
2.6.3. Không gian biểu diễn màu và hệ tọa độ màu
2.6.4. Một số kỹ thuật hiển thị màu
2.7. Một số mô hình và phương pháp biểu diễn ảnh
2.7.1. Mô hình Raster
2.7.2. Mô hình Vector
2.7.3. Một số phương pháp biểu diễn ảnh
2.8. Các loại định dạng tập tin cơ bản
2.8.1. Khái niệm chung
2.8.2. Quá trình đọc một tệp ảnh
Câu hỏi ôn tập

Chương 3 - NÂNG CAO CHẤT LƯỢNG ẢNH
3.1. Kiến thức cơ sở
3.2. Các toán tử xử lý điểm ảnh
3.2.1. Phép biến đổi âm bản
3.2.2. Phép biến đổi Log
3.2.3. Phép biến đổi lũy thừa
3.2.4. Các hàm biến đổi tuyến tính từng phần
3.3. Xử lý lược đồ mức xám
3.3.1. Cân bằng lược đồ mức xám
3.3.2. Biến đổi độ tương phản dựa trên biến đổi lược đồ mức xám
3.4. Lọc tuyến tính
3.5. Các bộ lọc không gian làm trơn
3.5.1. Lọc tuyến tính làm trơn
3.5.2. Lọc thống kê thứ tự
3.6. Các bộ lọc không gian tăng cường độ nét
3.6.1. Khái niệm bộ lọc dựa trên đạo hàm
3.6.2. Toán tử đạo hàm bậc nhất
3.6.3. Toán tử đạo hàm bậc hai
3.7. Cải thiện nâng cao chất lượng ảnh
3.6.1. Tăng cường ảnh sử dụng toán tử số học và logic
3.6.1.1. Phép trừ ảnh
3.6.1.2. Phép trung bình ảnh
3.6.2. Tăng cường biên ảnh
Bài tập
Chương 4 - KHÔI PHỤC ẢNH
4.1. Giới thiệu
4.2. Một số phương pháp khôi phục ảnh
4.2.1. Ước lượng sự xuống cấp
4.2.2. Làm giảm nhiễu cộng ngẫu nhiên
4.2.2.1. Bộ lọc Wiener
4.2.2.2. Các biến thể của bộ lọc Wiener
4.2.2.3. Xử lý ảnh thích nghi
4.2.2.4. Bộ lọc Wiener thích nghi
4.2.2.5. Phục hồi ảnh thích nghi dựa vào hàm rõ nhiễu
4.2.2.6. Phục hồi ảnh thích nghi nhậy biên
4.2.3. Giảm nhòe ảnh

Chương 5 - PHÂN TÍCH ẢNH
5.1. Trích chọn dấu hiệu đặc trưng của ảnh
5.1.1. Đặc trưng Topo
5.1.1.1. Lược đồ phân bố mức xám
5.1.1.2. Các vùng thuần nhất
5.1.2. Đặc trưng về hình dạng
5.1.2.1. Đặc trưng hình học
5.1.2.2. Đặc trưng độ lệch cơ sở
5.2. Xương và các kỹ thuật tìm xương
5.2.1. Giới thiệu
5.2.2. Tìm xương dựa trên làm mảnh
5.2.2.1. Sơ lược về thuật toán làm mảnh
5.2.2.2. Một số thuật toán làm mảnh
5.2.3. Tìm xương không dựa trên làm mảnh
5.2.3.1. Khái quát về lược đồ Voronoi
5.2.3.2. Trục trung vị Voronoi rời rạc
5.2.3.3. Xương Voronoi rời rạc
5.2.3.4. Thuật toán tìm xương
5.3. Phát hiện và trích chọn biên ảnh
5.3.1. Giới thiệu
5.3.2. Các phương pháp phát hiện biên trực tiếp
5.3.2.1. Kỹ thuật phát hiện biên Gradient
5.3.2.1.1. Kỹ thuật Prewitt
5.3.2.1.2. Kỹ thuật Sobel
5.3.2.1.3. Kỹ thuật la bàn
5.3.2.2. Kỹ thuật phát hiện biên Laplace
5.3.2.3. Kỹ thuật Canny
5.3.3. Các phương pháp phát hiện biên gián tiếp
5.3.3.1. Một số khái niệm cơ bản
5.3.3.2. Chu tuyến của một đối tượng
5.3.3.3. Thuật toán dò biên tổng quát
5.3.4. Phương pháp phát hiện biên dựa vào trung bình cục bộ
5.3.4.1. Biên và độ biến đổi về mức xám
5.3.4.2. Phát hiện biên dựa vào trung bình cục bộ
5.3.5. Phát hiện biên dựa vào các phép toán hình thái
5.3.5.1. Xấp xỉ trên và xấp xỉ dưới đối tượng ảnh
5.4. Phân vùng ảnh
5.4.1. Khái quát chung
5.4.2. Thuộc tính điểm ảnh, vùng ảnh
5.4.3. Phân vùng ảnh theo ngưỡng biên độ
5.4.4. Phân vùng ảnh theo miền đồng nhất
5.4.5. Phân vùng ảnh dựa vào phát triển vùng cục bộ
5.4.6. Phân vùng ảnh dựa trên hợp và tách vùng
5.4.7. Phân vùng ảnh dựa trên phân tích kết cấu
5.4.8. Phân vùng ảnh dựa trên sự phân lớp điểm ảnh
5.4.9. Phân vùng ảnh dựa vào lý thuyết đồ thị
5.4.10. Phân vùng ảnh dựa trên xử lý đa phân giải
Câu hỏi ôn tập

Chương 6 - NÉN ẢNH
6.1. Tổng quan về nén dữ liệu
6.1.1. Khái niệm về nén ảnh
6.1.2. Phân loại dư thừa dữ liệu
6.1.3. Phân loại phương pháp nén
6.1.4. Sơ đồ của quá trình nén ảnh dựa trên phép biến đổi ảnh
6.1.5. Ví dụ về phương pháp nén ảnh theo chuẩn JPEG
6.2. Phương pháp nén ảnh mã độ dài thay đổi
6.3. Phương pháp nén ảnh Huffman
6.3.1. Ý tưởng
6.3.2. Xây dựng cây mã Huffman
6.3.3. Sử dụng cây mã Huffman
6.3. Phương pháp nén ảnh LZW
6.3.1. Giới thiệu

6.3.2. Phương pháp 
Chúc các bạn học tốt môn này.
Một số giáo trình tham khảo khác.
Giáo trình nhận dạng và xử lý ảnh - ĐH Hàng Hải

Giáo trình ngôn ngữ hình thức và ôtômát

Có hai giáo trình các bạn có thể tham khảo cho môn ngôn ngữ hình thức và ôtômát
Download tại đây.
Chúc các bạn học tốt môn này.

Giáo trình AutoCad

Các bạn có thể dùng tài liệu tham khảo môn AutoCad qua đường link này ( Click vào chữ Link này đểể tải tài liệu về máy )
Mọi liên hệ xin nhấp vào mục nhận xét.

Tài liệu môn truyền số liệu

Để tải tài liệu học môn Truyền số liệu các bạn có thể tải về từ các đường link dưới đây. Phần bài tập và câu hỏi ôn tập các bạn sẽ tải về sau.
Download1
Tài liệu 2

Có thắc mắc gì về môn học các bạn Click chuột vào mục nhận xét.
Chúc các bạn học tốt.

Đề cương ôn tập

Đề cương ôn tập môn Pascal tập trung vào các nội dung sau:
- Cấu trúc rẽ nhánh. If ... then... else
- Cấu trúc lặp FOR .. TO .. DO, WHILE .. DO , REPEAT .. UNTIL
- Lệnh CASE .. OF
- Kiểu dữ liệu bản ghi.
- Hàm, thủ tục
- Ghi dữ liệu ra file.
Một bài kiểm tra sẽ giải quyết hai công việc. Mỗi công việc được viết trên một thủ tục. Công việc này sẽ được thực hiên khi người dùng chọn.
Đầu mỗi bài kiểm tra phải có ghi chú về tên sinh viên, lớp, đề thi số

Ví dụ:
Đề số 05
Viết một chương trình giải quyết các công việc sau:

1. Tính biểu thức: S = ax+ by
2. giải phương trình bậc 2 ax2 + bx +c = 0


Bài làm
{ Họ và Tên: Chương Thúy Quỳnh
Lớp : 37 CDTH
Đề Thi số: 05 }
Program de05;
{Uses CRT;}
var S,a,b :real;
Cv:byte;

{Lam cong viec 1: Tinh gia tri bieu thuc}
Procedure bieuthuc;
var x,y:integer;
Begin
Write('Nhap gia tri a: ');
Readln(a);
Write('Nhap gia tri x: ');
readln(x);
Write('Nhap gia tri b: ');
Readln(b);
Write('Nhap gia tri y: ');
readln(y);
S:= a*x+b*y;
Writeln('Gia tri bieu thuc la: ', s:15:3);

End;

{Lam cong viec 2: Giai phuong trinh bac 2}
Procedure GiaiPT;
Var Delta,c,x1,x2:real;
Begin
Write('Nhap gia tri a: ');
Readln(a);
Write('Nhap gia tri b: ');
Readln(b);
Write('Nhap gia tri c: ');
Readln(c);
If a <> 0 then
Begin
delta := sqr(b) - 4*a*c;
if delta < delta =" 0" x2=" ',X2:7:2);" b =" 0)">0) then Writeln('Phuong trinh vo nghiem')
else if (b=0) and (c=0) then Writeln('Phuong trinh vo so nghiem')
else Writeln('Phuong trinh co nghiem = ', -c/b:7:2);

End;

{Tao Menu}
Procedure Menu;
Begin
WriteLn;
Writeln;
Writeln('Ban chon cong viec');
Writeln('1 : Tinh bieu thuc S= ax +by ');
Writeln('2 : Giai phuong trinh bac hai ');
Writeln('3 : Thoat');
End;

Begin
{Clrscr;}
cv:=0;
While cv<>3 do {Lap den khi chon thoat}
Begin
menu; { Goi menu}
readln(cv);
Case cv of
1: bieuthuc;
2:giaiPt;
end;
end

end.
Click vao day de tai vidu

Tài liệu Môn Pascal

Môn Pascal chúng ta đã học gần hết phần lý thuyết. Để thuận lợi cho việc ôn tập, cũng như làm bài tập nhóm. Tôi up tài liệu phần lý thuyết, và một số bài tập để chúng ta tham khảo, ôn tập.
Tài liệu về bài giảng chúng ta có thể tải tại Đường link
Hoặc chúng ta có thể tham khảo giáo trình này

Tài liệu lý thuyết và bài tập ta tải tại đây

Các bạn có thắc mắc gì hoặc muốn đề suất vấn đề gì xin Click vào từ Đăng một nhận xét Sau đó gõ vào nhận xét của mình.
Thân mến.

Xác đinh mớn nước của tàu tại cảng tàu đến

I/ Yêu cầu:

Sử dụng bảng tính EXCEL để xây dựng chương trình giải bài toán xác định mớn nước của tàu tại cảng đến sau:
Dữ liệu nhập vào
- Mớn nước của tàu (da, df, d) trước khi xếp hàng.
- Tỷ trọng nước của vùng nước tàu đến.
- Hoàng độ trọng tâm tàu (XG).
- Chiều dài tính toán của tàu LBP
- Trích một phần bảng thủy tĩnh.
Yêu cầu cần kết quả:
Tính toán mớn nước mà tàu sẽ quan sát được tại nơi tàu đến.
II/ Kiểm tra chương trình
Hãy kiểm tra chương trình bằng một bài cụ thể như sau:
Bài 38: Một tàu Chạy từ biển (SSW) có mớn nước df=12.35; da=12.75;d=12.55 vào vùng nước cảng có tỉ trọng 1.010 t/m3. Hãy tính toán mớn nước mà tàu sẽ quan sát được khi tàu vào cảng. Biết tàu có XG=-5.01m;LBP=210. Tham khảo bảng thuỷ tĩnh sau:
III/ XÂY DỰNG CHƯƠNG TRÌNH
Tạo thư mục, lưu chương trình giống như những bài tập trên
3.1 Viết chương trình
Đây là một dạng của bài toán tính toán mớn nước tàu sẽ thay đổi tuỳ thuộc vào tỷ trọng vùng nước của tàu đang đỗ.
Ý nghĩa của bài toán này là tính toán hàng xếp xuống tàu từ cảng xếp, đến cảng dỡ sao cho mớn nước của tàu tại cảng xếp và cảng dỡ không vượt quá mớn nước cho phép.
Để viết chương trình ta cần sử dụng các công thức sau:
- Công thức tính sự thay đổi mớn nước của tàu tại các vùng nước khác nhau:
Δd =
Trong đó:
D:là lượng dãn nước của tàu tại vùng nước ta đang đọc đươc mớn nước
TPC:số tấn làm thay đổi 1cm chiều chìm của tàu tại nơi ứng với D
g : tỷ trọng nước tại nơi tàu sẽ tới va ta muốn biết mớn nước của tàu
Chúng ta cũng có thể tham khảo công thức tính Displ của tàu tại vùng nước có tỷ trọng là g :
- Công thức tính hiệu số mớn nước:
- Công thức tính mớn nước tàu:
df = dtương đương -
da = df +Trim
dÅ =(da +df)/2
Trước khi thiết kế chương trình, ta phải nhập bảng thủy tĩnh vào một Sheet của File vào đặt tên Sheet đó là “Hydrostatic Table”
Có thể thiết kế chương trình như sau:










Các ô dành cho người dùng nhập dữ liệu là:
C4, E4, G4, C6, E6 và G6
Các ô xuất kết quả là: C12, E12 và G12
Sau đây là chương trình chính của bài toán:
C7 =(C4+E4+6*G4)/8 ‘ Tính mớn nước tương đương tại vùng biển
‘Tính Displ của tàu tương ứng với mớn nuớc tương đương
D7=VLOOKUP(C7,'Hydrostatic Table'!A1:I8,2)
‘ Tính TPC của tàu ứng với mớn nước tương đương đọc tại biển
E7=VLOOKUP(C7,'Hydrostatic Table'!A1:I8,6)
F7=(D7/(100*E7))*(1.025/C6-1) ‘ Tính lượng thay đổi mớn nước
‘Tính mớn nước tương đương mới của tàu tại vùng có tỷ trọng nước g
G7=F7+C7
‘Tính Displ của tàu tại vùng nước (cảng) có tỷ trọng nước g
C8=VLOOKUP(G7,'Hydrostatic Table'!A1:I22,2,1)
‘Tính XB của tàu tại vùng nước (cảng) có tỷ trọng nước g
D8=VLOOKUP(G7,'Hydrostatic Table'!A9:I22,3,1)
‘Tính XF của tàu tại vùng nước (cảng) có tỷ trọng nước g
E8=VLOOKUP(G7,'Hydrostatic Table'!A1:I22,4,1)
‘Tính Trim của tàu tại vùng nước có tỷ trong nước=C8*(ABS(E8)-ABS(D8))/(100*VLOOKUP(G7,'Hydrostatic Table'!A1:I22,5,1))
F8=C8*(ABS(E8)-ABS(D8))/(100*VLOOKUP(G7,'Hydrostatic Table'!A1:I22,5,1))
Kết quả tính toán
E12=G7-(((E6/2+E8)*F8)/E6) ‘Mớn nước df
C12=E12+F8 ‘Mớn nước da
G12=(C12+E12)/2 ‘Mớn nước dÅ
3.2 Hoàn chỉnh giao diện và bảo vệ dữ liệu.
Sau khi hoàn thành việc viết chương trình, ta sẽ định dạng và thiết kế lại giao diện sao cho đẹp mắt. Để cho người sử dụng không thể nhìn thấy công thức trong các ô trung gian, ta chọn màu chữ cùng với màu nền tại các ô đó. Tiến hành bảo vệ tất cả các ô trừ những ô dùng để nhập dữ liệu.

Một số bài khác

BÀI TOÁN TỔNG HỢP
VỀ TÍNH TOÁN CHO CHUYẾN ĐI

I/ Dữ liệu cho để nhập vào gồm:
- Tàu đang ở cảng nào, hoặc đang ở đâu, sẽ nhận được kế hoạch thực hiện chuyến hành trình tiến theo số:
- Yêu cầu tàu hành trình đến cảng nào đó ( nơi nào đó ) để xếp hàng.
o Cho biết tên hàng
o Cho biết khối lượng hàng cần xếp xuống tàu (±ΔÔ%)
o Cho biết hệ số chất xếp của hàng.
o Cho biết định mức xếp hàng tại cảng xếp (MT/giờ).
o Mớn nước cho phép ở cảng xếp
- Yêu cầu tàu hành trình từ cảng xếp hàng đến cảng dỡ hàng.
o Cho biết tên cảng dỡ hàng
o Cho biết định mức dỡ hàng tại cảng dỡ.
o Cho biết mớn nước cho phép tại cảng dỡ.
- Cho biết một số định mức như sau:
o Định mức tiêu thụ trên biển: Dầu FO, DO, Nước ngọt.
o Có thể có một số tàu có thiết bị chương cất nước biển thành nước ngọt (nếu có sẽ cho biết công suất bao nhiêu MT/ngày).
o Định mức tiêu thụ trong cảng: Dầu FO, DO, Nước ngọt.
- Tất nhiên chúng ta tính toán được quãng đường tàu chạy từ cảng xếp hàng đến cảng dỡ hàng.
- Tốc độ trung bình của tàu.
- Cho biết, hay chúng ta tính toán được tàu ở cảng xếp hàng trước khi xếp hàng xuống tàu, các thông số về:
o Khối lượng và thể tích hàng hóa ở tàu (nếu có)
o Lượng nước ngọt
o Lượng dầu DO, FO, có loại tàu còn có thêm cả Lub.Oil
o Ballast
Tất nhiên bảng thủy tĩnh của tàu chúng ta cần phải nhập vào một Sheet nào đó.
II/ Yêu cầu:
1. Tính toán lượng nước ngọt đã tiêu thụ tại thời điểm các cảng với các điều kiện đến và đi của tàu
2. Tính toán lượng dầu FO, DO đã tiêu thụ tại thời điểm các cảng với các điều kiện đến và đi của tàu
3. Trình bày phân bổ nước Ballast của tàu với các thời điểm đến và đi tại mỗi cảng
4. Phương án phân bố hàng xuống tàu tại thời điểm xếp hàng đảm bảo các yêu cầu của chuyến đi
5. Trình bày cách thức tính toán mớn nước tàu tại các thời điểm đến và đi của mỗi cảng (Lấy tỷ trọng nước tại các cảng mà tàu đến trong GUIDE TO PORT ENTRY)
6. Tính toán ổn định và vẽ đường cong ổn định tĩnh, đánh giá ổn định theo tiêu chuẩn A.167
7. Nhập thông số tính toán vào bảng MEMO COND
8. Lập sơ đồ chất xếp hàng theo mẫu đã được hướng dẫn

Bài toán này có thể chia thành những bài toán nhỏ:
- Tính toán mớn nước của tàu, tính Trim
- Tính toán ổn định và vẽ đường cong ổn định tĩnh

Bài toán này có thể phát triển thêm số cảng nhận hàng, loại hàng nhận tại các cảng, dỡ tại nhiều cảng.

NHỮNG BÀI TOÁN VỀ THIÊN VĂN
Chúng ta có thể chia các bài toán thiên văn thành những dạng bài toán như đã trình bày ở chương 1. Nếu ta biết các công thức để giải một bài toán thiên văn cụ thể nào đó thì chúng ta sẽ chuyển được về lập trình bằng bảng tính EXCEL để giải tự động các loại bài toán dạng đó.
Ví dụ: BÀI TOÁN GẦN ĐÚNG VỀ MẶT TRỜI
- Tính gần đúng a  , d  ngày 1/5 hàng năm ?
- vào ngày này người quan sát đứng ở vĩ độ j =2007N thì độ cao qua kinh tuyến thượng của mặt trời (H ) là bao nhiêu ?
- Ở vị độ này vào ngày nào trong năm mặt trời (  ) đi qua thiên đỉnh ?
Bài giải
a, Tính a  , d 
- chọn mốc . ngày 21/3 thì (a  = o , d  = o )
- tính D d  , D a  d N
- số ngày từ 21/3 ¸ 1/5 là 41 ngày
vậy ta có D a  = 41 x 10= 410 27023'
D d  =( 31x004 ) + (10x003) =1504
- vậy d  1/5 =d  mốc + D d  = 00 + 1504 = 1504
- µ  1/5=a  mốc+ D a  =00 + 410 = 410
Þ d  1/5=1504 27023'
a  1/5=410
b , tính H d S
- H = 900 - a N + d N
thay số H = 900 - 2007 + 1504 = 8407
Þ H =8407
c , Tính ngày mặt trời qua thiên đỉnh
- điều kiện qua thiên đỉnh j =d và cùng tên
Þ d  =2007
- chọn mốc 22/6 ( d  = 2305 N )
- tính D d 
- D d  = d  mốc-d  tính =2305 - 2007 =208
- tính số ngày D T để D d  = 208
D T = 208 : 001 = 28 ngày
- vậy gày mặt trời qua thiên đỉnh là
22/6 - 28ngày = 25/5
22/6 + 28ngày = 20/7

Ví dụ: BÀI TOÁN VỀ THỜI GIAN.(Chuyển đổi giờ với kinh tuyến khác nhau)
Tính giờ địa phương TL tại kinh độ ở = 112052'W biết giờ tàu tại ở=97042'W là 21h15m20S ngày hôm nay (29/12) .
- Tại lúc này giờ địa phương và giờ múi ở kinh độ ấy (ở=112052'W)
Bài giải :
- Tính giờ thế giới TG .
TG = TL + nW (n =97042'/15 = 7)
= 21h15m20S + 7 = 29h15m20S = 5h15m20S (ngày hôm sau tức là 30/12)
-Tính TL tại kinh độ ở = 115052'W
ta có TL = TG ± ởW
= 4h15m20s - 7h31m28s = 20h43m52s ( ngày 29/12)
- Tính D T = TL - TN (ở kinh độ ở = 115052'W)
TL = TG - nw = 4h15m20S - 8 = 20h15m20S ( ngày 29/12 )
* Vậy D T = 20h43m52s - 20h15m20S = 28h32m00s
BÀI 16
BÀI TOÁN VỀ THỦY TRIỀU
Đối với các bài toán thủy triều thường được giải như sau: Tra bảng (có nội suy), sau đó dùng phương pháp đồ thị để xác định các thông số. Tuy nhiên với những cảng có hiệu số giữa giờ nước lớn và giờ nước ròng (gNL – gNR >7 giờ) lớn hơn 7 hay những cảng nào độ chênh lệch về thời gian NL, NR được thay thế bằng chữ “p” thì có nghĩa là không có cảng chính tương ứng với nó và dự đoán thuỷ triều cho các cảng như vậy chỉ có thể thực hiện theo phương pháp hằng số điều hoà (NP 159).
Việc áp dụng máy tính vào các bài toán thủy triều được khuyến cáo nên dùng cho phương pháp hằng số điều hoà (NP 159). Phương pháp này được hướng dẫn chi tiết tại trang xviii, xix và trang xx gồm 34 bước trong các cuốn “Lịch thủy triều Anh”.
Để xây dựng chương trình tính toán thủy triều theo phương pháp hằng số điều hòa, chúng ta dựa vào bảng mẫu và các bước tính toán đó để tự mình có thể thiết kế được một chương trình.

Vẽ đồ thị cánh tay đòn ổn định tĩnh

I/ Yêu cầu:
Sử dụng bảng tính EXCEL để xây dựng chương trình vẽ đồ thị cánh tay đòn ổn định tĩnh GZ:
Dữ liệu nhập vào
Trọng lượng tàu không D0.
Tổng trọng lượng.
Cao độ trọng tâm tàu không.
Cao độ tâm nghiêng ngang
Mô men
Trích một phần bảng thủy tĩnh.
Yêu cầu cần kết quả:
Tính toán và vẽ đồ thị cánh tay đòn ổn định tĩnh.
II/ Kiểm tra chương trình
Hãy kiểm tra chương trình bằng một bài cụ thể như sau:
Bài 27: Một tàu dự kiến xếp hàng có tổng trọng lượng 52090MT sẽ gây ra một mômen thẳng đứng đối với keel là 574400 MT-m; Trọng lượng tàu không Do=1520MT,KGo=11.1m; Tổng trọng lượng các thành phần còn lại là 1200MT gây ra một mômen thẳng đứng là 10040MT-m;TKM=13.47m. Hãy vẽ đường cong cánh tay đòn ổn định tĩnh. Tham khảo bảng sau(KG giả định=10m).

Góc nghiêng
Giá trị hàm sin

III/ XÂY DỰNG CHƯƠNG TRÌNH
Tạo thư mục, lưu chương trình giống như những bài tập trên
3.1 Viết chương trình
Để viết chương trình ta cần sử dụng các bước sau:
Bước 1: Tính độ cao trọng tâm tàu KG
Tra các giá trị KN với đối số là Displ của tàu ở bảng CROSS CURVE
tại các góc nghiêng 10, 15, 20, 25 ... 90.
Bước 2: Lập bảng tính toán
Bước 3: Vẽ đồ thị.
Có thể thiết kế chương trình như sau:

Các ô dành cho người dùng nhập dữ liệu là:
C4, E4, G4, I4, K4, C6, E6 và G6
Các ô xuất kết quả là: E12 và G12
Sau đây là chương trình chính của bài toán:
Trước hết ta nhập bảng Cross Curve vào một Sheet nào đó của File và đổi tên Sheet đó thành Cross Curve
C7=C4+E4+G4+I4+K4 ‘Tính Displ của tàu
C12=I8+K8+M8 ‘Tính tổng Mômen thành phần
E7=(C4*C6+C12)/C7 ‘Tính cao độ trọng tâm KG
K10=M4-E10 ‘Tính chiều cao thế vững GM
Nhập vào ô E12 giá trị góc là 5
Nhập vào ô E13 giá trị góc là 10.
Đánh dấu khối hai ô này sau đó thực hiện thao tác điền đầy dữ liệu đến hết ô E29.
G12=SIN(RADIANS(E12)) ‘Tính sin(góc)
sau đó điền đầy dữ liệu vào khối G12:G29
Tương tự như vậy ta tính giá trị KG*sin(góc) tại ô K12=$E$10*G12, sau đó tiến hành điền đầy dữ liệu đến hết ôK29
I12=vlookup(C7,’Cross Curve’!A1:T10,2) ‘Tính KN
làm tương tự như vậy cho đến hết khối I12:I29
M12=I12-K12 ‘Tính GZ
thao tác điền đầy dữ liệu để tính GZ hết khối M12:M29
Kết quả tính toán được tính ở khối E11:M29
Sau đó ta tiến hành Copy dữ liệu của khối E11:M29 sang một Sheet khác được đổi tên là “Do thi” theo cách Copy Special, rồi cho ẩn các hàng trung gian chỉ còn hai hàng là “Góc” và “GZ”. Tiến hành vẽ đồ thị với khối dữ liệu này theo dạng đồ thị “xy”.
3.2 Hoàn chỉnh giao diện và bảo vệ dữ liệu.
Sau khi hoàn thành việc viết chương trình, ta sẽ định dạng và thiết kế lại giao diện sao cho đẹp mắt. Để cho người sử dụng không thể nhìn thấy công thức trong các ô trung gian, ta chọn màu chữ cùng với màu nền tại các ô đó. Tiến hành bảo vệ tất cả các ô trừ những ô dùng để nhập dữ liệu.

Độ cao trọng tâm, góc nghiêng ngang lớn nhất

Sử dụng bảng tính EXCEL để xây dựng chương trình giải bài toán xác định cao độ trọng tâm tàu và góc nghiêng ngang lớn nhất có thể khi dịch chuyển hàng:
Dữ liệu nhập vào
- Lượng dãn nước của tàu (Dispt).
- Cao độ tâm nghiêng ngang (KM).
- Cao độ trọng tâm tàu (KG)
- Khối lượng hàng chuyển dịch, cao độ trọng tâm mã hàng.
- Khoảng cách của khối hàng, khoảng cách của cần cẩu tàu (sử dụng cẩu tàu) so với đáy tàu (keel tàu).
- Khoảng cách dịch chuyển của khối hàng
Yêu cầu cần kết quả:
Tính toán cao độ trọng tâm của tàu khi nâng mã hàng.
Góc nghiêng lớn nhất khi mã hàng này dịch chuyển
II/ Kiểm tra chương trình
Hãy kiểm tra chương trình bằng một bài cụ thể như sau:

Bài 23: Một tàu có lượng giãn nước D=10000MT; KM=25ft với chiều cao trọng tâm KG=20ft. Một mã hàng nặng ở hầm số 1 có trọng lượng 40MT với cao độ trọng tâm là KG1=10ft. Xác định cao độ trọng tâm của tàu khi mã hàng được nâng rời sàn hầm 3ft bởi cần cẩu đại của tàu mà cẩu này có đỉnh cần là 60 ft so với keel tàu. Hãy tính góc nghiêng lớn nhất khi dịch chuyển khối hàng này sang mạn có khoảng cách từ đỉnh cần tới mặt phẳng trục dọc là 50ft.

III/ XÂY DỰNG CHƯƠNG TRÌNH
Tạo thư mục, lưu chương trình giống như những bài tập trên
3.1 Viết chương trình
Đây là một dạng của bài toán tính toán góc nghiêng lớn nhất của tàu khi dịch chuyển một khối hàng từ vị trí này sang vị trí khác.
Để viết chương trình ta cần sử dụng các công thức sau:

- Công thức tính Mômen nghiêng ngang khi dịch chuyển một khối hàng
M= Phàng*d
Trong đó:
Phàng:Khối lượng mã hàng dịch chuyển
d: khoảng cách mà mã hàng sẽ dịch chuyển theo mặt phẳng
trục dọc tàu.

Có thể thiết kế chương trình như sau:




















Các ô dành cho người dùng nhập dữ liệu là:
C5, E5, G5, I5, K5, C7 và E7
Các ô xuất kết quả là: E12 và H12
Sau đây là chương trình chính của bài toán:
‘Tính khoảng dịch chuyển trọng tâm tàu khi nâng mã hàng
C8 =I5*(C7-K5)/C5
D8=G5+C8 ‘ Tính cao độ trọng tâm tàu khi dịch chuyển mã hàng
E8=E5-D8 ‘ Tính chiều cao thế vững mới của tàu.
F8=I5*E7 ‘ Tính Mômen nghiêng ngang
G8=F8/(E8*C5) ‘ Tính Tag của góc nghiêng ngang
H8=ATAN(G8) ‘Tính Radians của góc nghiêng ngang
I8=DEGREES(H8) ‘Tính góc nghiêng ngang
E12=Trunc(I8) ‘Tính phần độ của góc nghiêng
H12=Round((I8-E12)*60,0) ‘Tính phần phút của góc nghiêng
3.2 Hoàn chỉnh giao diện và bảo vệ dữ liệu.
Sau khi hoàn thành việc viết chương trình, ta sẽ định dạng và thiết kế lại giao diện sao cho đẹp mắt. Để cho người sử dụng không thể nhìn thấy công thức trong các ô trung gian, ta chọn màu chữ cùng với màu nền tại các ô đó. Tiến hành bảo vệ tất cả các ô trừ những ô dùng để nhập dữ liệu.




Bài trắc nghiệm ôn tập DKTB ( Bổ sung)

1/. Ghi file hiện thời vào đĩa
a. File \ Open b. File \ Save
c. File \ Save as d. Edit \ Save
2/. Ghi file hiện thời vào đĩa với tên khác
a. File \ Open b. File \ Save
c. File \ Save as d. Edit \ Save as

3/. Tìm kiếm dữ liệu trong bảng tính
a. Edit \ Find c. Edit \ Replace
b. File \ Find d. Edit \ Go to
4/. Sắp xếp dữ liệu cho cho bảng tính
a. Data \ Sort … c. Data \ Filter
b. Data \ Form… d. Data \ Table…
5/. Chèn một biểu đồ vào bảng tính
a. Insert \ chart wizard c. Insert \ Picture
b. Insert \ Object… d. Insert \ Symbol…
6/. Hàm Trunc(9.569) có gía trị bằng
a. a. 9 b. 9.5
b. c. 9.56 d. 10

7/. Hàm Trunc(4.27,1) có gía trị
a. a. 4.27 b. 4
b. c. 4.2 d. 4.0
8/. Hàm Radians(X)
a. Chuyển X từ đơn vị độ sang radian
b. Chuyển X từ Radian sang độ
c. Logarit cơ số 10 của X
9/. Hàm Degrees(X)
a. Chuyển X từ đơn vị độ sang radian
b. Chuyển X từ Radian sang độ
c. Lấy gía trị căn bậc hai của X

10/. QUOTIENT(X,Y) có giá trị
a. X / Y c. Phần nguyên của X / Y
b. Y / X d. Phần dư của X / Y
11/. Đếm số lượng giá trị số trong dãy
a. COUNTA(miền)
b. COUNTIF(miền, điều kiện)
c. COUNT(X1, X2, X3,….., XN)
12/. G8 chứa độ lệch địa từ năm hàng hải tính ra phút. Hàm Trunc(G8 / 60)
a. Tính phần độ của năm hàng hải
b. Tính phần phút của năm hàng hải
c. Giá trị độ lệch địa từ hàng hải
d. Giá trị độ biến thiên hàng năm
13/. D8 độ cao trọng tâm tàu khi dịch chuyển mã hàng, E5 là KM. E8 = E5 – D8
a. Mômen nghiêng ngang
b. Chiều cao thế vững mới của tàu
c. Góc nghiêng ngang
d. Phần phút của góc nghiêng
14/. I5 là P hàng, E7 là khoảng cách dịch chuyển: F8 = I5*E7
a. Mômen nghiêng ngang
b. Chiều cao thế vững mới của tàu
c. Góc nghiêng ngang
d. Tag của góc nghiêng ngang
15/. I8 là Tag của góc nghiêng ngang H8 = ATAN(I8) là
a. Tính phần độ của góc nghiêng
b. Tính phần phút của góc nghiêng
c. Tính Radians của góc nghiêng ngang
d. Tính góc nghiêng ngang
16/. A5 là Radians của góc nghiêng ngang. I8 = DEGREES(A5)
a. Tính góc nghiêng ngang
b. Tính phần độ của góc nghiêng
c. Tính phần phút ccủa góc nghiêng
d. Tính mômen nghiêng ngang
17/. C7 là mớn nước trung bình trước khi xếp hàng, D7 Mớn nước trung bình sau khi xếp hàng. E7 = (D7 – C7 )*12 tính
a. Lượng chìm thêm của tàu
b. Lượng hàng tối đa có thể xếp xuống
c. Độ lệch Trim trước và sau khi xếp hàng

18/. C7 là mớn nước tương đương tại vùng biển, F7 là lượng thay đổi mớn nước G7 = F7 + C7 là
a. Displ của tàu tại vùng nước có tỷ trong y
b. Mớn nước tương đương mới của tàu tại vùng biển có tỷ trong y
c. Lượng thay đổi mớn nước
d. Mơn nước tương đương tại vùng biển

Bài trắc nghiệm ôn tập DKTB

1/ Để khởi động MS Excel ta chọn lệnh:
a Start Programs Microsoft Word
b Start Programs Microsoft Excel
c Start Programs Microsoft Fontpage
d Start Programs Microsoft PowerPoint

2/ Tài liệu của MS Excel được lưu trên đĩa với phần mở rộng:
a .DOC
b .XLS
c .JPG
d .BMP

3/ Trong Excel hàm DAY(A5) [Trong do A5 = 18/05/2008] trả về:
a Số năm của biến ngày tháng A5 là 2008
b Số tháng trong năm của biến ngày tháng A5 là 05
c Số ngày trong tháng của biến ngày tháng A5 là 18
d Ngày tháng hiện tại của hệ thống

4/ Hàm DAY("22/10/2007") cho kết quả:
a 2007
b Tất cả đều sai
c 10
d 22

5/ Trong Excel hàm MONTH(date) trả về:
a Số tháng trong năm của biến ngày tháng date
b Ngày tháng hiện tại của hệ thống
c Số năm của biến ngày tháng date
d Số ngày trong tháng của biến ngày tháng date

6/ Hàm MONTH("09-Jan-2008") cho kết quả:
a 1
b 09
c 10
d 2008

7/ Trong Excel hàm YEAR(date) trả về:
a Ngày tháng hiện tại của hệ thống
b Số ngày trong tháng của biến ngày tháng date
c Số năm của biến ngày tháng date
d Số tháng trong năm của biến ngày tháng date

8/ Hàm YEAR("19-08-2008") cho kết quả:
a 2008
b Tất cả đều sai
c 19
d 08

9/ Trong Excel hàm TODAY() trả về:
a Số ngày trong tháng của biến ngày tháng date
b Số năm của biến ngày tháng date
c Số tháng trong năm của biến ngày tháng date
d Ngày tháng hiện tại của hệ thống

10/ Hàm LEFT("Microsoft Windows XP", 9) cho kết quả
a "Windows X"
b "Microsoft Windows"
c "Windows"
d "Microsoft"

11/ Hàm LEN("Microsoft Excel 5.0") cho kết quả
a 19
b 17
c 15
d 25

12/ Hàm RIGHT("Microsoft Excel 2003", 3) cho kết quả
a "Microsoft Excel 2003"
b "Microsoft"
c "Excel 2003"
d "003"

13/ Hàm TRIM(" Microsoft Excel 2003 ")
a "Micro soft"
b "Microsoft Excel"
c " Excel 2003"
d "Microsoft Excel 2003"
14/ Hàm MID(“Microsoft Excel 2003”,10,5)
a “ Microsoft”
b “Excel”
c “2003”
d “Excel 2003”

15/ Trong MS Excel hàm ABS(A7) { A5 = -5} dùng để:
a Tính giá trị tuyệt đối của số A7 = 5
b Tính tổng của số A7
c Tính căn bậc hai của số A7
d Tất cả đều sai

16/ Trong MS Excel hàm SQRT(A9) dùng để:
a Tính tổng của số A9
b Tất cả đều sai
c Tính căn bậc hai của số A9
d Tính giá trị tuyệt đối của số A9

17/ Hàm SUM(-12, -5, 7, 100) cho kết quả:
a 100
b 9
c -90
d 90

18/ Hàm MAX(8, 29, -11, 33, -51) cho kết quả
a -51
b 8
c 33
d 29

19/ Hàm MIN(-52, 20, -11, 23, -15) cho kết quả:
a 20
b 23
c -52
d -15

20/ Hàm AVERAGE(9, 21, -10, 24, -14) cho kết quả:
a 30
b -14
c 6
d 7

21/ Hàm AND(5>4, 8>-8, 9<-50, 11<59)>4, 8<-8, 9>-30, 11>51) cho kết quả:
a FALSE
b TRUE

23/ Để thay đổi kích thước của cột trong Excel ta chọn lệnh:
a FORMAT ROWS HIDE
b FORMAT ROW HEIGHT
c FORMAT COLUMN WIDTH
d INSERT COLUMN

24/ Để thay đổi kích thước của hàng trong Excel ta chọn lệnh:
a FORMAT COLUMN WIDTH
b FORMAT ROW HEIGHT
c INSERT ROWS
d FORMAT COLUMN HIDE

25/ Đâu là cách khai báo địa chỉ tương đối trong Excel
a $A$49
b $A49
c AE$49
d AE49

26/ Đâu là cách khai báo địa chỉ tuyệt đối trong Excel
a F$25
b $F$25
c A25
d $D25

27/ Đâu là cách khai báo địa chỉ hỗn hợp trong Excel
a AD8
b $AD8
c Tất cả đều đúng
d $AD$8

28/ Chọn cách khai báo địa chỉ vùng trong Excel
a Tất cả đều sai
b $A$1
c $B$3
d $A$1:$B$3

29/ Để nhập công thức trong Excel ta có thể
a Nhập trực tiếp trong ô
b Nhập trên thanh công thức
c Tất cả đều đúng
30/ Địa chỉ D5 = E, F8 = 250.
Hàm if(D5 = “E”, if(F8>0,”E”,”W”),if(D5=”W”,if(F8<0,”w”,”e”), h7 =" D5*60" e13="ATAN(D13/C13)" g7 =" F7" t33 =" X28/K33" t31 =" Int(T30/24)" ab30 =" int(Mod(K30," g5 =" Mod(F8,60)" href="http://hocgao.blogspot.com/2008/09/p-n-cu-hi-trc-nghim.html">lời giải

Chương trình giải bài toán nhận hàng

Sử dụng bảng tính EXCEL để xây dựng chương trình giải bài toán nhận hàng sau:
Dữ liệu nhập vào
- Mớn nước của tàu (da, df) trước khi xếp hàng.
- TPC, MTC.
- Hoàng độ tâm mặt phẳng đường nước (XF).
- Chiều dài tính toán của tàu LBP
- Mớn nước của tàu sau khi xếp hàng.
Yêu cầu cần kết quả:
Tính toán khối lượng hàng lớn nhất mà tàu có thể xếp xuống tàu
II/ Kiểm tra chương trình 
Hãy kiểm tra chương trình bằng một bài cụ thể như sau:

Bài 31: Một tàu có mớn nước df=25.4Ft; da=24.6Ft; TPC=58.01LT/Inch; MTC=1617.66Ft-LT/Inch;XF =-1,37ft. Hãy tính lượng hàng tối đa có thể xếp và vị trí lô hàng đó biết LBP=440ft để tàu sau khi hoàn thành việc xếp hàng có mớn nước df=26.2ft ;da=27.2ft

III/ XÂY DỰNG CHƯƠNG TRÌNH 
Tạo thư mục, lưu chương trình giống như những bài tập trên
3.1 Viết chương trình
Đây là một dạng của bài toán tính toán khối lượng hàng lớn nhất có thể xếp xuống tàu thoả mãn mớn nước nào đó. 
Để viết chương trình ta cần sử dụng các công thức sau:
- Công thức tính khối lượng hàng có thể xếp tối đa:
  Pmax = ΔÔd*TPC
  với ΔÔd là lượng thay đổi chiều chìm của tàu
- Công thức tính vị trí khối hàng
  l = TPC*ΔÔt/Pmax
 với l: khoảng cách từ lô hàng đến điểm F (tâm mặt phẳng đường nước)
 ΔÔt:độ chênh lệch mớn nước trước và sau khi xếp hàng
Có thể thiết kế chương trình như sau:









Các ô dành cho người dùng nhập dữ liệu là:
C4, E4, G4, I4, C6, E6, G6 và I6
Các ô xuất kết quả là: E12 và G12
Sau đây là chương trình chính của bài toán:
C7=(C4+E4)/2 Tính mớn nước trung bình trước khi xếp hàng
D7=(G4+I4)/2 Tính mớn nước trung bình sau khi xếp hàng
E7=(D7-C7)*12 Tính lượng chìm thêm của tàu
F7=E7*C6 Tính lượng hàng tối đa mà có thể xếp xuống tàu
G7=(C4-E4)-(G4-I4))*12 Tính dộ lệch Trim trước và sau khi xếp hàng
H7=E6*G7/F7 Tính khoảng cách lô hàng so với điểm F
Kết quả tính toán
E12=F7 
G12=H7+I6 Khoảng cách lô hàng so với mặt phẳng sườn giữa
3.2 Hoàn chỉnh giao diện và bảo vệ dữ liệu.
Sau khi hoàn thành việc viết chương trình, ta sẽ định dạng và thiết kế lại giao diện sao cho đẹp mắt. Để cho người sử dụng không thể nhìn thấy công thức trong các ô trung gian, ta chọn màu chữ cùng với màu nền tại các ô đó. Tiến hành bảo vệ tất cả các ô trừ những ô dùng để nhập dữ liệu.

Chương trình tính toán mớn nước của tàu

I/ YÊU CẦU:
 Sử dụng bảng tính điện tử EXCEL hãy xây dựng chương trình tính toán mớn nước của tàu như sau:
 Dữ liệu nhập vào
- Trọng lượng tàu không (Light Ship – D0)
- Chiều dài tính toán của tàu (LBP).
- Lượng giãn nước dự tính sau khi xếp hàng (Displacement – D)
- Hoành độ trọng tâm tàu không XG0
- Tổng các Momen thành phần Pi XGi
- Trích một phần của bảng thủy tĩnh tàu.
Yêu cầu: Chương trình tự động tính toán được mớn nước của tàu.
II/ KIỂM TRA CHƯƠNG TRÌNH 
Hãy kiểm tra chương trình bằng một bài cụ thể như sau:
Một tàu có Do=2687 MT;XGo=5.34m; LBP=106m, dự kiến xếp hàng tại cảng tới sao cho có lượng giãn nước dự kiến DDự kiến=9219MT; Pi XGi=-41200 MT-m. Tham khảo bảng thuỷ tĩnh sau
Dispt Draft MID.B MID.F MTC TPC KB TKM LKM 
9095 4.73 -2.749 -1.501 155.67 20.67 2.430 8.88 212.8 
9116 4.74 -2.746 -1.488 155.76 20.67 2.436 8.87 212.4 
9136 4.75 -2.743 -1.476 155.85 20.67 2.441 8.86 212.1 
9157 4.76 -2.740 -1.463 155.94 20.68 2.446 8.86 211.7 
9178 4.77 -2.737 -1.450 156.03 20.68 2.451 8.85 211.4 
9198 4.78 -2.734 -1.437 156.12 20.69 2.456 8.84 211.0 
9219 4.79 -2.731 -1.424 156.21 20.69 2.461 8.83 210.7 
9140 4.80 -2.728 -1.411 156.30 20.70 2.467 8.83 210.4 

III/ XÂY DỰNG CHƯƠNG TRÌNH 
Tạo thư mục, lưu chương trình giống như những bài tập trên
3.1 Viết chương trình
- Sử dụng các công thức để tính XG  
  
Có thể thiết kế chương trình như sau:



- Sử dụng công thức tính mô men hiệu số mớn nước: D(xB-xG)  
- Sử dụng công thức tính Trim 
   
- Để tính mớn nước mũi, lái và sườn giữa ta sử dụng các công thức sau:
 df = dtương đương  
 da = df + Trim

 dm = (df +da )/2

 Trong đó dtương đương, MTC, XF dùng hàm Vlookup lấy từ bảng thủy tĩnh với giá trị tìm là Displ
Các ô dành cho người dùng nhập dữ liệu là:
B5, D5, F5, H5 và J5
Các ô xuất kết quả là: 
- Trim: D11
- df: F11
- da: H11
- dm:J11
Sau đây là chương trình chính của bài toán:
Trước hết nhập bảng trích của bảng thủy tĩnh vào một Sheet của File và đổi tên Sheet đó thành “BangTT”.
Cũng như các bài khác ta cần phải sử dụng các ô trung gian.
B7=(B5*D5+H5)/J5 Tính XG
D7==ABS(B7)-ABS(VLOOKUP(J5,'Bang TT'!A1:I9,3,1)) Tính BG
F7=J5*D7 Tính Mômen hiệu số mớn nước
H7=(((F5/2)+VLOOKUP(J5,'Bang TT'!A1:I9,4,1))*D11)/F5 Tính ΔÄdf
 Tính Trim
D11=IF(D7>=0,ABS((F7)/(VLOOKUP('Chuongtrinh'!J5,'BangTT'!A1:I9,5,
  1)*100)),F7/(VLOOKUP('Chuong trinh'!J5,'Bang TT'!A1:I9,5,1)*100))
F11=VLOOKUP(J5,'Bang TT'!A1:I9,2,1)-H7 Tính df
H11=F11+D11 Tính da
H11=(F11+H11)/2 Tính dm
3.2 Hoàn chỉnh giao diện và bảo vệ dữ liệu.
Sau khi hoàn thành việc viết chương trình, ta sẽ định dạng và thiết kế lại giao diện sao cho đẹp mắt. Để cho người sử dụng không thể nhìn thấy công thức trong các ô trung gian, ta chọn màu chữ cùng với màu nền tại các ô đó. Tiến hành bảo vệ tất cả các ô trừ những ô dùng để nhập dữ liệu. Lưu ý bảo vệ cả bảng tính nhập “Bảng thủy tĩnh”

BÀI TOÁN TỔNG HỢP CHUYẾN ĐI

Khi chúng ta đã biết cách tính khoảng cách và hướng đi Locxo giữ hai điểm, thì ta có thể tính và lập thành bảng của một chuyến hành trình từ cảng này tới cảng khác bằng cách tính tổng khoảng cách trên các đoạn Locxo của tuyến hành trình, cũng như khoảng cách và hướng chạy trên mỗi đoạn, quãng đường còn lại khi chạy hết mỗi đoạn, đồng thời ta có thể tính toán được ETA ... 
I/ YÊU CẦU: 
Đây là bài toán nhằm nâng cao kỹ năng viết chương trình bằng phần mềm EXCEL. Yêu cầu sinh viên tự nghiên cứu và viết ở nhà.
- Viết chương trình tổng hợp một chuyến đi từ cảng A đến cảng B.
o Sau khi người sĩ quan hàng hải tính toán được tọa độ của các điểm trung gian chuyển hướng, người sử dụng sẽ tiến hành nhập tọa độ các điểm đó
o Chương trình sẽ tự động tính được khoảng cách và hướng đi Locxo trên từng đoạn, tính được tổng quãng đường từ cảng A đến cảng B 
o Nếu người sử dụng nhập vận tốc trung bình của tàu thì chương trình sẽ tính được ETA

II/ XÂY DỰNG CHƯƠNG TRÌNH TÍNH ĐỘ LỆNH ĐỊA TỪ

2.1 Tạo thư mục làm việc
Như bài tập 1. Chúng ta cũng nên lưu chung các File chương trình vào cùng một thư mục D:\DKTB

2.2 Viết chươngtrình
2.2.1 Lưu chương trình

- Khởi động phần mềm EXCEL, sau đó mở File mới.
- Nhắp chuột vào Menu File -> chọn mục Save. Khi đó trên màn hình xuất hiện một khung hội thoại Save As.
  Trong mục Save in: Chọn thư mục cần lưu File (DKTB)
 Trong mục File Name: Tổng hợp chuyến hành trình.
Có thể thiết kế chương trình như sau:










2.2.2 Viết chương trình 

Ta sử dụng các ô dành cho người dùng nhập dữ liệu là:
- Nhập giá trị tọa độ các điểm vào khối E7:O25
- Nhập giá trị vận tốc trung bình của tàu vào:K33
- Kết quả sẽ được cho bởi khối T7:AA25 và khối V33:AA33
Sau đây là chương trình chính của bài toán:
F7=(E7*60+G7) Tính vĩ độ điểm thứ nhất ra phút
Tương tự như vậy ta chỉ cần Copy ô F7 lần lượt dán vào các ô từ F9, F11, F13 đến F25 để đổi vĩ độ các điểm còn lại ra phút
Tính hiệu vĩ độ giữa hai điểm liên tiếp
F10=IF(I9=I7,ABS(F9-F7),ABS(F9+F7)) 
Tương tự như vậy ta Copy ô F10 dán vào các ô F12, F14, F16 đến F24
Tính vĩ độ tiến của điểm thứ nhất
H7=7915.7045*LOG(TAN(RADIANS((E7+G7/60)/2+45))) 
Ta tiến hành Copy ô H7 lần lượt dán vào các ô H9, H11, H13 đến H25 để tính vĩ độ tiến các điểm.
Tính hiệu vĩ độ tiến giữa hai điểm thứ nhất và thứ hai
H10=IF(I9=I7,ABS(F9-F7),ABS(F9+F7)) 
Copy ô H10, sau đó lần lượt dán vào các ô H12, H14, H16 đến H26 để tính hiệu vĩ độ tiến giữa hai điểm liên tiếp 
L7=K7*60+M7 Đổi kinh độ điểm thứ nhất ra phút
Tương tự Copy ô L7 lần lượt dán vào các ô L9, L11, L13 đến L25
Tính hiệu kinh độ giữa điểm thứ hai với điểm thứ nhất 
L10=IF(O9=O7,ABS(L9-L7),ABS(L9+L7)) 
Copy ô L10, sau đó lần lượt dán vào các ô L12, L14, L16 đến L26
Kết quả tính toán
S9=C7&C9 Ghi các đoạn Locxo giữa hai điểm
Copy ô S9, sau đó lần lượt dán vào các ô S11, S13, S15 đến S25
T9=H10 Cho hiệu vĩ độ tiến giữa điểm thứ hai và điểm thứ nhất
Copy ô T9, lần lượt dán vào các ô T11, T13, T15 đến T25 để tính hiệu vĩ độ tiến giữa hai điểm liên tiếp nhau.
V8=ATAN(L10/T9) Tính ra Radians của hướng đi đoạn thứ nhất
Copy ô V8 sau đó lần lượt dán vào các ô V10, V12, V14 đến V24
V9=TRUNC(DEGREES(V8)) Tính số độ của hướng đi đoạn thứ nhất
Copy ô V9, lần lượt dán vào các ô V11, V13, V15 đến V25
Tính số phút của hướng đi đoạn thứ nhất
W9=ROUND(((DEGREES(V8))-V9)*60,0)  
Copy ô W9, lần lượt dán vào các ô W11, W13, W15 đến W25
Y8=COS(V8) Tính Cos của hướng đi
Copy ô Y8 lần lượt dán vào các ô Y10, Y12, Y14 đến Y24
 Tính khoảng cách Locxo đoạn 1 từ điểm thứ nhất đến điểm thứ hai
Y9=F10/Y8 
Copy ô Y9, lần lượt dán vào các ô Y11, Y13, Y15 đến Y25 để tính khoảng cách giữa hai điểm liên tiếp khác.
 Tính tổng khoảng cách của cả chuyến đi
X28=Y9+Y11+Y13+Y15+Y17+Y19+Y21+Y23+Y25 
AA7=X28 
AA9=AA7-Y9
Copy ô AA9, lần lượt dán vào các ô AA11, AA13, đến AA23
Tính ETA
T30=X28/K33 Tính khoảng thời gian tàu hành trình từ cảng A đến B
T31=T30/24 Tính khoảng thời gian tàu hành trình ra ngày
V33 =TRUNC(T31) 
Tính khoảng thời gian là giờ
AB30=(T31-V33)*24 
Y33=TRUNC(AB30)
 Tính khoảng thời gian là phút
AB31 =(AB30-Y33)*60 
AA33 =ROUND(AB31,0)

2.3 Chạy thử chương trình và sửa lỗi.
Khi chạy thử chương trình ta sẽ nhận thấy một số sai sót như:
- Thứ nhất: Nếu người sử dụng nhập đủ cả 10 điểm thì chương trình sẽ chạy đúng, còn nếu chỉ nhập từ 2 đến 9 điểm thì phần kết quả tính toán sẽ mắc lỗi. Trong thực tế có thể người sử dụng chỉ nhập tọa độ của 2 điểm, hoặc một số điểm nhỏ hơn 10. Chính vì vậy để chỉnh sửa lại chương trình để đảm bảo hoàn thiện hơn. Cụ thể như sau:
F7 =IF(AND(E7="",AND(G7="",I7="")),"",E7*60+G7)
F9 =IF(AND(E9="",AND(G9="",I9="")),"",E9*60+G9)
F10 =IF(OR(F7="",F9=""),"",IF(I9=I7,ABS(F9-F7),ABS(F9+F7)))
H7=IF(AND(E7="",AND(G7="",I7="")),"",7915.7045*LOG(TAN(RADIANS((E7+G7/60)/2+45))))
H9=IF(AND(E9="",AND(G9="",I9="")),"",7915.7045*LOG(TAN(RADIANS((E9+G9/60)/2+45))))
L7=IF(AND(K7="",AND(M7="",O7="")),"",K7*60+M7)
L9=IF(AND(K9="",AND(M9="",O9="")),"",K9*60+M9)
L10=IF(OR(L7="",L9=""),"",IF(O9=O7,ABS(L9-L7),ABS(L9+L7)))
H10=IF(OR(H7="",H9=""),"",IF(I9=I7,ABS(H9-H7),ABS(H9+H7)))
T9=IF(H10="","",H10)
V8=IF(OR(L10="",T9=""),"",ATAN(L10/T9))
V9=IF(V8="","",TRUNC(DEGREES(V8)))
W9=IF(V8="","",ROUND(((DEGREES(V8))-V9)*60,0))
Y8=IF(V8="","",COS(V8))
Y9=IF(OR(F10="",Y8=""),"",F10/Y8)
AA9=IF(OR(AA7="",Y9=""),"",AA7-Y9)
F12=IF(AND(E11="",G11=""),"",IF(I11=I9,ABS(F11-F9),ABS(F11+F9)))
  sau đó Copy ô F12, lần lượt dán vào các ô F14, F16, F18 đến F26
H12=IF(AND(E11="",G11=""),"",IF(I11=I9,ABS(H11-H9),ABS(H11+H9)))
Copy ô H12 sau đó lần lượt dán vào các ô H14, H16, H18 đến H26.
L12=IF(AND(K11="",M11=""),"",IF(O11=O9,ABS(L11-L9),ABS(L11+L9)))
  Copy ô L12 rồi lần lượt dán vào các ô L14, L16, L18 đến L26
S11=IF(C11="","",C9&C11)
Copy ô S11 rồi lần lượt dán vào các ô S13, S15, S17 đến S25
T11=IF(H12="","",H12)
Copy ô T11, rồi lần lượt dán vào các ô T13, T15, T17 đến T25
V10=IF(OR(L12="",T11=""),"",ATAN(L12/T11))
Copy ô V10 sau đó lần lượt dán vào các ô V12, V14, V16 đến V26
V11=IF(V10="","",TRUNC(DEGREES(V10)))
Copy ô V11 sau đó lần lượt dán vào các ô V13, V15, V17 đến V25
W11 =IF(V10="","",ROUND(((DEGREES(V10))-V11)*60,0))
Copy ô W11 sau đó lần lượt dán vào các ô W13, W15, W17 đến W25
Y10 =IF(V10="","",COS(V10))
Copy ô Y10 sau đó lần lượt dán vào các ô Y12, Y14, Y16 đến Y24
Y11 =IF(OR(F12="",Y10=""),"",F12/Y10)
Copy ô Y10 sau đó lần lượt dán vào các ô Y13, Y15, Y17 đến Y25
X28=IF(Y11="",Y9,IF(Y13="",Y9+Y11,IF(Y15="",Y9+Y11+Y13,IF(Y17="",Y9+Y11+Y13+Y15,IF(Y19="",Y9+Y11+Y13+Y15+Y17,IF(Y21="",Y9+Y11+Y13+Y15+Y17+Y19,IF(Y23="",Y9+Y11+Y13+Y15+Y17+Y19+Y21,IF(Y25="",Y9+Y11+Y13+Y15+Y17+Y19+Y21+Y23,Y9+Y11+Y13+Y15+Y17+Y19+Y21+Y23+Y25))))))))
T30=IF(X28="","",X28/K33)
T31=IF(T30="","",T30/24)
V33=IF(T31="","",TRUNC(T31))
AB30=IF(OR(T31="",V33=""),"",(T31-V33)*24)
Y33=IF(AB30="","",TRUNC(AB30))
AB31=IF(OR(AB30="",Y33=""),"",(AB30-Y33)*60)
AA33=IF(AB31="","",ROUND(AB31,0))
- Thứ hai: Chương trình hạn chế ở chỗ nếu số điểm được nhập lớn hơn 10 thì chương trình không mở rộng được. Để khắc phục nhược điểm này có hai cách.
o Cách 1: Chia số lần nhập thành 10 điểm một
o Cách 2: Viết chương trình mở rộng tương tự như chương trình này với số điểm nhập nhiều lên.

2.4 Hoàn chỉnh giao diện và bảo vệ dữ liệu.
Sau khi hoàn thành việc viết chương trình, ta sẽ định dạng và thiết kế lại giao diện sao cho đẹp mắt. Để cho người sử dụng không thể nhìn thấy công thức trong các ô trung gian, ta chọn màu chữ cùng với màu nền tại các ô đó. Cuối cùng là phải tiến hành bảo vệ tất cả các ô trừ những ô dùng để nhập dữ liệu.  

Quảng cáo

Câu hỏi trắc nghiệm tin học căn bản và đáp án

1). Lệnh nào sau đây dùng để xóa màn hình ? A). CLS   B). CD C). TYPE  D). RD 2). Để bôi đen toàn bộ trang văn bản sử dụng lệnh nào sau đâ...

Học, học nữa, học mãi.
Kiến thức là vô tận không ai có thể nắm bắt được hết kho kiến thức của nhân lọai. Tôi với khả năng có hạn, cũng còn nhiều thứ tôi chưa biết. Nhưng với những gì đã biết, cũng xin chia sẻ với các bạn. Có thể với bạn là cũ và cũng có thể là mới, cùng với tinh thần cùng nhau học hỏi, cùng nhau phát triển. Tôi hy vọng đây là nơi chúng ta cùng học tập, chia sẻ, và cùng nhau phát triển.