Facebook
From jiji, 3 Years ago, written in C++.
Embed
Download Paste or View Raw
Hits: 65
  1. #include<stdio.h>
  2. #include<conio.h>
  3. #include<stdlib.h>
  4.  
  5. struct EmbalagemBiscoito {
  6.  
  7.         int topo;
  8.         int lote;
  9.     int data;
  10.     int hora;
  11.         float *pElem;
  12.  
  13. };
  14.  
  15. void criarpilha( struct EmbalagemBiscoito *p, int c, int d, int h){
  16.  
  17.     p->data = d;
  18.     p->hora = h;
  19.    p->topo = -1;
  20.    p->lote = c;
  21.    p->pElem = (float*) malloc(c * sizeof(float));
  22.  
  23. }
  24. int estavazia ( struct EmbalagemBiscoito *p ){
  25.  
  26.    if( p-> topo == -1 )
  27.  
  28.       return 1;  
  29.  
  30.    else
  31.  
  32.       return 0;  
  33.  
  34. }
  35.  
  36. int estacheia ( struct EmbalagemBiscoito *p ){
  37.  
  38.         if (p->topo == p->lote - 1)
  39.  
  40.                 return 1;
  41.  
  42.         else
  43.  
  44.                 return 0;
  45.  
  46. }
  47.  
  48. void empilhar ( struct EmbalagemBiscoito *p, float v){
  49.  
  50.         p->topo++;
  51.         p->pElem [p->topo] = v;
  52.  
  53. }
  54.  
  55. float desempilhar ( struct EmbalagemBiscoito *p ){
  56.  
  57.    float aux = p->pElem [p->topo];
  58.    p->topo--;
  59.    return aux;
  60.  
  61. }
  62.  
  63. float retornatopo ( struct EmbalagemBiscoito *p ){
  64.  
  65.    return p->pElem [p->lote];
  66.  
  67. }
  68.  
  69. int main(){
  70.  
  71.         struct EmbalagemBiscoito pilhaBiscoito;
  72.         int lote, op, data, hora;
  73.         float valor;
  74.  
  75.         printf( "\ninsira lote " );
  76.         scanf( "%d", &lote );
  77.  
  78.     printf( "\ninsira data " );
  79.         scanf( "%d", &data );
  80.  
  81.     printf( "\ninsira hora " );
  82.         scanf( "%d", &hora );
  83.  
  84.  
  85.         criarpilha (&pilhaBiscoito, lote, data, hora);
  86.  
  87.         while( 1 ){ /* loop infinito */
  88.  
  89.                 printf("\n1- empilhar \n");
  90.                 printf("2- desempilhar \n");
  91.                 printf("3- Mostrar o topo \n");
  92.                 printf("4- sair\n");
  93.                 scanf("%d", &op);
  94.  
  95.                 switch (op){
  96.  
  97.                         case 1:
  98.  
  99.                                 if( estacheia( &pilhaBiscoito ) == 1 )
  100.  
  101.                                         printf("\nPILHA CHEIA! \n");
  102.  
  103.                                 else {
  104.  
  105.                                         printf("\nVALOR? ");
  106.                                         scanf("%f", &valor);
  107.                                         empilhar (&pilhaBiscoito, valor);
  108.  
  109.                                 }
  110.                                 break;
  111.  
  112.                         case 2:
  113.                                 if ( estavazia(&pilhaBiscoito) == 1 )
  114.  
  115.                                         printf( "\nPILHA VAZIA! \n" );
  116.  
  117.                                 else{
  118.  
  119.                                         valor = desempilhar (&pilhaBiscoito);
  120.                                         printf ( "\n%.1f DESEMPILHADO!\n", valor );
  121.  
  122.                                 }
  123.                                 break;
  124.  
  125.                         case 3:
  126.                                 if ( estavazia (&pilhaBiscoito) == 1 )
  127.  
  128.                                         printf( "\nPILHA VAZIA!\n" );
  129.  
  130.                                 else {
  131.  
  132.                                         valor = retornatopo (&pilhaBiscoito);
  133.                                         printf ( "\nLOTE do ultimo pacote inserido: %.1f\n", valor );
  134.  
  135.                                 }
  136.                                 break;
  137.  
  138.                         default: printf( "\nOPCAO INVALIDA! \n" );
  139.                 }
  140.         }
  141.        
  142. }
  143.