elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Re: Importante-Curioso en: 29 Agosto 2019, 07:55 am
Hola te agradezco un montón todo lo que me dijiste, ayer intente poner en práctica todo, la verdad no me salio casi nada y es por que no tengo claro los fundamentos ni la práctica aun, pero mi profe me aprobó el trabajo, y todavia no me doy por vencido estoy intentando nuevas cosas como por ejemplo mostrar el último elemento de la pila o mostrar el elemento eliminado de la pila, estoy si viendo si puedo agregar elementos de distinto tipo de dato, fuaa un montón de cosas en fin mira mi codigo, para mi esta muy cambiado pero nose, en fin muchas gracias enserio.

Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<stdbool.h>
  4.  
  5. #define max 10
  6.  
  7. typedef float tPila[max];
  8. tPila pila;
  9.  
  10. int tope;
  11.  
  12. int menu(int eleccion);
  13. bool CrearPilaVacia();
  14. bool PilaVacia();
  15. bool PilaLlena();
  16. bool Apilar(float pElementos);
  17. bool Desapilar();
  18. float cima();
  19. float VisualizarElementos();
  20. float sumaPila();
  21.  
  22. int main()
  23. {
  24. int eleccion = menu(eleccion);
  25. }
  26. int menu(int eleccion)
  27. {
  28.    float pElementos, acum = 0;
  29. while(eleccion != -1)
  30. {
  31.    printf("\n--BIENVENIDO--\n");
  32.    printf("1.- CrearPilaVacia\n");
  33.    printf("2.- Pila vacia? \n");
  34.    printf("3.- Pila Llena? \n");
  35.    printf("4.- Apilar \n");
  36.    printf("5.- Desapilar \n");
  37.    printf("6.- Visualizar Elementos \n");
  38.    printf("7.- Suma Elementos \n");
  39.    printf("8.- Elemento en el tope \n");
  40.    printf("-1.- Salir\n\n");
  41.    printf(".- Elige una opcion..\n");
  42.    scanf("%d",&eleccion);
  43. switch(eleccion)
  44. {
  45. case 1:
  46.    CrearPilaVacia();
  47.    printf("Has Creado una pila vacia? %s\n",CrearPilaVacia() ? "si" : "no");
  48.    break;
  49.  
  50.    case 2:
  51.    PilaVacia();
  52.    printf("Pila vacia? %s\n",PilaVacia() ? "si" : "no");
  53.    break;
  54.  
  55. case 3:
  56. PilaLlena();
  57. printf("Pila Llena? %s\n",PilaLlena() ? "si" : "no");
  58. break;
  59.  
  60. case 4:
  61. Apilar(pElementos);
  62. printf("Ingrese un elemento! \n");
  63.    scanf("%f",&pila[tope]);
  64.    printf("Elemento insertado! %.2f\n",pila[tope]);
  65. break;
  66.  
  67. case 5:
  68. Desapilar();
  69.    break;
  70.  
  71.    case 6:
  72.    printf("Elementos en la pila\n");
  73.    VisualizarElementos();
  74.    break;
  75.  
  76.    case 7:
  77.    sumaPila();
  78.    printf("\tLa suma de los elementos de la pila es: %.2f",sumaPila());
  79.        printf("\n\n");
  80.    break;
  81.  
  82.    case 8:
  83.    printf("El elemento en el tope es: %.2f",cima());
  84.    break;
  85. }
  86. }
  87. }
  88. bool CrearPilaVacia()
  89. {
  90. tope = -1;
  91. }
  92. bool PilaVacia()
  93. {
  94. if(tope == -1)
  95. {
  96. return true; /* Tiene elementos.*/
  97. }
  98. else
  99. {
  100. return false; /* No tiene elementos.*/
  101. }
  102. }
  103. bool PilaLlena()
  104. {
  105. if(tope == (max-1))
  106. {
  107. return true;
  108. }
  109. else
  110. {
  111. return false;
  112. }
  113. }
  114. bool Apilar(float pElementos)
  115. {
  116. if(PilaLlena() != true)
  117. {
  118. tope = tope + 1;
  119. pila[tope] = pElementos;
  120. }
  121. else
  122. {
  123. printf("Pila Llena!\n");
  124. }
  125. }
  126. bool Desapilar()
  127. {
  128. if(PilaVacia() == true)
  129. {
  130. printf("Pila Vacia!!\n");
  131. }
  132. else
  133. {
  134. pila[tope] = 0;
  135. tope = tope - 1;
  136. printf("Elemento eleminado!!\n");
  137. }
  138. }
  139. float cima()
  140. {
  141. return pila[tope];
  142. }
  143. float VisualizarElementos()
  144. {
  145. int i;
  146. for(i=0; i<=tope; i++)
  147. {
  148.   printf("\t %.2f",pila[i]);
  149. }
  150. }
  151. float sumaPila()
  152. {
  153. float suma=0, acum = 0;
  154. int i;
  155. // Suma los elementos de una pila.
  156. for(i=0; i<=tope; i++)
  157. {
  158. suma = suma + pila[i];
  159. acum = suma + 0;
  160.    }
  161.    return acum;
  162. }
  163.  
2  Programación / Programación C/C++ / Re: Importante-Curioso en: 28 Agosto 2019, 05:19 am
Hola te lo agradeceria muchisimo que me ayudaras a entender cómo puedo mejorar , pues no entiendo nada de Pilas, ni de colas ni de listas, el problema es que estoy aprendiendo mal, en mi universidad no me enseñan la parte práctica de programación, este código MAL HECHO, lo estuve tratando de resolver y me llevo un dia entero.

3  Programación / Programación C/C++ / Importante-Curioso en: 27 Agosto 2019, 04:23 am
Buenas estoy haciendo un ejercicio de la Facultad :silbar: y tengo una curiosidad
Código
  1.  
  2. #include<stdio.h>
  3. #include<stdbool.h>
  4.  
  5. #define max 10
  6.  
  7. typedef float tPila[max];
  8. tPila pila;
  9.  
  10. int i, tope, acum = 0;
  11.  
  12. int menu(int eleccion);
  13. bool CrearPilaVacia();
  14. bool PilaVacia();
  15. bool PilaLlena();
  16. void Apilar(int);
  17. void Desapilar();
  18. int cima();
  19. void VisualizarElementos();
  20. void sumaPila();
  21.  
  22. int main()
  23. {
  24. int eleccion;
  25.  
  26. menu(eleccion);
  27. }
  28. int menu(int eleccion)
  29. {
  30.   int pElementos;
  31.  
  32. while(eleccion != -1)
  33. {
  34.    printf("\n--BIENVENIDO--\n");
  35.    printf("1.- CrearPilaVacia\n");
  36.    printf("2.- Pila vacia? \n");
  37.    printf("3.- Pila Llena? \n");
  38.    printf("4.- Apilar \n");
  39.    printf("5.- Desapilar \n");
  40.    printf("6.- Visualizar Elementos \n");
  41.    printf("7.- Suma Elementos \n");
  42.    printf("-1.- Salir\n\n");
  43.    printf(".- Elige una opcion..\n");
  44.    scanf("%d",&eleccion);
  45. switch(eleccion)
  46. {
  47. case 1:
  48.    CrearPilaVacia();
  49.    printf("Has Creado una pila vacia? %s\n",CrearPilaVacia() ? "si" : "no");
  50.    break;
  51.  
  52.    case 2:
  53.    PilaVacia();
  54.    printf("Pila vacia? %s\n",PilaVacia() ? "si" : "no");
  55.    break;
  56.  
  57. case 3:
  58. PilaLlena();
  59. printf("Pila Llena? %s\n",PilaLlena() ? "si" : "no");
  60. break;
  61.  
  62. case 4:
  63. Apilar(pElementos);
  64. break;
  65.  
  66. case 5:
  67. Desapilar();
  68.    break;
  69.  
  70.    case 6:
  71.    VisualizarElementos();
  72.    break;
  73.  
  74.    case 7:
  75.    sumaPila();
  76.    break;
  77. }
  78. }
  79. }
  80. bool CrearPilaVacia()
  81. {
  82. tope = -1;
  83. }
  84. bool PilaVacia()
  85. {
  86. if(tope == -1)
  87. {
  88. return true; /* Tiene elementos.*/
  89. }
  90. else
  91. {
  92. return false; /* No tiene elementos.*/
  93. }
  94. }
  95. bool PilaLlena()
  96. {
  97. if(tope == (max-1))
  98. {
  99. return true;
  100. }
  101. else
  102. {
  103. return false;
  104. }
  105. }
  106. void Apilar(int pElementos)
  107. {
  108. if(PilaLlena() != true)
  109. {
  110. tope = tope + 1;
  111. pila[tope] = pElementos;
  112. printf("Ingrese un elemento! \n");
  113. scanf("%f",&pila[tope]);
  114. printf("Elemento insertado! %.2f\n",pila[tope]);
  115. }
  116. else
  117. {
  118. printf("Pila Llena!\n");
  119. }
  120. }
  121. void Desapilar()
  122. {
  123. if(PilaVacia() == true)
  124. {
  125. printf("Pila Vacia!!\n");
  126. }
  127. else
  128. {
  129. pila[tope] = 0;
  130. tope = tope - 1;
  131. printf("Elemento eleminado!!\n");
  132. }
  133. }
  134. int cima()
  135. {
  136. return pila[tope];
  137. }
  138. void VisualizarElementos()
  139. {
  140. int i;
  141. printf("Elemento en pila: \n");
  142. for(i=0; i<=tope; i++)
  143. {
  144. printf("\t%.2f",pila[i]);
  145. }
  146. printf("\n\n");
  147. }
  148. void sumaPila()
  149. {
  150. int i;
  151. float suma=0;
  152.  
  153. printf("Suma de elementos en la pila: \n");
  154.  
  155. // Suma los elementos de una pila.
  156. for(i=0; i<=tope; i++)
  157. {
  158. suma = suma + pila[i];
  159. acum = suma + 0;
  160.    }
  161.    printf("\t%.2f",acum);
  162. printf("\n\n");
  163. }
  164.  
  165.  

Al compilar me da un resultado muy raro, pues nose por que se genera
Al mostrar los elementos de la pila, me da el siguiente resultado.

0.00 4,50 4,30 4.90 5.90

Pues el 0.00 nose por que esta hay y nose como quitarlo
Si me pueden ayudar porfavor a resolver este curioso problema, les agradeceria muchisimo
4  Programación / Programación C/C++ / Re: Importante bucle mientras en: 17 Mayo 2019, 07:12 am
woooooowww!!! realmente eres muy bueno ;D ;D, muchisimas gracias por ayudarme a comprender, ahora voy a terminar mi codigo, ojala algun dia pueda agradecerte en persona
5  Programación / Programación C/C++ / Re: Importante bucle mientras en: 17 Mayo 2019, 05:48 am
woooooowww!!! realmente eres muy bueno ;D ;D, muchisimas gracias por ayudarme a comprender, ahora voy a terminar mi codigo, ojala algun dia puede agradecerte
6  Programación / Programación C/C++ / Re: Importante bucle mientras en: 17 Mayo 2019, 01:24 am
Código
  1.  
  2. #include<stdio.h>
  3.  
  4. int main()
  5. {
  6. int n_clien, opc, pago;
  7. int tot, porc, recaud;
  8.  
  9. /*
  10. n_clien = numero de clientes.
  11. opc = opcion.
  12. tot = total.
  13. porc = porcentaje.
  14. recaud = recaudacion.
  15. */
  16.  
  17.   printf("Ingrese el numero de cliente: ");
  18.   scanf("%d",&n_clien);
  19.   printf("Ingrese el precio: (1-250, 2-255, 3-250):");
  20.   scanf("%d",&opc);
  21.   printf("Ingrese el pago: (1-efectivo, 2-T. credito, 3-T. debito):");
  22.   scanf("%d",&pago);
  23.  
  24.   if((opc == 2)&&(pago == 1))
  25.   {
  26.   tot = n_clien * 255;
  27.   porc = tot * 0.05;
  28.   recaud = tot - porc;
  29.   }
  30.   else{
  31.  
  32.    if((opc == 2)&&(pago == 2))
  33.    {
  34.  
  35.   tot= n_clien * 255;
  36.  
  37. }
  38. else{
  39.  
  40. if((opc == 2)&&(pago == 3))
  41. {
  42.  
  43. tot = n_clien * 255;
  44. porc = tot * 0.05;
  45. recaud = tot - porc;
  46.  
  47. }
  48.   }  
  49.  }
  50.  
  51.  printf ("\nEl total del precio es: %d\n",tot);
  52.  
  53.  printf ("\nEl precio con el descuento es: %d\n",recaud);
  54.  
  55.  printf ("\nEl descuento sobre el total es: %d%%\n",porc);
  56.  
  57.  printf ("\nEl numero de clientes que eligieron el combo 2 es: %d\n",n_clien);
  58.  
  59.  
  60. }
  61.  
  62.  

Mira hay corregi el código

Como hago para hacer un bucle que se itere varias veces y al final en la salida me de los resultados de los printf
PD: intente hacer con el bucle while pero al intentar finalizar el programa el bucle, no me sale y en la salida me sigue preguntando si quiere ingresar tanto.. Y queda como un bucle infinito, nose si me entienden soy muy novato y mis profes no me enseñan nada, me pueden ayudar porfa
7  Programación / Programación C/C++ / Importante bucle mientras en: 16 Mayo 2019, 02:49 am
AYUDA POR FAVOR!!!
estoy haciendo un programa en C para una materia en algoritmo y necesito ayuda para regularizar la materia, por favor

mi problema es el bucle while mi condición no me cumple ayudaaa..

MI CODIGO:


// Trabajo Evaluativo

#include<stdio.h>

int main(){

// Declaracion de variables.

int n_cliente, opcion, recauda_combo, pre_combo1, pre_combo2, pre_combo3, pago, total, precioFinal, cant_cliente;

// Declaracion de variables auxiliares.

pre_combo1 = 250;  //precio del combo 1
pre_combo2 = 255; // precio del combo 2
pre_combo3 = 350; // precio del combo 3

/*

Opcion 1 = combo1
Opcion 2 = combo2
Opcion 3 = combo3

*/

// Ingreso de datos.

printf("Ingrese el numero del cliente: \n");
scanf("%d",&n_cliente);

printf("Ingrese el precio del combo elegido: (1-combo 1: $250, 2-combo 2: $255, 3-combo 3: $350):\n");
scanf("%d",&opcion);

printf("Ingrese la forma de pago: (1- efectivo, 2- tarjeta de debito, 3- tarjeta de credito): \n");
scanf("%d",&pago);

// Inicio de la estructura iterativa mientras.

while(n_cliente != 9999){  // al escribir 9999 no me sale del bulce
   
   // Inicio de la estructura selectiva segun sea.
   
   switch (opcion){
      
      case 1:
            printf("Selecciono la opcion combo 1: \n\n");
           
            // Inicio de la estructura anidada para el combo1.
           
            if((opcion == 1)&&(pago == 1)){
               
               cant_cliente = n_cliente * pre_combo1;   /* Cant_cliente es el total de clientes por el combo elegido.*/
               total = cant_cliente * 0.10;           //  calculando el porcentaje y guardando en la variable total.
               precioFinal = cant_cliente - total;    //  calculando el descuento para obtener el precio total.
                   // recaudacion
               
               printf("El precio que debe pagar por el combo elegido es: %d \n\n",precioFinal);
               
           }else{
              
              if((opcion == 1)&&(pago == 2)){
                 cant_cliente = n_cliente * pre_combo1;
                 total = cant_cliente;
              
                 
                 printf("El precio que debe pagar por el combo elegido es: %d \n\n",total);
                 
              }else{
                 
                 if((opcion == 1)&&(pago == 3)){
                    
                    cant_cliente = n_cliente * pre_combo1;
                    total = cant_cliente * 0.25;
                    precioFinal = cant_cliente - total;
                    
         
                    printf("El precio que debe pagar por el combo elegido es: %d \n\n",precioFinal);
                 }
              }
           }
           break;
           
           case 2:
              
              printf("Seleciono la opcion combo 2: \n\n");
              
              // Inicio de la estructura anidada para el combo2.
              
              if((opcion == 2)&&(pago == 1)){
               
               cant_cliente = n_cliente * pre_combo2;
               total = cant_cliente * 0.10;
               precioFinal = cant_cliente - total;
               recauda_combo = precioFinal;
               
               printf("El precio que debe pagar por el combo elegido es: %d \n\n",precioFinal);
               
           }else{
              
              if((opcion == 2)&&(pago == 2)){
                 
                 cant_cliente = n_cliente * pre_combo2;
                 total = cant_cliente;
                 recauda_combo = total;
                 
                 printf("El precio que debe pagar por el combo elegido es: %d \n\n",total);
                 
              }else{
                 
                 if((opcion == 2)&&(pago == 3)){
                    
                    cant_cliente = n_cliente * pre_combo2;
                    total = cant_cliente * 0.25;
                    precioFinal = cant_cliente - total;
                    recauda_combo = precioFinal;
                    
                    printf("El precio que debe pagar por el combo elegido es: %d \n\n",precioFinal);
                    
                 }
              }
           }
           break;
          
           case 3:
          
           printf("Selecciono la opcion combo 3: \n\n");
          
           // Inicio de la estrutura anidada para el combo3.
          
           if((opcion == 3)&&(pago == 1)){
               
               cant_cliente = n_cliente * pre_combo3;
               total = cant_cliente* 0.10;
               precioFinal = cant_cliente - total;
               
               
               printf("El precio que debe pagar por el combo elegido es: %d \n\n",precioFinal);
               
           }else{
              
              if((opcion == 3)&&(pago == 2)){
                 
                 cant_cliente = n_cliente * pre_combo3;
                 total = cant_cliente;
                 
                 printf("El precio que debe pagar por el combo elegido es: %d \n\n",total);
                 
              }else{
                 
                 if((opcion == 3)&&(pago == 3)){
                    
                    cant_cliente = n_cliente * pre_combo3;
                    total = cant_cliente * 0.25;
                    precioFinal = cant_cliente - total;
                    
                    printf("El precio que debe pagar por el combo elegido es: %d \n\n",precioFinal);
                 }
              }
           }
           break;
          
           default: printf("Opcion invalida vuelva a intentarlo: \n\n");    
          
   }               
                    // Mostrar el importe total del combo.
               
               printf("El improte total del combo es: %d\n\n",cant_cliente);
   
   
                  // Mostrar la cantidad de clientes que eligieron el combo 2.
                     
                    if(opcion == 2){
                       
                       printf("La cantidad de clientes que eligieron el combo 2 es: %d\n\n",n_cliente);
                       
               }
               
               // Mostrar el porcentaje respecto del combo a pagar.
               
                 if((opcion == 1)&&(pago != 2)){
         
                      printf("El importe de descuento del combo es: %d\n\n",total);
               
                   }else{
              
                   if((opcion == 2)&&(pago != 2)){
                 
                     printf("El importe de descuento del combo es: %d\n\n",total);
                 
                 }else{
                 
                  if((opcion == 3)&&(pago != 2)){
                    
                    printf("El importe de descuento del combo es: %d\n\n",total);
            
                  }
                }
               }
               
               // Mostrar  el importe de  recaudacion de un combo.
               
               printf("El importe recaudado del combo es $%d:\n\n",recauda_combo);
               
               // Ingreso de datos.
   
                   printf("Ingrese el numero del cliente: \n\n");
                    scanf("%d",&n_cliente);

                    printf("Ingrese el precio del combo elegido: (1-combo 1: $250, 2-combo 2: $255, 3-combo 3: $350): \n");
                    scanf("%d",&opcion);

                    printf("Ingrese la forma de pago: (1- efectivo, 2- tarjeta de debito, 3- tarjeta de credito): \n");
                    scanf("%d",&pago);
               
   
}

 return 0;

}
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines