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

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / duda pilas en: 17 Octubre 2010, 22:22 pm
hola foro tengo una duda:

Código
  1. #include <iostream.h>
  2. #include <windows.h>
  3. #include <conio.h>
  4.  
  5. struct Nodo
  6. {
  7. int Dato;
  8. Nodo *sig;
  9. };
  10.  
  11. class Pila
  12. {
  13. private:
  14. Nodo *inicio;
  15. public:
  16. //constructor
  17. Pila()
  18. {
  19. inicio=NULL;
  20. }
  21.    void Sacar()
  22. {
  23. Nodo *r, *ant;
  24. r = inicio;
  25.  
  26. if(r!=NULL)
  27. {
  28.  
  29. do
  30. {
  31. ant=r;
  32. if (r->sig!=NULL)
  33. {
  34. r = r->sig;
  35. }
  36. }while(r->sig!=NULL);
  37. if(ant == r)
  38. {
  39. inicio=NULL;
  40. }
  41. delete r;
  42. ant->sig=NULL;
  43. }
  44. }
  45.  

-------------------------------------------------------

void suma

para sumar la pila insertada, en este caso tengo insertado
el 7,9,5 el resultado es 21, tengo que recorrer de nuevo la pila (como en el caso void mostrar)
el problema viene cuando tengo que sumar, ya le busque solo y nole encuentro...



--------------------------------------------------------



Código
  1. void Mostrar()
  2. {
  3. Nodo *recorrer;
  4. recorrer = inicio;
  5.  
  6. if (recorrer!=NULL)
  7. {
  8. do
  9. {
  10. cout << recorrer->Dato << endl;
  11. recorrer = recorrer->sig;
  12. }while(recorrer->sig!=NULL);
  13. cout << recorrer->Dato << endl;
  14. }
  15. else
  16. {
  17. cout << "Pila vacia" << endl;
  18. }
  19. }
  20.  
  21.     void Insertar(int num)
  22. {
  23.  
  24. Nodo *nuevo;
  25. nuevo = new Nodo;
  26. nuevo->Dato=num;
  27. nuevo->sig=NULL;
  28.  
  29. if(inicio==NULL)
  30. {
  31. inicio=nuevo;
  32. }
  33. else
  34. {
  35. if (inicio->sig==NULL)
  36. {
  37. inicio->sig = nuevo;
  38. }
  39. else
  40. {
  41. Nodo *aux;
  42. aux=inicio;
  43.  
  44. while(aux->sig!=NULL)
  45. {
  46. aux=aux->sig;
  47. }
  48. aux->sig=nuevo;
  49. }
  50. }
  51.  
  52. }
  53. };
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.   void main (void)
  62.   {
  63. int op;
  64. Pila numeros;
  65.  
  66.  
  67.  
  68.  
  69. do
  70. {
  71. system("cls");
  72. cout << "<------(((MENU)))----->" << endl;
  73. cout << "1.- Insertar pila" << endl;
  74. cout << "2.- Sacar numero de la pila" << endl;
  75. cout << "3.- Mostrar pila" << endl;
  76. cout<<"4.- suma la pila"<<endl;
  77. cout << "elige una opcion: ";
  78. cin >> op;
  79.  
  80. system("cls");
  81. switch(op)
  82. {
  83. case 1:
  84. cout<<"numeros insertados"<<endl;
  85. numeros.Insertar(7);
  86.         numeros.Insertar(9);
  87.        numeros.Insertar(5);
  88.  
  89. break;
  90. case 2:
  91.    cout << "Numero eliminado" << endl;
  92. numeros.Sacar();
  93. break;
  94. case 3:
  95. numeros.Mostrar();
  96. break;
  97.  
  98.        case 4:
  99.    numeros.Sumar();
  100.  
  101. break;
  102.  
  103. default:
  104. cout << "Adios!!!"<< endl;
  105. }
  106.  
  107. getch();
  108.  
  109. }while(op>=1 && op<=3);
  110.  
  111. }
  112.  
2  Programación / Programación C/C++ / ayuda con colas en visual c++ en: 6 Octubre 2010, 15:51 pm
ayuda con pilas, necesito un programa simple que me permita insertar un numero ala cola, extraer un numero de la cola una vez llena,  eliminar un numero, salir.
ya busque en los buscadores y los ejemplos son muy complejos, esto tendria que ir con un menu como:


void menu

cout<<"1.- inserta un numero"<<endl;
cout<<"2.- extrae un numero"<<endl;
cout<<"3.-elimina un elemento"<<endl;
cout<<"4.-salir"<<endl;

 switch (resolucion)

 {
   case 1: .......................................
   case 2: .......................................



asi es la estructura: estuve leyendo que debo usar   punteros tambien, no se como, agradeceria me ayuden

   

3  Programación / Programación C/C++ / colas simples en: 1 Octubre 2010, 15:07 pm
¿algun ejemplo de colas en c++? simple y entendible asi como este:

 #include "stdio.h"
#include "iostream.h"
#include  MAX_COLA 50

typedef int tipodato;

typedef  struct
{ int elems;
 int final, frente;
 tipodato elementos[MAX_COLA];
} colacir;

/*  inicializa la cola */
void crearcola(colacir &cola);

/* retorna el indice del siguiente elemento */
int siguiente(int i);

/* retorna 1 si la cola esta vacia */
int vacia(colacir cola);

/*retorna 1 si la cola esta llena*/
int llena(colacir cola);

/* inserta un elemento al final de la cola*/
void encolar(colacir &cola,tipodato elem);

/* retira el elemento del inicio de la col*/
tipodato desencolar(colacir &cola);

/* obtiene el elmento del inicio de la cola */
tipodato frente(colacir cola);

/* reporta todos los elementos de la cola */
void visualizar(colacir cola);


/** DESARROLLO DE FUNCIONES  **/

void crearcola(colacir &cola)
{
 cola.elems = cola.frente = 0;
 cola.final =MAX_COLA-1;
}

int siguiente(int i)
{
   return ((i+1) % MAX_COLA);
}

int vacia(colacir cola)
{
   return (cola.elems == 0);
}

int llena(colacir cola)
{
 return (cola.elems == MAX_COLA);
}

void encolar(colacir &cola, tipodato elem)
{
 cola.elems++;
 cola.final=siguiente( cola.final);
 cola.elementos[cola.final] = elem;
}

tipodato desencolar(colacir &cola)
{
 int elem;
 cola.elems--;
 elem = cola.elementos[cola.frente];
 cola.frente=siguiente(cola.frente);
 return elem;
}

tipodato frente(colacir cola)
{
   return cola.elementos[cola.frente];
}

void visualizar(colacir cola)
{
 if(!vacia(cola))
   {
       cout<<desencolar(cola);cout<<"  ";
       visualizar(cola);
   }
} :D
4  Programación / Programación C/C++ / ayuda codigo de arreglo en: 1 Octubre 2010, 02:26 am
buenas tardes a todo el foro, tengo tiempo entrando ala web, anteriormente tenia una cuenta, aunque deje de utilizarla, tengo un problema, agradeceria me ayudaran con este codigo, tengo este arreglo que, hace llenar el arreglo, suma el arreglo, promedia el arreglo, solo quiero saber como sacar el numero mayor del arreglo, el codigo es el siguiente:





#include <iostream.h>
#include <windows.h>
#include <conio.h>

void main (void)
{
   int op;
   int *a, e;
   int c;
   int s=0;
   int p=0;
   int mayor;

   
   
   
   do
   {
      system("cls");
      cout << "M    E    N    U" << endl;
      cout << endl << "1.- para introdusir el tamaño del arreglo" << endl;
      cout << "2.- para llenar el arreglo" << endl;
      cout << "3.- para sumar arreglo" << endl;
      cout << "4.- para promedia arreglo" << endl;
      cout << "5.- para encontrar el numero mas grande del arreglo" << endl << endl;
      cout << "6.- salir"<< endl << endl;
      cin >> op;
      system("cls");
      switch(op)
      {
      case 1:
         cout << "introduce el tamano del arreglo" <<endl;
         cin>>e;
         a= new int[e];
         getch();
            break;
      case 2:
         cout << "introduce los numeros del arreglo" << endl;
         for(c=0;c<e;c++)
         {
           cin >>a[c];
         }
         getch();
         break;
      case 3:
         cout << "la suma del arreglo es " << endl;
         for(c=0;c<e;c++)
         {
          s=s+a[c];
         }
         cout<< " la suma es "<<s<< endl;
         getch();
         break;
      case 4:
         cout << "el promedio del arreglo es " << endl;
         p = s/e;
         cout<< p << endl;
         getch();
         break;
      case 5:

-----------------------------------------------------------------------------------
     aqui tendria que ir como saber el numero mayor del arreglo...no se que poner o como hacerlo
------------------------------------------------------------------------------------------



   }while(op>=1 && op<=5);
}



el codigo va dentro del case.....
gracias :-\
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines