小弟用vs2008实现的银行家算法(vb),BUG无数,急求高人指正

来源:百度知道 编辑:UC知道 时间:2024/06/30 17:06:28
如题,花费几天时间写的源码,勉强执行,BUG无数,急求高人指正源码:
Option Strict Off
Option Explicit On
Friend Class FORM1

End Class
Inherits System.Windows.Forms.Form
Private Sub Command1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command1.Click
'以下操作定义矩阵
Dim Max(4, 3) As Short
Dim Available(3) As Short
Dim Allocation(4, 3) As Short
Dim Need(4, 3) As Short
Dim Request(4, 3) As Short
'安全性算法所需数据结构
Dim Work(3) As Short
Dim Finish(4) As Boolean
'设置错误入口
keyword="A9E4979A-37FA-4718-9994-97DD76ED70A7"”
Dim iserror_Renamed As Boolean
'定义临时分配向量
Dim temp(4) As Short
'设置正式分配向量
Dim row(4) As Short
'用-1填满ROW
Dim KK As Short
For KK = 0 To 4
row(KK) = -1
Next
'将数值放入矩阵
Dim i As Short
Dim j As Short
For i = 0 To

'银行家算法《3》试分配
3:

temp(0) = h
Dim m As Short 'counter
For m = 0 To 3
Available(m) = Available(m) - Request(h, m)
Allocation(h, m) = Allocation(h, m) + Request(h, m)
Need(h, m) = Need(h, m) - Request(h, m)
Next

'安全性算法《1》

A1:

'安全性算法《2》 找到一个四个资源均满足NEED<=AVAILABLE的进程 outputprocess
Dim c, d, loopcounter As Short
Dim outputprocess As Short
Dim iscorrect(4, 3) As Boolean '判断是否4个资源均满足NEED<=AVAILABLE
Dim canbefound As Boolean
'判断是否可能找到
Dim backcount As Short '为返回查找计数
backcount = 0

A2:

'以下代码用于查找出一个满足题设条件的进程

backcount = backcount + 1
For loopcounter = 0 To 4

For c = 0 To 4
For d = 0 To 3
If Need(c, d) <= Available(d) And Finish(c) = False Then