Banker's algorithm: Difference between revisions

Banker's algorithm en FreeBASIC
(Banker's algorithm en FreeBASIC)
Line 197:
The process is in safe state.
Available vector: 8 5 9 7</pre>
 
 
=={{header|FreeBASIC}}==
{{trans|Kotlin}}
<lang freebasic>
Dim As Integer i, j, r, p
Input "Ingrese la cantidad de recursos: ", r
Input "Ingrese la cantidad de procesos: ", p
 
Print !"\nIngrese los recursos m ximos: ";
Dim As Integer maxRes(r)
For i = 1 To r
Input ; " ", maxRes(i)
Next i
 
Print !"\n\n-- recursos asignados para cada proceso --"
Dim As Integer curr(p, r)
For i = 1 To p
Print "proceso"; i; ":";
For j = 1 To r
Input ; " ", curr(i, j)
Next j
Print
Next i
 
Print !"\n\n--- recursos m ximos para cada proceso ---"
Dim As Integer maxReclam(p, r)
For i = 1 To p
Print "proceso"; i; ":";
For j = 1 To r
Input ; " ", maxReclam(i, j)
Next j
Print
Next i
 
Print !"\nRecursos totales asignados : ";
Dim As Integer recAsigad(r)
For i = 1 To p
For j = 1 To r
recAsigad(j) += curr(i, j)
Next j
Next i
For i = 1 To r
Print recAsigad(i); " ";
Next i
 
Dim As Integer recDispon(r)
Print !"\n\nRecursos totales disponibles: ";
For i = 1 To r
recDispon(i) = maxRes(i) - recAsigad(i)
Print recDispon(i); " ";
Next i
 
Dim As Boolean ejecutando(p)
For i = 1 To p
ejecutando(i) = True
Next i
 
Dim As Integer contar = p
Do While contar <> 0
Dim As Boolean seguro = False
For i = 1 To p
If ejecutando(i) Then
Dim As Boolean ejecuta = True
For j = 1 To r
If (maxReclam(i,j) - curr(i,j) > recDispon(j)) Then
ejecuta = False
Exit For
End If
Next j
If ejecuta Then
Color 11 : Print !"\n\nproceso"; i; !" ejecut ndose."
ejecutando(i) = False
contar -= 1
seguro = True
For j = 0 To r
recDispon(j) += curr(i,j)
Next j
Exit For
End If
End If
Next i
If Not seguro Then
Color 12 : Print !"\nLos procesos est n en un estado inseguro."
Exit Do
End If
Color 10: Print "El proceso est  en un estado seguro."
Color 7: Print "Recursos disponibles: ";
For i = 1 To r
Print recDispon(i); " ";
Next i
Loop
Sleep
</lang>
{{out}}
<pre>
Ingrese la cantidad de recursos: 4
Ingrese la cantidad de procesos: 3
 
Ingrese los recursos máximos: 6 5 7 6
 
-- recursos asignados para cada proceso --
proceso 1: 1 2 2 1
proceso 2: 1 0 3 3
proceso 3: 1 2 1 0
 
 
--- recursos máximos para cada proceso ---
proceso 1: 3 3 2 2
proceso 2: 1 2 3 4
proceso 3: 1 3 5 0
 
Recursos totales asignados : 3 4 6 4
 
Recursos totales disponibles: 3 1 1 2
 
proceso 1 ejecutándose.
El proceso está en un estado seguro.
Recursos disponibles: 4 3 3 3
 
proceso 2 ejecutándose.
El proceso está en un estado seguro.
Recursos disponibles: 5 3 6 6
 
proceso 3 ejecutándose.
El proceso está en un estado seguro.
Recursos disponibles: 6 5 7 6
</pre>
 
 
=={{header|Go}}==
2,130

edits