Advertisement
KingDothraki

Ej. 15,16,17,18

Apr 6th, 2020
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.80 KB | None | 0 0
  1. 15. Cual es la condición del siguiente ciclo? .Cuando finaliza el ciclo? (Pila1, Pila2, y Descarte son pilas):
  2.  
  3.     while (!pilavacia(&Pila1)) //Condicion: !pilavacia(&Pila1) El ciclo se sigue ejecutando mientras Pila1 no este vacia.
  4.     {
  5.         apilar (&Pila2, desapilar(&Descarte))
  6.     }
  7.  
  8.     //El ciclo se sigue ejecutando mientras Pila1 no este vacia.
  9.  
  10. 16. Qué realiza el siguiente código escrito en lenguaje C (Pila1, Aux y Result son pilas):
  11.     while (!pilavacia(&Pila1))
  12.     {
  13.         if (tope(&Pila1) == 5)
  14.         {
  15.             apilar (&Aux, desapilar(&Pila1));
  16.             apilar (&Result, desapilar(&Aux));
  17.         }
  18.     }
  19.     /*El codigo analiza si el elemento tope de Pila1 es igual a 5.
  20.       Si lo es lo desapila y lo envia a Aux y luego a Result, desapilandolo de Aux tambien.
  21.       Si el tope deja de ser 5 el ciclo se repite infinitamente.*/
  22.  
  23. 17. Para el ejercicio “Cargar por teclado una pila ORIGEN y pasar a la pila DISTINTO todos aquellos elementos que preceden al valor 5
  24. (elementos entre el tope y el valor 5). No se asegura que exista algún valor 5, se realizo el siguiente programa:
  25. // este programa carga por teclado una pila Origen y pasa a la pila Destino todos aquellos elementos que preceden el valor 5
  26. int main()
  27. {
  28.    Pila Origen, Distinto;
  29.    inicpila(&Origen);
  30.    inicpila(&Distinto);
  31.    leer(&Origen);
  32.    if (!pilaVacia(&Origen))
  33.     {
  34.       while (tope(&Origen) != 5)
  35.       {
  36.          apilar (&Distinto, desapilar(&Origen));
  37.       }
  38.    }
  39. }
  40. a. .Resuelve el problema planteado?// No.
  41. b. .Cuales son los errores que encuentra?/*Solo carga un elemento en Origem, la funcion Pilavacia esta mal escrita,
  42. Si la pila se vacia en el while, no lo controla*/
  43. c. Reescribir el código para que resuelva adecuadamente el problema planteado.
  44. void main()
  45. {
  46.    Pila Origen, Distinto;
  47.    inicpila(&Origen);
  48.    inicpila(&Distinto);
  49.    do /*Cargo pila dada*/
  50.     {
  51.         leer(&Origen);
  52.         printf("Si desea ingresar otro elemento ingrese 's'\n");
  53.         fflush(stdin);
  54.         scanf("%c",&ctrl);
  55.     }
  56.     while(ctrl=='s');
  57.    while (!pilaVacia(&Origen)&& (tope(&Origen)!=5))
  58.     {
  59.          apilar (&Distinto, desapilar(&Origen));
  60.     }
  61.     mostrar(&Origen); mostrar(&Distinto)//Control.
  62. }
  63. d. Indicar las componentes del programa.//Inicializacion de pila Origen, Procesamiento de pilas, Muestra de Pilas
  64.  
  65.  
  66. 18. Dado el siguiente ciclo (Pila1, Pila2 y Descarte son pilas):
  67. while ( (!pilaVacia(&Pila1)) && (!pilaVacia(&Pila2)) )
  68. {
  69.       apilar (&Descarte, desapilar(&Pila1));
  70.       apilar (&Descarte, desapilar(&Pila2))
  71. }
  72.  
  73. a. .Cual es la condición del ciclo? Explique con sus palabras//Que ninguna de las dos pilas esten vacias.
  74. b. .Cuales son los posibles estados de ambas pilas al finalizar el ciclo? //Pueden estar ambas vacias o una vacia y la otra no.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement