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

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Estructura de datos(pilas)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Estructura de datos(pilas)  (Leído 2,665 veces)
Kevin98

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Estructura de datos(pilas)
« en: 24 Mayo 2018, 18:29 pm »

Buen día a todos, llevo días con esto he intentado varias cosas pero no me sale, podrían ayudarme?
El enunciado es el siguiente:
Tomando como base el programa desarrollado en clase,
a.   Modifique el código para que permita el ingreso de n cantidad de números.
b.   Luego recorra la pila y lea los números de dos en dos.
c.   Calcule una suma con los dos primeros números
d.   Calcule una multiplicación con los dos siguientes valores
e.   Luego reste y divida respectivamente.

iv.   Guarde los resultados de las operaciones en una nueva pila.
v.   Habilitar: Una opción que permita presentar en pantalla los datos tanto de la pila de ingreso como la de los resultados.

El paso a y el b ya lo tengo, el problema esta en hacer las operaciones de dos en dos(paso c,d,e), puede que sea un for e incluso con do while pero me salen resultados diferentes a la hora de querer utilizar for e ir recorriendo de dos en dos para poder operar.

De ante mano se les agradece.

Este es el codigo que tengo:

#include <iostream>
#include <cstdlib>

using namespace std;
int main(){
   int arreglo[100];
   int numero;  
   int tope = 0;
   int contAGREGAR;
   int contMOSTRAR;
   int contELIMINAR;
   int cantAGREGAR;
   int cantELIMINAR;
   do{
      
      
      system("clear");
      
            
   printf("\n\tPOR FAVOR ELIJA UNA DE LAS SIGUIENTES OPCIONES\n\n");
   printf("\t\tPILA\n\n");
   printf("\n\t1.INGRESAR UN DATO A LA PILA");
   printf("\n\t2.MOSTRAR DATO DE LA PILA");   
   printf("\n\t3.ELIMINAR DATO A LA PILA \n");   
   printf("\n\t4.SALIR DEL PROGRAMA \n");   
   
      scanf("%i",&numero);
      switch (numero) {
            
      case 1:{
         system("clear");
         printf("CUANTOS ELEMENTOS QUIERE AGREGAR A LA PILA ");
         scanf("%d", &cantAGREGAR);
         for (contAGREGAR = 1; contAGREGAR <= cantAGREGAR; contAGREGAR++) {
            printf("\t INTRODUZCA EL DATO DE LA PILA NUMERO %d :", contAGREGAR);
            scanf("%i", &arreglo[tope]);
            tope++;
         }
      }
      break;
      
      case 2:{
      
         system("clear");

         if (tope == 0){

            printf("\t LA PILA ESTA VACIA");
            break;
         }else {
            printf("\tDATOS DE LA PILA\n\n");
            for (contMOSTRAR = 0; contMOSTRAR<tope; contMOSTRAR++) {
               
               printf("\n\t%d ", arreglo[contMOSTRAR]);
            }
         }
      }

         break;
         
      case 3:
            {
            system("clear");
            
            if(tope == 0){
               printf("\n\t\t NO HAY PILA QUE RETIRAR");
               
               
            }else {
               printf("CUANTOS DATOS QUIERE QUITAR DE LA PILA \? ");
               scanf("%d", &cantELIMINAR);
               system("clear");
               for ( contELIMINAR = 0; contELIMINAR < cantELIMINAR; contELIMINAR++) {
                  tope--;
                  printf("El elemento %d fue eliminado", tope);
                  
                  
               }
            }
            }
            break;
                  
      case 4:
         {   
            printf("\tSALIENDO..\n");
         break;


         }}}while(numero<4);
}

Estaba haciendo esto aparte para darme una idea:

int arreglo[] = {1,2,3,4,5,6};
int suma, resta, multi;

   //suma
   for(int i = 0; i <= 1; i++){
      suma += arreglo;
      
   }
   cout << "Suma: " << suma;
   //resta
   for(int i = 2; i >= 3 ;i++){
      resta -= arreglo;
      
   }
   cout << endl << "Resta: " << resta;
    //multiplicacion
    for(int i = 5; i <= 4 ;i--){
      multi = multi + arreglo;
      cout << endl << "Multiplicacion: " << multi;
   }


« Última modificación: 24 Mayo 2018, 18:35 pm por Kevin98 » En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.355


Ver Perfil
Re: Estructura de datos(pilas)
« Respuesta #1 en: 24 Mayo 2018, 18:44 pm »

Si te piden tomar los dos primeros... pués sencillamente necesitas dos variables temporales.

Código:
x = pilaA.pop
y = pilaA.pop

pilaB.push(x + y)

La multiplicación (cuestión: d) es lo mismo.
Código:
x = pilaA.pop
y = pilaA.pop

pilaB.push(x * y)

la cuestión 'e', es un bucle donde mientras queden más de 2 ítems... si solo queda 1, no podrá sumarse, ni restarse a otro que 'no existe'.
La cuestión 'e' me resulta ambigua, no sé si pretende decir que con los valores obtenidos primero se resten y luego se dividan (como señala este pseudocódigo):
Código:
Hacer  mientras (pilaA.Items > 1)
    x = pilaA.pop
    y = pilaA.pop

    pilaB.push(x - y)
    pilaB.push(x / y)
Repetir

...ó si pretende decir que con los dos siguientes se reste y con los otros dos siguientes se divida... en este caso se requiere que que para ambas operaciones dentro del bucle deban existir al menos 4, tras el bucle pueden quedan 0,1,2 ó 3 elementos, si quedan 2 ó 3, todavía podrá hacerse una resta más...

Código:
Hacer mientras (pilaA.Items > 3)
    x = pilaA.pop
    y = pilaA.pop
    pilaB.push(x - y)

    x = pilaA.pop
    y = pilaA.pop
    pilaB.push(x / y)
Repetir

Si pilaA.Items>1 luego
    x = pilaA.pop
    y = pilaA.pop
    pilaB.push(x - y)
fin si





« Última modificación: 24 Mayo 2018, 18:46 pm por NEBIRE » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Estructura de datos
Programación General
EFEX 1 2,580 Último mensaje 27 Junio 2011, 14:25 pm
por EFEX
¿Alguién conoce un buen curso/libro de minería de datos y estructura de datos?
Programación General
Aikanáro Anário 0 1,915 Último mensaje 30 Agosto 2012, 23:06 pm
por Aikanáro Anário
estructura de datos
Programación C/C++
manutmac 1 1,896 Último mensaje 11 Diciembre 2012, 04:09 am
por twins
estructura de datos « 1 2 »
Programación C/C++
juanks92 10 4,761 Último mensaje 23 Abril 2013, 06:43 am
por rir3760
Estructura de datos
Programación C/C++
juanks92 0 1,409 Último mensaje 22 Abril 2013, 23:20 pm
por juanks92
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines