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 Temas
Páginas: [1]
1  Programación / Programación C/C++ / Serie de Taylor para Tan (x) en: 14 Febrero 2016, 07:40 am
Buenas Noches.
 Perdon la molestia, pero alguien que me quiera ayudar o que me explique sobre como hacer la serie de Taylor para tan (x) por lo que he investigado tiene que ver con los numeros de Bernoulli, y que a su ves haga una aproximación de 0.00001

De antemano, gracias :)
2  Programación / Programación C/C++ / Que significa "expected..." en: 8 Julio 2015, 02:02 am
Buenas Tardes, una pregunta saben que significa "expected init-declarator before Insertar_Nodo" y en esa misma linea me dice "expected ',' or ';' before Insertar_Nodo", este error me sale despues de "//Declaro las funciones que tiene el programa"

solo pongo una parte de mi codigo:
Código
  1. class Nodo
  2. {
  3.    private:
  4.                int dato;
  5.                Nodo *HijoIzquierdo, *HijoDerecho,*Raiz;
  6.    public:
  7.                Nodo* Insertar_Nodo(int valor, Nodo*subArbol);
  8.                //void EnOrden(Nodo*);
  9.                //void PreOrden(Nodo*);
  10.                void PostOrden(Nodo*);
  11.                //int Nivel_arbol(Nodo*);
  12.                //int NumeroNodo(Nodo*);
  13.                //int FE(Nodo*);
  14.                int Total_hojas2(Nodo*);
  15.                int Total_hojas(Nodo*);
  16.                //int Suma_nodos(Nodo*);
  17.  
  18. };
  19.  
  20. //Declaro las funciones que tiene el programa
  21. Nodo*::Nodo Insertar_Nodo(int valor,Nodo*subArbol)
  22. {
  23.   if(subArbol==NULL)
  24.   {
  25.      subArbol=new Nodo;
  26.      subArbol->HijoIzquierdo=subArbol->HijoDerecho=NULL;
  27.      subArbol->dato=valor;
  28.   }
  29.   else
  30.  
  31.      if(valor<subArbol->dato)
  32.         subArbol->HijoIzquierdo=InsertaNodo(valor, subArbol->HijoIzquierdo);
  33.  
  34.      else
  35.         subArbol->HijoDerecho=InsertaNodo(valor, subArbol->HijoDerecho);
  36.   return(subArbol);
  37. }
  38.  
  39.  

Mod: Segundo aviso, los códigos deben llevar etiquetas GeSHi (están ubicadas arriba de los emoticones a la derecha) los titulos de los temas deben ser descriptivos al problema, modificalo
3  Programación / Programación C/C++ / Arboles Binarios c++ en: 7 Julio 2015, 00:44 am
Buenas Tardes alguien me podria decir que significa within this contex; me dice que HijoIzquierdo,HijoDerecho y valor son privados, estoy usando Dev c++
Pongo mi codigo. De antemano gracias.
Código
  1. #include <time.h>
  2. #include <stdio.h>
  3.  
  4. #include <stdlib.h>
  5. #include <cmath>
  6. #include <iostream>
  7.  
  8. using namespace std;
  9.  
  10. class Nodo
  11. {
  12.    private:
  13.    int dato;
  14.    Nodo *HijoIzquierdo, *HijoDerecho,*Raiz;
  15.    public:
  16.        Nodo* InsertaNodo(int, Nodo*);
  17.        void EnOrden(Nodo*);
  18.        void PreOrden(Nodo*);
  19.        void PostOrden(Nodo*);
  20.        int Nivel_arbol(Nodo*);
  21.        int NumeroNodo(Nodo*);
  22.        int FE(Nodo*);
  23.        int Total_hojas2(Nodo*);
  24.        int Total_hojas(Nodo*);
  25.        int Suma_nodos(Nodo*);
  26.  
  27. };
  28.  
  29.  
  30.  
  31. //Declaro las funciones que tiene el programa
  32.  
  33. Nodo::Nodo* InsertaNodo(int valor, Nodo*subArbol)
  34. {
  35.   if(subArbol==NULL)
  36.   {
  37.      subArbol=new Nodo;
  38.      subArbol->HijoIzquierdo=subArbol->HijoDerecho=NULL;
  39.      subArbol->dato=valor;
  40.   }
  41.   else
  42.  
  43.      if(valor<subArbol->dato)
  44.         subArbol->HijoIzquierdo=InsertaNodo(valor, subArbol->HijoIzquierdo);
  45.  
  46.      else
  47.         subArbol->HijoDerecho=InsertaNodo(valor, subArbol->HijoDerecho);
  48.   return(subArbol);
  49. }
  50.  
  51.  
  52. void Nodo:: EnOrden(Nodo *subArbol)
  53. {
  54.   if (subArbol!=NULL)
  55.   {
  56.      EnOrden(subArbol->HijoIzquierdo);
  57.      printf("%d ", subArbol->dato);
  58.      EnOrden(subArbol->HijoDerecho);
  59.   }  
  60. }
  61.  
  62. void Nodo:: PreOrden(Nodo *subArbol)
  63. {
  64.   if (subArbol!=NULL)
  65.   {
  66.      printf("%d ", subArbol->dato);
  67.      PreOrden(subArbol->HijoIzquierdo);      
  68.      PreOrden(subArbol->HijoDerecho);
  69.   }  
  70. }
  71.  
  72. void Nodo:: PostOrden(Nodo *subArbol)
  73. {
  74.   if (subArbol!=NULL)
  75.   {
  76.  
  77.      PostOrden(subArbol->HijoIzquierdo);      
  78.      PostOrden(subArbol->HijoDerecho);
  79.      printf("%d ", subArbol->dato);
  80.   }  
  81. }
  82.  
  83. int Nodo:: Nivel_arbol(Nodo *subArbol)
  84. {
  85.    int a=0,b=0;
  86.   if(subArbol==NULL)
  87.   {
  88.      return 0;
  89.   }
  90.  
  91.   else
  92.   {
  93.      a=Nivel_arbol(subArbol->HijoIzquierdo)+1;
  94.      b=Nivel_arbol(subArbol->HijoDerecho)+1;
  95.   }
  96.   if(a>=b)
  97.      return a; //La raiz no se suma
  98.   else
  99.      return b; //La raiz no se suma
  100.  
  101. }
  102.  
  103. int Nodo:: NumeroNodo (Nodo *subArbol)
  104. {
  105.   if(subArbol==NULL)
  106.      return 0;
  107.  
  108.   else
  109.      return 1+NumeroNodo(subArbol->HijoIzquierdo)+NumeroNodo(subArbol->HijoDerecho);
  110. }
  111.  
  112. int Nodo:: FE(Nodo *subArbol)
  113. {
  114.   if(subArbol==NULL)
  115.      return 0;
  116.  
  117.   else
  118.      return Nivel_arbol(subArbol->HijoDerecho)-Nivel_arbol(subArbol->HijoIzquierdo);
  119. }
  120.  
  121. int Nodo:: Total_hojas(Nodo *subArbol)
  122. {
  123.   if(Raiz==NULL)
  124.      return 0;
  125.   if(Raiz->HijoDerecho==NULL && Raiz->HijoIzquierdo==NULL)
  126.      return 0;
  127.  
  128.   return Total_hojas2(subArbol);
  129. }
  130.  
  131. int Nodo:: Total_hojas2(Nodo *subArbol)
  132. {
  133.   if(subArbol==NULL)
  134.      return 0;
  135.  
  136.   if(subArbol->HijoDerecho==NULL&&subArbol->HijoIzquierdo==NULL)
  137.      return 1;
  138.  
  139.   return Total_hojas(subArbol->HijoDerecho) + Total_hojas(subArbol->HijoIzquierdo);
  140.  
  141.  
  142.   //return 0;
  143. }
  144.  
  145. int Nodo::Suma_nodos(Nodo *subArbol)
  146. {
  147.   if(subArbol==NULL)
  148.      return 0;
  149.  
  150.   return subArbol->dato + Suma_nodos(subArbol->HijoDerecho) + Suma_nodos(subArbol->HijoIzquierdo);
  151.  
  152. }
  153.  
  154. int main()
  155. {
  156.    Nodo Obj;
  157.  
  158.   int k,num,opc=1,valor,nivel=0,nodos=0,nivel_esperado,frecu=0,hojas=0;
  159.   Nodo *Raiz;
  160.   Raiz=NULL;
  161.  
  162.   while(opc!=11)
  163.   {
  164.      printf("1.- Insertar Arbol\n");
  165.      printf("2.- Recorrido en preorden\n");
  166.      printf("3.- Recorrido  en orden\n");
  167.      printf("4.- Recorrido en postorden\n");
  168.      printf("5.- Nivel del arbol\n");
  169.      printf("6.- Numero de Nodos\n");
  170.      printf("7.- Nivel Perfecto de Nodos\n");
  171.      printf("8.- Factor de Equilibrio\n");
  172.      printf("9.- Numero de Hojas\n");
  173.      printf("10.- Suma de Nodos\n");
  174.      printf("11.- Salir\n");
  175.      scanf("%d",&opc);
  176.  
  177.      switch(opc)
  178.      {
  179.         case 1:
  180.            printf("Inserta Numero para el Arbol\n");
  181.            scanf("%d",&num);
  182.            Raiz=Obj.InsertaNodo(num, Raiz);
  183.            //printf("Quieres seguir...");
  184.            break;
  185.  
  186.         case 2:  Obj.PreOrden(Raiz);
  187.            printf("\n");
  188.            break;
  189.  
  190.         case 3:  Obj.EnOrden(Raiz);
  191.            printf("\n");
  192.            break;
  193.  
  194.         case 4:  Obj.PostOrden(Raiz);
  195.            printf("\n");
  196.            break;
  197.  
  198.         case 5:
  199.            nivel=Obj.Nivel_arbol(Raiz);
  200.            printf("Nivel del Arbol %d\n", nivel-1);
  201.            break;
  202.  
  203.         case 6:
  204.            nodos=Obj.NumeroNodo(Raiz);
  205.            printf("Numero de Nodos %d\n", nodos);
  206.            break;
  207.  
  208.         case 7:
  209.            nivel_esperado = long(float(Obj.NumeroNodo(Raiz)))/log(2.0);
  210.            printf("El Nivel Perfecto %d\n", nivel_esperado);
  211.            break;
  212.  
  213.         case 8:
  214.            frecu=Obj.FE(Raiz);
  215.            printf("Factor de Equilibrio es %d \n", frecu);
  216.            break;
  217.  
  218.         case 9:
  219.            hojas=Obj.Total_hojas(Raiz);
  220.            printf("La cantidad de Hojas es %d\n",hojas);
  221.            //cout<<hojas<<endl;
  222.            break;
  223.  
  224.         case 10:
  225.            printf("La suma es %d\n", Obj.Suma_nodos(Raiz));
  226.            break;
  227.  
  228.  
  229.  
  230.      }
  231.      //system("cls");
  232.   }
  233.   system("PAUSE");
  234.   return 0;    
  235.  
  236. }

Mod: Los còdigos deben ir en etiquetas GeSHi, los temas deben ir en sus respectivos subforos, movido
4  Programación / Programación C/C++ / Ordenar una lista alfabeticamente en: 17 Mayo 2015, 13:10 pm
Buenas Noches, alguien que me pudiera ayudar en mi código. Lo estoy haciendo en Dev, y al momento de compilar me manda Done, me aparece la ventana negra y despues me sale otra ventana diciendome , que mi proyecto.exe dejo de funcionar.
// LISTA SIMPLEMENTE ENLAZADA CON MEMORIA DINAMICA
// QUE INSERTA ORDENADO LOS DATOS
// CON FUNCION QUE DESPLIEGA LOS DATOS Y RETORNA UN PUNTERO
// CON FUNCION QUE INVIERTE EL ORDEN DE LA LISTA SIMPLE
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
#include <iostream>
#include <string.h>
#include <stdlib.h>
#define n 3
using namespace std;
struct nodo_lista {
  public:
                char nom[31];
          char bol[10];
          float cal[n];
          float prom;
          struct nodo_lista *sig;  // puntero a estructura
 
           
            nodo_lista(nodo_lista *S=NULL)
          {
       prom=0.0;
       strcpy(bol,S->bol);
       strcpy(nom,S->nom);
       for(int i=0;i<n;i++)
       {   cal=S->cal;
      prom=prom+cal;
      }
      prom=prom/n;
      sig=NULL;
  } //constructor que inicializa las variables del nodo

 };

class lista1{
private:
    class nodo_lista *primero, * final, *nvo, *recorre;

public :
   lista1(){primero=final=recorre=nvo=NULL; }
   void inserta_nodo_ord(nodo_lista *D);
   nodo_lista *ver_nodos();
   void invertir(nodo_lista *lista);
   void eliminar_dato(char boleta[10]);
};

//funcion que inserta ordenado en la lista
void lista1::inserta_nodo_ord(nodo_lista *D) {
 nvo= new nodo_lista(D);
 if(nvo==NULL){cout<<"error en asignacion de memoria\n";getch();exit(1);}
 if(primero == NULL) primero=final=nvo ;
 // INICIALIZA LA PRIMERA DIRECCION Y LA FINAL
 else
  {
    if(strcmpi(nvo->bol,primero->bol)<=0)
    {  //el dato a insertar es menor al primero
      nvo->sig=primero;  // enlaza el nuevo nodo al inicio
      primero = nvo;   // inicio apunta al nodo nuevo
    }
    else
    {   // de otra forma se busca su lugar
      recorre= primero;                 // condicion de ubicacion
      while( (recorre->sig != NULL) && (strcmpi(nvo->bol,recorre->sig->bol)>0) )
         {
          recorre = recorre->sig;
         }
      nvo->sig = recorre->sig; //inserta y/o enlaza el nuevo nodo al nodo siguiente
      recorre->sig= nvo;   // inserta y/o enlaza al nuevo nodo al nodo anterior
    }
  }
}
void lista1::invertir(nodo_lista *lista)
{
  recorre=lista;
  nodo_lista *nva_lista=NULL;
  while(lista!=NULL)
  {
    recorre=lista->sig;
    lista->sig=nva_lista;
    nva_lista=lista;
    lista=recorre;
  }
  primero=nva_lista;
}
   // Elimina un numero de la lista
void lista1::eliminar_dato(char boleta[10]) {
   nvo=recorre=primero;
   if(strcmpi(nvo->bol,boleta) == 0){
      primero=nvo->sig;
      delete(nvo);
   }
   while((nvo->sig != NULL) && (primero!=NULL)){
       nvo=recorre;
       recorre=recorre->sig;
      if(strcmpi(recorre->bol,boleta) == 0){
         nvo->sig = recorre->sig;
         delete(recorre);
      }
   }
}
// MUESTRA EL CONTENIDO DE LA LISTA Y RETORNA UN PUNTERO DE LA LISTA SIMPLE
nodo_lista *lista1::ver_nodos() {
   recorre=primero;
   cout<<"entra a ver"<<endl;
   while((recorre != NULL) && (primero != NULL))
   {
     cout<<"\nBOLETA : "<<  recorre->bol<<endl;
     cout<<"NOMBRE : "<<  recorre->nom<<endl;
     for(int i=0;i<n;i++)
       cout<<"CALIFICACION["<<i<<"] = "<<  recorre->cal<<endl;
     cout<<"PROMEDIO = "<<  recorre->prom<<endl;

    recorre=recorre->sig;
   }
   return(primero);
}

int main()
{
 int i=0;char m,borra[10];
 int opc;
 lista1 Obj1C;     // objeto de la clase
 nodo_lista *Obj2E,*Obj3E;  // objeto de la estructura
 Obj2E=new nodo_lista;
 if(Obj2E==NULL)exit(1);
 clrscr();
 do
{
     cout<<"\n\nBOLETA : ";     cin>>Obj2E->bol;
     cout<<"\nNOMBRE : ";     gets(Obj2E->nom);
     for(i=0;i<n;i++)
      {
       cout<<"\nCALIFICACION["<<i<<"] = ";
       cin>>Obj2E->cal;
      }

   Obj1C.inserta_nodo_ord(Obj2E); // inserta dato
   cout<<"  Salir de Insertar s/n ? ";
   m=getch();i++;
  }
   while(toupper(m) != 'S');
 clrscr();
  //visualiza la lista y entrega la direccion inicial de la lista simple
 Obj3E=Obj1C.ver_nodos();
 cout<<"\n\nDesea ver invertida la lista? s(1),n(0) ";cin>>opc;
  if(opc)
{
  //invierte la lista simple
  Obj1C.invertir(Obj3E);
  //visualiza la lista y pierde la direccion inicial de la lista simple
  Obj1C.ver_nodos();
   }
  cout<<"\n\nDesea borrar un registro de la lista? s(1),n(0) ";cin>>opc;
  if(opc)
{
  cout<<"\nBoleta a borrar? : ";cin>>borra;
    Obj1C.eliminar_dato(borra);
    Obj1C.ver_nodos();
   }
 getch();
}
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines