CHƯƠNG 3 BÀI TỐN LẬP LỊCH THI CÔNG CÔNG TRÌNH

26 288 0
CHƯƠNG 3 BÀI TỐN LẬP LỊCH THI CÔNG CÔNG TRÌNH

Đ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

CHƯƠNG 3 BÀI TỐN LẬP LỊCH THI CÔNG CÔNG TRÌNH I. Bài tốn. Việc thi công một công trình lớn được chia ra làm n công đoạn, đánh số từ 1 đến n. có một số công đoạn mà việc thực hiện nó chỉ được tiến hành sau khi một số công đoạn nào đó đã hồn thành. Đối với mỗi công đoạn i biết t[i] là thời gian cần thiết để hồn thành nó (i = 1, 2, n). Ta có thể xay dựng đồ thị có hướng n đỉnh biểu diễn hạn chế về trình tự thực hiện các công việc sau: mỗi đỉnh của đồ thị tương ứng với một đồ thị, nếu công việc i phải được thực hiện trước công đoạn j thì trên đồ thị có cung (i, j), trọng số trên cung này được gán bằng t[i]. Thêm vào đồ 2 đỉnh 0 và n +1 tương ứng với hai sự kiện đặc biệt: đỉnh số 0 tương ứng với công đoạn Lễ khởi công, nó phải được thực thực hiện trước tất cả các công đoạn khác, và đỉnh n+1 tương ứng với công đoạn Cắt băng khánh thành công trình, nó phải thực hiện sau tất cả các công đoạn, với t[0] = t[n+1] = 0 (trên thực tế chỉ cần nối đỉnh 0 với tất cả đỉnh có bán bậc vào bằng 0 và nối tất cả các đỉnh có bán bậc ra bằng 0 với đỉnh n+1). Gọi đồ thị thu được là G. Rõ ràng bài tốn đặt ra vấn đề bài tốn tìm đường đi dài nhất từ đỉnh 0 đến tất cả các đỉnh còn lại trên đồ thị G. Do đồ thị G rõ ràng không chứa chu trình, nên để giả bài tốn đặt ra có thể áp dụng các thuật tốn được nêu ở trên. 1. Thí dụ: Ta có bảng các hạng mục được cho trong bảng dưới đây. Hạng mục t[i] Hạng mục phải hồn thành trước 1 2 3 4 5 6 7 8 10 15 10 30 1 2 15 20 10 1 2,3 4 2,3 5,6 5 1 1 : 0 0 1 2 : 10 0 3 : 0 0 1 2 4 : 25 0 1 2 4 5 : 55 0 3 6 : 10 0 1 2 4 5 : 55 Đưa về bài tốn đồ thị có hướng, các đỉnh là các hạng mục như hình sau: 1 (10) 2 5 (12) 8 (0) (10) 0 (15) (30) (12) 9 (0) (10) (15) (15) (20) 3 4 6 7 10 (10) Cách giải quyết: Trang 1 * Thêm hai đỉnh 0 và đỉnh 9 ta thu được một đồ thị có hướng trong đó trọng số t[i] là cạnh xuất phát từ i * Tìm đường đi dài nhất thì - Đổi dấu trọng số - Tìm đường đi ngắn nhất xuất phát từ 0 Lặp V H 1 2 3 4 5 6 7 8 9 Ktạo 0 0,0 0,∞ 0,0 0, ∞ 0, ∞ 0, ∞ 0, ∞ 0, ∞ 0, ∞ 1 * 1,-10 0,0 0, ∞ 0, ∞ 0, ∞ 0, ∞ 0, ∞ 0, ∞ 2 * 0,0 2,-25 0, ∞ 2,-25 0, ∞ 0, ∞ 0, ∞ 3 * 2,-25 0, ∞ 2,-25 0, ∞ 0, ∞ 0, ∞ 4 * 4,-25 2,-25 0, ∞ 0, ∞ 0, ∞ 5 * 2,-25 5,-67 5,-67 0, ∞ 6 * 5,-67 5,-67 0, ∞ 7 * 5,-67 7,-87 8 * 7,-87 9 * Chương trình sử dụng thuật tốn Dijkstra để tình thời gian các công việc bắt đầu và kết thúc dự án. Chương trình thi công công trình không sử dụng trực tiếp thuật tốn này mà còn phụ thuộc vào các công việc làm đầu tiên, vì vậy công việc đầu tiên là ta phải xác định công việc nào là công việc đầu tiên, việc xác định công việc đầu tiên cũng rất đơn giản, khi ta nhập số liệu thì công việc đầu tiên thì không có công việc nào làm trước nó. Để giải bài tốn trên ta có thể dùng nhiều phương pháp. Nhưng trong đề tài này chúng tôi sử dụng thuật tốn Dijkstra. II. Thuật tốn Dijkstra. Thuật tốn Dijkstra được phát biểu như sau: Trong trường hợp trọng số trên các cung là không âm do Dijkstra đề nghị để giải bài tốn tìm đường đi ngắn nhất từ dỉnh s đến các đỉnh còn lại của đồ thị . Thuật tốn được xây dựng trên cơ sở gán cho các đỉnh các nhãn tạm thời. Nhãn của mỗi đỉnh cho biết cận trên của độ dài đường đi ngắn nhất từ s đến nó. Các nhãn này sẽ được biến đổi theo một thủ tục lặp, mà ở mỗi bước lặp có một nhãn tạm thời trở thành nhãn cố định. Nếu nhãn của một đỉnh nào đó trở thành cố định thì nó sẽ cho ta không phải là cận trên mà là độ dài đường đi ngắn nhất từ đỉnh s đến nó. Thuật tốn được mô tả như sau. Procedure Dijkstra; (* Đầu vào: Đồ thị có hướng G=(V, E) với n đỉnh s ∈ V là đỉnh xuất phát a[u, v], u, v ∈ V, ma trận trọng số Giả thiết: a[u, v] >= 0, u, v ∈ V Đầu ra: khoảng cách từ d(s) đến tất cả các đỉnh còn lại d[v], v ∈ V Truoc [v], v ∈ V, ghi nhận đỉnh trước v trong đường đi ngắn nhất từ s đến v *) Begin (* Khởi tạo *) Trang 2 for v ∈ V do Begin d[v] := a[s, v]; Truoc[v] := s; End; d[s] := 0; T := V \ {s} (*Tập các đỉnh có nhãn tạp thời *) (* Bước lặp*) while T <> 0 do Begin Tìm đỉnh u ∈ T thỏa mãn d[u] = min { d[z]: z ∈ T} T := T \ {u}; (*Cố định nhãn của đỉnh u*) For v ∈ T do (*Gán nhãn lại cho các đỉnh trong T*) If d[v] > d[u] + a[u, v] then Begin D[v] := d[u] + a[u, v] Truoc [v] := u; End; End; End; Định lý 1: Thuật tốn Dijkstra tìm được đường đi ngắn nhất trên đồ thị sau thời gian cớ O(n 2 ). Chứng minh: Trước hết ta chứng minh là thuật tốn tìm đường đi ngắn nhất từ đỉnh s đến các đỉnh còn lại của đồ thị. Giả sử rằng ở một bước lặp nào đó các nhãn cố định cho ta độ dài các đường đi từ s đến các đỉnh có nhãn cố định, ta sẽ chứng minh rằng ở lần lặp tiếp theo nếu đỉnh u * thu được nhãn cố định d(u * ) chính là độ dài đường đi ngắn nhất từ s đến u * . Ký hiệu S: là tập hợp có nhãn cố định còn S 2 là tập các đỉnh có nhãn tạm thời ở bước lặp đang xét. Kết thúc mỗi bước lặp nhãn tạm thời d(v) cho ta độ dài của đường đi ngắn nhất từ s đến v chỉ qua những đỉnh nằm hồn tồn trong tập S 1 . Giả sử rằng đường đi ngắn nhất từ s đến u * không nằm trong tập S 1 , tức là nó đi qua ít nhất một đỉnh của tập S 2 . Gọi z ∈ S 2 là đỉnh đầu tiên như vậy trên đường đi này . Do trọng số trên các cung là không âm, nên đoạn đường từ z đến u * có độ dài L > 0 và d(z) < d(u * ) – L < d(u * ). Bất đẳng thức này là mâu thuẫn với cách xác định u * là đỉnh có nhãn tạm thời nhỏ nhất. Vậy đường đi ngắn nhất từ đỉnh s đến u * phải nằm chọn trong S 1 , và vì thế d[u * ] là độ dài của nó. Do ở lầm lặp đầu tiên S 1 = {s} và sau mỗi lần lặp ta chỉ thêm vào S 1 một đỉnh u * nên giả thiết là d(v) cho độ dài đường đi ngắn nhất từ s đến v với mọi v ∈ S 1 là đúng với bước lặp đầu tiên. Theo qui nạp suy ra thuật tốn cho đường đi ngắn nhất từ s đến mọi đỉnh của đồ thị. Bây giờ ta đánh giá số phép tốn cần thực hiện theo thuật tốn. Ở mỗi bước lặp để tìm ra đỉnh u cần thực hiện O(n) phép tốn, và để gán nhãn lại cũng phải thực hiện một số lượng phép tốn cũng la O(n). Thuật tốn phải thực hiện n- 1 bước lặp. Vậy thời gian tính tốn của thuật tốn là cỡ O(n 2 ). Thí dụ: Tìm đường đi ngắn nhất từ đỉnh 1 đến các đỉnh còn lại của đồ thị ở hình dưới: (7) Trang 3 (1) Số phần tử:= số đỉnh -1;i:=1; i < đnguồn Tập đỉnh[i]:=i;Đđ-đến[i]:=kc[đnguồn, i];Đđ- trực tiếp đến[i]:=đnguồn;i:=i+1; i:=đnguồn +1 i số đỉnh Tập đỉnh[i]:=i;Đđ-đến[i]:=kc[đnguồn, i];Đđ- trực tiếp đến[i]:=đỉnh nguồn;i:=i+1; Bắt Đầu N Y N Y (1) (3) (4)(2) j số đỉnh -2 Min:= đđ-đến[đỉnh[1]];Vị trí :=1; i k Đđ-đến[đỉnh[i]] <min; Min:= đđ-đến[đỉnh[i]];Vị trí :=i; i:=i+1 Đỉnh xét:=đỉnh[vị trí];Đỉnh[vị trí]:=đỉnh[spt];Spt:=spt-1;i:=1 i spt Y N Y N Y N Y N (4)(2) X:=đỉnh[i] (3) Đđ-đến[x] > Đđ-đến[đỉnh xét]+ kc[đỉnh xét,x]; Đđ-đến[x]:=Đđ-đến[đỉnh xét + kc[đỉnh xét,x]];i:=i+1; Kết Thúc Y N 2 3 6 (5) (1) (1) (2) (1) (1) (4) 1 (2) 4 (3) 5 Minh họa thuật tốn Dijkstra Kết quả tính tốn được trình bày trong bảng dưới đây. Bước lặp Đỉnh 1 Đỉnh 2 Đỉnh 3 Đỉnh 4 Đỉnh 5 Đỉnh 6 Khởi tạo 0, 1 1, 1* ∞, 1 ∞, 1 ∞, 1 ∞, 1 1 - - 6, 2 3, 2* ∞, 1 8, 2 2 - - 4, 4* - 7, 4 8, 2 3 - - - - 7, 4 5, 3 4 - - - - 6, 6 * - 5 - - - - - - Chú ý: 1) Nếu chỉ cần tìm đường đi ngắn nhất từ s đến t nào đó thì có thể kết thúc thuật tốn khi đỉnh t trở thành đỉnh có nhãn cố định. * Sơ đồ thuật tốn Dijkstra. III. Giải quyết bài tốn. Sau khi đưa bài tốn về dạng đồ thị có hướng, với mỗi đỉnh là một hạng mục ta có thể tiến hành như sau: - Chuyển thành ma trận trọng số có dạng a(i, j), với hạng mục i phải được thi công trước hạng mục j, giá trị của a(i, j) cho biết thời gian hạng mục i làm xong. - Đổi dấu giá trị của ma trận: ví dụ a(i, j) = -a(i, j) - Aùp dụng thuật tốn Dijkstra. - Kết thúc thuật tốn ta thu được d[u] . - Đổi dấu giá trị d[u] vừa thu được: d[v] = -d[u] Trang 4 - Giá trị d[v] chính là đường đi dài nhất từ 0 đến đỉnh v, khi đó d[v] cho ta thời điểm sớm nhất có thể bắt đầu thực hiện công đoạn v, nói riêng d[n+1] là thời điểm sớm nhất có thể cắt băng khánh thành tồn bộ công trình. Tương tự như trên ví dụ trên khi kết thúc tồn bộ dự án, kết quả thu được như sau: Giả sử lễ khởi công dự án là 1-1-2003 Thì sau 87 ngày (Giả sử đơn vị tính là ngày) ta có thể cắt băng khánh thành tồn bộ dự án. IV. Điều khiển nhân lực Các hoạt động không găng được phép xê dịch nhất định, nhất là khi FF ij = TF ij . Có thể sắp đặt chúng đáp ứng các yêu cầu khác nữa. Ngồi thời gian ra, chẳng hạn nhân lực, nguyên liệu, chi phí …Về mặt tốn học xử lý yêu cầu loại nào cũng vậy. Ở đây ta nói theo ngôn ngữ nhân lực chẳng hạn. Thí Dụ III.1. Giả sử nhân lực cho các hoạt động của dự án ở Thí Dụ II.2 đòi hỏi như sau: Hoạt động Số nhân công Hoạt động số nhân công (1, 2) 0 (4, 6) 2 (1, 3) 5 (4, 7) 1 (2, 4) 0 (5, 6) 2 (3, 4) 7 (5, 7) 5 (3, 5) 3 (6, 7) 6 Chú ý rằng tại thời điểm hai hoạt động cùng tiến hành thì số nhân lực cần là tổng hai số công nhân. Vì vậy cần phải sắp xếp khéo các hoạt động không găng để đòi hỏi tổng nhân công của cả dự án ít (tạm coi là mỗi người biết làm mọi việc). Việc sắp xếp tối ưu là phức tạp, đến nay ta sử dụng biểu đồ thời gian biểu diễn thêm nhân lực để sắp xếp theo trực quan. H.1.6 (a) biểu diễn tổng công nhân cần ở mỗi thời điểm nếu tất cả các hoạt động không găng xếp vào lúc sớm nhất có thể, còn H.1.6 (b) là tương ứng khi xếp vào lúc muộn nhất có thể. Hai biểu đồ này nên vẽ thẳng dưới H.1.5 nữa. Sắp đặt sớm nhất ở hình (a) cho thấy ở mỗi thời điểm dự án cần nhiều nhất là 10 công nhân còn ở sắp đặt muộn nhất (b) là 12 công nhân. Ở hai phương án này, số công nhân cần ở các thời điểm không đều. Theo trực quan ta chỉnh lại từ (a) như sau: chuyển hoạt động (4, 6) đếân thời điểm muộn nhất có thể, chuyển (4, 7) đến ngay sau khi (5, 7) kết thúc. Kết quả được vẽ lại ở biểu đồ H.1.7. (chú ý là hoạt động (1, 2) và (2, 4) không cần công nhân nên không cần vẽ.). Trang 5 Chương IV GIỚI THIỆU NGÔN NGỮ LẬP TRÌNH Visual Basic là một ngôn ngữ lập trình khá phổ biến hiện nay, nó là một công cụ rất tiện lợi cho hầu hết các chương trình ứng dụng, các chương trình sử lý theo yêu cầu của người dùng. Điều đặc biệt của ngôn ngữ Visual Basic đó là nó dùng ngay giao diện người dùng đồ họa , hay GUI (Graphical User Interface). Điều đặc biệt, Visual Basic cho phép bổ xung các menu, hộp văn bản, nút lệnh, nút tùy chọn (cho các lựa chọn loại trừ), các hộp kiểm tra (cho các lựa chọn không loại trừ), các hộp danh sách, thanh cuốn, các hộp tập tin và thư mục cho các cửa sổ trống. Bạn có thể dùng các lưới (Grid) để quản lý dữ liệu theo bảng. Bạn có thể truyền thông với các ứng dụng Windows khác, và có thể là quan trọng nhất, bạn sẽ có một phương pháp dễ dàng để người dùng điều kiểm và truy cập các cơ sở dữ liệu. (Những thành phần đó đượcVisual basic gọi là Điều Kiểm (control)). Có thể có nhiều cửa sổ trên màn hình. Các cửa sổ này có tồn quền truy cập clipboard và các thông tin trong hầu hết các ứng dụng Windows khác chạy cùng lúc. Bạn có thể dùng Visual Basic để truyền thông với các ứng dụng khác đang chạy dưới Windows. Dùng phiên bản hiện đại nhất của công nghệ COM/OLE trong Windows. Phương thức lập trình của Visual Basic là thiết kế trước, viết lệnh sau. Vì vậy môi trường làm việc không phức tạp như các ngôn ngữ lập trình khác. Chúng bao gồm các đối tượng. I. Cửa sổ thuộc tính. 1. Một số thuộc tính của đối tượng Form. Thuộc tính Thể hiện với giá trị xác lập Name Dùng để đặt tên cho Form, tên này sẽ được dùng cho thủ tục mà bạn viết mã. Appearance Quy định cách thể hiện của Form 1 Flat (Form phẳng) 2 3D (Form nổi) Backcolor Chọn màu nền của Form Bordestyle Quy định kiểu khung của Form Caption Quy định tiêu đề của Form Controlbox Nếu đặt là true thì cửa sổ có Controlmenubox. Nếu đặt là False thì cửa sổ không có Controlmenubox. Icon Dùng Icon có biểu tượngnhư thế nào khi bạn click nút minimize Max buttion Nếu đặt là true thì cửa sổ có nút Maximize Nếu đặt là false thì cửa sổ không có nút Maximize Min buttion Nếu đặt là true thì cửa sổ có nút Minimize Nếu đặt là false thì cửa sổ không có nút Miniimize Moveable Nếu đặt là true thì có thể nhấn Mouse vào tiêu đề và kéo đi nơi khác, nếu False thì không kéo đi được Showintaskbar True: cửa sổ này hiện lên tên của nó cũng thể hiện trong taskbar của Ưindớ, nếu False thì không. Trang 6 Visiable True: Thấy Form False: ẩn Form Windowstate Quy định kích thước Form 1 Bình thường 2 Cực tiểu 3 Cực đại 2. Một số thuộc tính của cửa sổ Lable Thuộc tính Thể hiện với giá trị xác lập Name Tên của lable Alignment Canh nội dung của lable 1 Canh trái 2 Canh phải 3 Canh giữa Autosize Bạn chon true nó tự động co giãn cho vừa nội dung của nó Chọn false thì bạn tự điều chỉnh cho vừa Backcolor Quy định màu nền cho lable Caption Ghi chữ trên lable Font Chọn kiểu chữ cho lable Fontcolor Quy định màu chữ trên lable 3. Một số thuộc tính của đối tượng Textbox. Thuộc tính Thể hiện với giá trị xác lập Name Đặt tên cho Textbox Alignment Canh nội dung của textbox 1 Canh trái 2 Canh phải 3 Canh giữa Appearance Quy định cách thể hiện của Textbox 1 flat bình thường 2 3D 3 chiều Backcolor Quy định màu nền cho Textbox Font Chọn kiểu chữ cho textbox Forecolor Quy định màu chữ trên textbox Maxlength Quy định số ký tự tối đa nhập vào textbox Multiline True: có thể xuồng hàng khi chiều ngang không đủ False: không xuống hàng Scrollbar Dùng để xác lập hộp textbox không có thanh cuốn dọc, ngang hặc cả hai với điều kiện thuộc tính Mulltiline = true Text Bạn hãy xóa chữ và để trống Visible Quy định text có được nhìn thấy trên form hay không True: nhìn thấy, False: không nhìn thấy Trang 7 4. Thuộc tính của đối tượng Commandbox Thuộc tính Thể hiện với giá trị xác lập Name Đặt tên cho đối tượng Commandbox Caption Làm tiêu đề cho nút Font Chọn font cho nút Visible True: nút nhìn thấy False: nút không nhìn thấy 5. Thuộc tính đối tượng Checkbox. Thuộc tính Thể hiện với giá trị xác lập Name Đặt tên cho checkbox Alignment Canh nội dung của checkbox Appearance Quy định cách thể hiện của Checkbox Backcolor Quy định màu nền cho checkbox Font Chọn kiểu chữ cho checkbox Caption Dòng tiêu đề cho checkbox Forecolor Quy định màu chữ cho checkbox Value 0: Không chọn 1: trạng thái chọn 2: Trạng thái xám Visible True: Không nhìn thấy False: nhìn thấy 6. Thuộc tính hay dùng của đồi tượng picturebox Thuộc tính Thể hiện với giá trị xác lập Name Tên cho đối tượng picturebox Autosize True: tự động đặt lại kích thước của đối tượng cho vừa với kích thước của hình đã được đặt vào False: nếu hình đặt vào lớn hơn kích thước thì hình này sẽ bị che khuất Picture Dùng để lưu trứ bức hình bạn muốn trình bày Align Dùng để quy định cách bố trí đặc biệt của picture trên form Autoredraw Hình sẽ không bị xóa đi khi bạn thu nhỏ hay phóng to kích thước Fillcolor Quy định màu tô cho các phương thức đồ họa Fillstyle Quy định dạng màu tô Drawstyle Quy định đường nét vẽ Drawith Quy định độ dày nét vẽ 7. Một số thuộc tính hay dùng của đối tượng Image. Thuộc tính Thể hiện với giá trị xác lập Name Đặt tên cho đối tượng Image Picture Tương tự như thuộc tính picture của đói tượng picturebox Trang 8 Borderstyle Quy định kiểu khung có (1) hoặc không có khung(0) Stretch True: hình sẽ tự động co giãn sao cho vừa vặên trong đối tượng False: đối tượng sẽ tự điruf chỉnh cho vừa với hình 8. Một số thuộc tính hay dùng của đối tượng Listbox. Thuộc tính Thể hiện với giá trị xác lập Name Đặt tên cho đối tượng Listbox Colums Dùng để thể hiện listbox có bao nhiêu cột, mặc nhiên là 1 Integranlhieght True: Listbox sẽ tự điều chỉnh kích thước sao cho không có mục nào bị che khuất nửa chừng False: thì sẽ chính xác như khi bạn thiết kế Listcount Xác địgh danh sách có bao nhiêu mục, bạn chỉ có thể đọc chứ không đặt lại giá trị List Quy định một danh sách cho Listbox Multiselect Quy định mỗi lần chỉ có thể chọn một hay nhiều mục Listindex Mục đang có focut trong danh sách là mục thứ bao nhiêu Selcount Cho biết hiện đang có bao nhiêu mục được chọn trong danh sách Sorted True: Sắp xếp danh sách theo thứ tự False: sắp xếp như trình tự bạn đưa vào 9. Một số thuộc tính hay dùng của đối tượng Combobox Thuộc tính Thể hiện với giá trị xác lập Name Đặt tên cho đối tượng combobox Style Quy định kiểu cho combobox Sorted True: Sắp xếp theo thứ tự Alphabet False: sắp xếp như trình tự bạn đưa vào 10. Một số thuộc tính hay dùng của đối tượng Timer Thuộc tính Thể hiện với giá trị xác lập Name Đặt tên cho đối tượng Timer Enable True: cho phép phát ra sự kiện thời gian False: ngược lại Interval Là gí trị số dùng để quy định bao nhiêu lâu thì phát ra sự kiện thời gian. Đơn vị tính là miligiây. Nếu đặt là 0 thì đối tượng timer không hoạt động 11. Một số thuộc tính hay dùng của đối tượng frame Thuộc tính Thể hiện với giá trị xác lập Name Đặt tên cho đối tượng frame Caption Nội dung của tiêu đề frame 12. Một số thuộc tính hay dùng của đối tượng Button Thuộc tính Thể hiện với giá trị xác lập Name Đặt tên cho đối tượng option button Trang 9 Alignment Quy định vị trí nút chọn 0: nút chọn nằm bên trái tiêu đề 1: nút chọn nằm bên phải tiêu đề Caption Tiêu đề của option button Font Chọn font chữ cho tiêu đề Value Nếu giá trị này bằng true thì option này đang được chọn, ngược lại thì nó đang ở vị tró không được chọn 13. Một số thuộc tính hay dùng của đối tượng line Thuộc tính Thể hiện với giá trị xác lập Name Đặt tên cho đối tượng line Bordercolor Quy định màu cho đường thẳng Borderwith Quy định độ dày của đường thẳng Borderstyle Quy định kiểu đường thẳng có giá trị từ 0 đến 7 X1, X2, X3, X4 Xác định tọa độ của đường thẳng trên form Drawmode Quy định mode để vẽ đường 14. Một số thuộc tính hay dùng của đối tượng Shape Thuộc tính Thể hiện với giá trị xác lập Name Đặt tên cho đối tượng shape Shape Quy định một số hình dáng 0: Hình chữ nhật 1: Hình vuông 2: hình ellipse 3: Hình tròn 4: Hình chữ nhật tròn góc 5: Hình vuông tròn góc Fillstyle Quy định các kiểu vẽ có giá trị từ 0 đến 7 Fillcolor Quy định màu tô bên trong của hình Borderstyle Quy định kiểu kiểu đường viền của hình Borderwith Quy định độ dày nét của hình Berdercolor Quy định màu đường viền Backstyle Quy định màu nền của hình Backcolor Quy định màu của phần nền khi backstyle là Opque II. Biến, Kiểu biến và cách khai báo 1. Biến Tương tự như các ngôn ngữ lập trình khác, biến là một yếu tố không thể thiếu, biến như là một phần của bộ nhớ, muốn dử dụng ta phải khai báo. Tên biến không dài quá 255 ký tự, có tính gợi nhớ, không dùng các ký hiệu, tránh dùng các từ khóa của VB 2. Kiểu của biến Khi khai báo biến ta phải khai bóa kiểu cho nó. Trong VB, người ta dùng một loại tiếp ngữ như $, &, #, @, … để biết biến đó có kiểu là gì, cụ thể như sau: Trang 10 [...]... của chương trình khi chương trình chạy, nó có tác dụng cập nhật những tên hạng mục mới cho chương trình của chúng ta II Giới thi u chương trình Chương trình bao gồm hai công việc chính đó là: Lập lịch thi công công trình và Điều khiển nhân lực 1 Lập lịch thi công công trình Chương trình được tổ chức dưới một Menu chính có dạng như sau Menu chính của chương trình này liên kết với mọi Form của chương trình, ... Picturebox Trang 18 Chương 5 CÀI ĐẶT BÀI TỐN I Phân tích bài tốn 1 Các chức năng chính của bài tốn Chương trình gồm các chức năng sau: - Áp dụng phương pháp PERT-PCM vào để giải quyết bài tốn lập lịch thi công công trình, công việc này nhằm lập ra một lịch thi công các công trình trong một dự án sao cho thời gian hồn thành dự án là tối ưu nhất về thời gian, chúng ta chỉ cần nhìn vào lịch lập ra là đã đièu... biết bằng dấu # ở cuối Khoảng giá trị từ –1,7976 931 34486 231 E308 đến – 44,94065645841247E -32 4, giá trị dương từ 44,94065645841247E -32 4 đến 1,7976 931 34486 231 E308 Ví dụ: D# = 6. 432 - Currency: Có 15 số nằm bên trái dấu phảy, 4 số nằm bên trái dấu phảy Nhập biết bằng dấu @ ở cuối Khoảng giá trị từ – 92 233 72 036 85477,5808 đến 92 233 72 036 85477,5807 Ví dụ: e@ = 5.1 234 - Date: Lưu rtữ thông tin về thời gian Nhận... Khi lập trình ta thường gặp những đoạn chương trình hay lập đi lập lại nhiều lần ở những chỗ khác nhau Để chương trình đỡ phức tạp, các đoạn này được thay thế bằng các chương trình con tương ứng, khi cần ta chỉ cần gọi nó ra mà không cần pahỉ viết lại cả đoạn Trang 13 Mặt khác, đối với một số chương trình lớn và phức tạp Việc xem xét tổng quan cũng như việc gỡ rối, hiệu chỉnh sẽ rất khó khăn Việc lập. .. khỏi chương trình nó sẽ nhắc nhở chúng ta là có lưu dữ liệu hay không + Nếu bạn click vào yes thì một cửa sổ ghi File lại hiện ra yêu cầu bạn ghi tên file và Click vào nút Save 2 Điều khiển nhân lực Cũng tương tự như lập lịch thi công công trình ở đây chương trình cũng bao gồm các công đoạn tương tự như trên Khi kết thúc chương trình sẽ cho ta một bảng trong đó đưa ra một danh sách bao gồm số công. .. một bảng trong đó đưa ra một danh sách bao gồm số công nhân cần có cho mỗi công việc III Chương trình nguồn Trong chương trình này bao gồm rất nhiều hàm và thủ tục ở đây chỉ xin đưa ra một thủ tục quan trọng đó là một thủ tục chính trong chương trình, thủ tục này trong phần lập lịch thi công trình đó là thuật tốn Dijsktra, thuật tốn được viết như sau Public Sub Dijkstra() Dim v, u, minp As Long S=0 For... liệu để chương trình tính tốn lại cho bạn, lúc này lịch thi công lại có một lịch mới, khác hẳn lịch ban đầu nếu như bạn đã thêm vào hoặc bỏ đi một số hạng mục không cần thi công - Nếu như bạn nhập dữ liệu mới hay mở một file đã lưu trong đĩa mà bạn đã sửa đổi dữ liệu ở bên trong thì bạn lên lưu dữ liệu vào một File thì việc nhập dữ liệu Trang 23 hay sửa đổi dữ liệu mới có tác dụng Ơû đây chương trình. .. - Tốn tử *: Dùng để nhân hai số hạng - Tốn tử \: Chia hai số lấy phần nguyên - Tốn tử / : Chia hai số lấy giá trị thực - Mod: Chia lấy phần dư - Tốn tử +: Cộng hai tốn hạng - Tốn tử -: Trừ hai tốn hạng 2 Thứ tự ưu tiên các phép tốn Phép tính lũy thừa Đổi một số thành số âm Nhân và chia Chia số nguyên Chia lấy số dư Trang 11 Cộn g và trừ 3 Tốn tử gán a=b 4 Tốn tử quan hệ Ký hiệu = < >= 5 Tốn. .. Tiếp theo, nếu bạn muốn xem lịch thi công các hạng mục trong dự án như thế nào bạn có thể Click vào biểu tượng Design trên Toolbar hoặc Design trên thanh Menu để bạn có thể xem chi tiết lịch thi công các hạng mục trong dự án Form có dạng như sau: + Ở đây có 4 cột Cột thứ nhất ghi thứ tự các hạng mục được thi công, cột thứ hai cho biết tên hạng mục cần thi công, cột thứ 3 cho biết số lượng thời gian... ra là đã đièu khiển được dự án của chúng ta - Điều khiển nhân lực khi thi công các công trình, công việc này giúp chúng ta điều khiển lượng nhân công hiện có 2 Cấu trúc dữ liệu của bài tốn Dữ liệu của bài tốn được lưu trữ dưới dạng một bảng ghi có cấu trúc như sau: Type LuuTru DinhDau As Long DinhCuoi As Long GiaTri As Long NgayThiHanh As Date Ten As String * 50 End Type Trong đó DinhDau lưu trữ số . CHƯƠNG 3 BÀI TỐN LẬP LỊCH THI CÔNG CÔNG TRÌNH I. Bài tốn. Việc thi công một công trình lớn được chia ra làm n công đoạn, đánh số từ. pháp PERT-PCM vào để giải quyết bài tốn lập lịch thi công công trình, công việc này nhằm lập ra một lịch thi công các công trình trong một dự án sao cho

Ngày đăng: 07/10/2013, 07:20

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan