Featured Replies
Archivado
Este tema está ahora archivado y está cerrado a más respuestas.
A better way to browse. Learn more.
A full-screen app on your home screen with push notifications, badges and more.
Este tema está ahora archivado y está cerrado a más respuestas.
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 iLuego 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 SiPero 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