Вы находитесь на странице: 1из 8

PILAS: 3- Cierto nmero de usuarios, n, envan simultneamente un documento a la impresora comn, la cual debe determinar su orden de impresin.

Las longitudes de los documentos enviados son l1...ln, siendo li la longitud del documento enviado por el usuario i (la numeracin de los usuarios es arbitraria). Suponiendo que el tiempo que se tarda en imprimir un documento es proporcional a su longitud, Escribir el algoritmo (Pseudocdigo) que indique el orden ptimo en que se deben imprimir de manera que se minimice el tiempo medio de espera de cada usuario. El tiempo de espera del usuario i-simo vendr dado por el orden que haya establecido la impresora para su documento. Si su documento es el j-simo en imprimirse, su tiempo de espera ser la suma de los tiempos de impresin de la j primeros documentos segn ese orden (se incluye el suyo en la suma). Los usuarios deben estar enterados del tiempo que les tomar esperar.

PSEUDOCODIGO: Tamao, tope -1, lon, t, k 0 Mensaje: Ingrese el nmero de usuarios: " Mientras (k = 0) { Mensaje: Elija la operacin a realizar:1-Mandar.2-Salir Si (op = 1) { Si (tope >= tamao - 1) { T0 Mensaje:"--- PILA LLENA ---" } Caso contrario { Mensaje: Ingrese el nombre del doc: " Mensaje: Ingrese la long del doc: " Tope tope + 1 Pila [tope] doc Longitud [tope] lon T0 Para (i = 0; i <= tope; i++) { T t + longitud[i] Mensaje: longitud[i] + t + pila[i] " } }

} Si no (op = 2) { Mensaje: Gracias..." K1 } Caso contrario { Mensaje: Opcin incorrecta..." } }

4- Dados los caracteres (), [], {} y una cadena s; s esta balanceada si tiene algunos de estos formatos, s=, (String nulo), s= (T), s= [T], s= {T}, s= TU en donde T y U son cadenas balanceadas (en otras palabras, para cada parntesis, llave o corchete abierto existe un carcter de cierre respectivamente). Ejemplo {(a+b) [(c-d) ^2]}. Escribir el algoritmo que use una pila para ver si es balanceada. PSEUDOCODIGO: Mensaje: Ingrese el tamao de la expresin:" Para (i=0; i<=tamao-1; i++) { Mensaje: Ingrese el dato "+ i+:" Pila[i] dato } P0 C0 L0 Com 0 Para (i=0; i<=tamao-1; i++) { Si (pila[i] = ')) { p++ } Si (pila[i] = '( ') { p-} Si (pila[i] = ']') { c++ } Si (pila[i] = '[') {

c-} Si (pila[i] = '}') { l++ } Si (pila[i] = '{') { l-} Si (pila[i] = '"') { com++ } Si (pila[i] = '"') { com-} } Si (c = 0 && p = 0 && l = 0 && com = 0) { Mensaje: Expresin balanceada... } Caso contrario { Mensaje: "Expresin no balanceada... }

5- Escribir el algoritmo (Pseudocdigo) que maneje tres pilas de DATOS (A, B y C) en un solo arreglo implementado como lista enlazada. Las pilas pueden decrecer o crecer en cada momento, pero el tamao del arreglo no variar. Si una pila necesita ms espacio solo tiene que tomarlo del arreglo que tiene 15 lugares en funcin a su lista de disponibles, si las 3 pilas completan los 15 lugares entonces se manda un mensaje de pila llena. Al ingresar un dato se deber leer adems el nombre de pila donde se desea colocarla. Contemplar la posibilidad de eliminar un dato de cualquier pila, lo que provoca incrementar la lista de disponibles.

PSEUDOCODIGO: Tamao, topea -1, topeb -1, topec -1 , k 0 Mensaje: Ingrese el tamao del arreglo: "

Mientras (k = 0) { Mensaje: Elija la operacin a realizar: 1-Meter.2-Sacar.3-Salir Si (op= 1) { Si (topea >= tamao-1 | topeb >= tamao-1 | topec >= tamao-1) { Mensaje:"-------- PILA LLENA --------" } Caso contrario { Mensaje: Elija la pila a usar: 1-Pila A.2-Pila B.3-Pila C Si (ope = 1) { Mensaje: Ingrese dato:" Si (topec != topeb){ aux2 null Para (i=topeb+1;i<=topec+1;i++){ aux pila[i] Pila[i] aux2 aux2 aux } } Topec topec+1 Si (topeb!= topea) { aux2 null Para (i=topea+1; i<=topeb+1; i++){ aux pila[i] Pila[i] aux2 aux2 aux } } Topeb topeb+1 Topea topea+1 Pila [topea] dato } Sino (ope = 2) { Mensaje: Ingrese dato: Si (topec != topeb){ aux2 null Para (i=topeb+1; i<=topec+1; i++) { aux pila[i] Pila[i] aux2

aux2 aux } } Topec topec+1 Topeb topeb+1 Pila [topeb] dato } Sino (ope = 3) { Mensaje: Ingrese dato:" Topec topec+1 Pila [topec] dato } Caso contrario { Mensaje: Opcin incorrecta... } } } Sino (op = 2) { Si (topea = -1 && topeb = -1 && topec = -1) { Mensaje:"-------- PILA VACIA --------" } Caso contrario { Mensaje: Elija la pila a sacar: 1-Pila A.2-Pila B.3-Pila C" Si (operacin = 1) { Si (topea = -1) { Mensaje:"------- PILA 'A' VACIA -----" } Caso contrario { Pila [topea] null Si (topeb != topea){ Para (i=topea+1;i<=topeb;i++){ Pila [i-1] pila[i] } Pila [topeb] null } Topeb topeb-1 Si (topec!= topeb) { Para (i=topeb+1; i<=topec;i++){ Pila [i-1] pila[i] }

Pila [topec] null } Topec topec-1 Topea topea-1 } } Sino (operacin=2) { Si (topeb =-1) { Mensaje:"------- PILA 'B' VACIA -----" } Caso contrario { Pila [topeb] null Si (topec!= topeb) { Para (i=topeb+1; i<=topec; i++) { Pila [i-1] pila[i] } Pila [topec] null } Topec topec-1 topeb topeb-1 } } Sino (operacin = 3) { Si (topec = -1) { Mensaje:"------- PILA 'C' VACIA -----" } Caso contrario { Pila [topec] null topec topec-1 } } Caso contrario { Mensaje: Opcin incorrecta... } } } Sino (op = 3) { Mensaje: Gracias... K1 } Caso contrario { Mensaje: Opcin incorrecta... }

COLAS: 5- Un estacionamiento de las avionetas de un aerdromo es en lnea, con una capacidad hasta 12 avionetas. Las avionetas llegan por el extremo izquierdo y salen por el extremo derecho. Cuando llega un piloto a recoger su avioneta, so esta no est justamente en el extremo de salida (derecho), todas las avionetas a su derecha han de ser retiradas, sacar la suya y las retiradas colocadas de nuevo en el mismo orden en que estaban. La salida de una avioneta supone que las dems se muevan hacia adelante, de tal forma que los espacios libres del estacionamiento estn por la parte izquierda. Escriba el algoritmo (pseudocdigo) para emular este estacionamiento tiene como entrada un carcter que indica una accin sobre la avioneta, y la matrcula de la avioneta. La accin puede ser, llegada (E) o salida (S) de avioneta. En la llegada puede ocurrir que el estacionamiento este lleno, si es as, la avioneta espera hasta que quede una plaza libre, o hasta que se d la orden de retirada (salida). PSEUDOCODIGO: Tamao 12 fin -1,frente -1,k 0 cont 0, aux,aux2 0 Mientras (k = 0) { Mensaje: Ingrese la operacin que desea hacer: 1-Meter a cola.2-Sacar de cola.3-Salir Si (op = 1) { Si (fin = tamao-1) { Mensaje:"--- COLA LLENA ---" } Caso contrario { Mensaje: Ingrese el nmero de matrcula" Fin fin+1 Cola [fin] matricula Si (frente = -1) { Frente 0 } cont++ } } Si (op = 2) {

Si (cont = 0) { Mensaje:"--- COLA VACIA ---" } Caso contrario { Mensaje: Que nmero de placa quiere retirar?:" Pos -1 Para (i=frente;i<=fin;i++){ Si (cola[i] = placa) { Pos i } } Si (pos = -1) { Mensaje: Avioneta N:"+placa+", no encontrada... } Caso contrario { Matri cola [pos]; Para (i=frente; i<=pos; i++){ Aux cola[i] Cola[i] aux2 aux2 aux } Cola [frente] cola [pos] Frente frente+1 para ( i=frente; i<=fin; i++){ Cola [i-1] cola[i] } Frente frente-1 Fin fin-1 Mensaje:"**Datos del ltimo vuelo: Avioneta N:"+placa cont-} } } Si (op = 3) { K1 } }

Вам также может понравиться