Imposibilidad de Representar datos en tablas según los algoritmos de ejecucón de procesos
publicado
Hola a todos
En la asignatura de Programación de Servicios y Procesos, me piden representar en unas tablas los tiempos de ejecución de los procesos, los tiempos de espera y el orden de llegada.
Se me ocurrió intentar hacerlo, pero programado en vba. Lamentablmente, me pasa como en mis anteriores proyectos, lo imagino, pero no logro llevarlo a la práctica.
Tengo una matriz, donde meto los datos de los procesos:
Orden de llegada ordenados por número de proceso del 1 al 9 y que identifican cada proceso en una fila diferente.
Tiempo de llegada, que será la celda desde donde se comenzará a ejecutar el proceso, o sea, si llega en 3 milisegundos, empezará a ejecutarse en la tercera celda de la tabla
Tiempo de ejecución, que serán los milisegundos que se estarán ejecutando, representados por una "E", que se escribirá desde la celda de llegada el número de celdas que represente dicho tiempo. O sea, si tiene 3 de tiempo de llegada y 6 de tiempo de ejecución, se escribirán seis "E", desde la celda 3, hasta la celda 9 y en la fila que corresponda el número del proceso
he conseguido hacerlo, si solo fuera un proceso y utilizamos una sola línea. Pero cuando ya intento incluir una línea por proceso e incluyo unos cuántos, me pierdo.
Lo he intentado con varios array, con varios for, con while. Pero no tengo aún los conocimientos que me permiten hacerlo funcionar.
He creado el array de los datos de entrada:
Dim A_Datos(1 To 3, 1 To 9)
Dim i As Integer, j As Integer
For i = 1 To 3
For j = 1 To 9
If ("E" & (j) <> " ") Then
A_Datos(i, j) = Cells(5 + i, 5 + j).Value
End If
Next j
Next i
Luego he creado los array de las tablas donde representaría esos datos:
'Algoritmo FCFS (Primero en llegar, primero en servir
'Los procesos se ejecutan por orden de llegada y el resto se va poniendo a la cola
Dim A_Fifo(1 To 31, 1 To 9)
Dim fi As Integer, fj As Integer
For fi = 1 To 31
For fj = 1 To 9
A_Fifo(fi, fj) = Cells(17 + fi, 2 + fj).Value
Next fj
Next fi
'Algoritmo SJF --> El más corto primero
'Se van ejecutando los procesos con menos tiempo de ejecución.
'Los demás se van poniendo a la cola y ejecutando los más cortos primero
Dim A_Sjf(1 To 31, 1 To 9)
Dim Si As Integer, Sj As Integer
For Si = 1 To 31
For Sj = 1 To 9
A_Sjf(Si, Sj) = Cells(30 + Si, 2 + Sj).Value
Next Sj
Next Si
Pero lamentablemente, no se muy bien, como hacer ahora para que los datos del primer array, se escriban en las tablas de los arrays correspondientes
Hola a todos
En la asignatura de Programación de Servicios y Procesos, me piden representar en unas tablas los tiempos de ejecución de los procesos, los tiempos de espera y el orden de llegada.
Se me ocurrió intentar hacerlo, pero programado en vba. Lamentablmente, me pasa como en mis anteriores proyectos, lo imagino, pero no logro llevarlo a la práctica.
Tengo una matriz, donde meto los datos de los procesos:
Orden de llegada ordenados por número de proceso del 1 al 9 y que identifican cada proceso en una fila diferente.
Tiempo de llegada, que será la celda desde donde se comenzará a ejecutar el proceso, o sea, si llega en 3 milisegundos, empezará a ejecutarse en la tercera celda de la tabla
Tiempo de ejecución, que serán los milisegundos que se estarán ejecutando, representados por una "E", que se escribirá desde la celda de llegada el número de celdas que represente dicho tiempo. O sea, si tiene 3 de tiempo de llegada y 6 de tiempo de ejecución, se escribirán seis "E", desde la celda 3, hasta la celda 9 y en la fila que corresponda el número del proceso
he conseguido hacerlo, si solo fuera un proceso y utilizamos una sola línea. Pero cuando ya intento incluir una línea por proceso e incluyo unos cuántos, me pierdo.
Lo he intentado con varios array, con varios for, con while. Pero no tengo aún los conocimientos que me permiten hacerlo funcionar.
He creado el array de los datos de entrada:
Dim A_Datos(1 To 3, 1 To 9) Dim i As Integer, j As Integer For i = 1 To 3 For j = 1 To 9 If ("E" & (j) <> " ") Then A_Datos(i, j) = Cells(5 + i, 5 + j).Value End If Next j Next i
Luego he creado los array de las tablas donde representaría esos datos:
'Algoritmo FCFS (Primero en llegar, primero en servir 'Los procesos se ejecutan por orden de llegada y el resto se va poniendo a la cola Dim A_Fifo(1 To 31, 1 To 9) Dim fi As Integer, fj As Integer For fi = 1 To 31 For fj = 1 To 9 A_Fifo(fi, fj) = Cells(17 + fi, 2 + fj).Value Next fj Next fi 'Algoritmo SJF --> El más corto primero 'Se van ejecutando los procesos con menos tiempo de ejecución. 'Los demás se van poniendo a la cola y ejecutando los más cortos primero Dim A_Sjf(1 To 31, 1 To 9) Dim Si As Integer, Sj As Integer For Si = 1 To 31 For Sj = 1 To 9 A_Sjf(Si, Sj) = Cells(30 + Si, 2 + Sj).Value Next Sj Next Si
Pero lamentablemente, no se muy bien, como hacer ahora para que los datos del primer array, se escriban en las tablas de los arrays correspondientes
Estoy totalmente perdido
Alguien me podría hechar una mano ?
Muchas gracias
Procesos.xlsm