• Domingo 28 de Abril de 2024, 23:57

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - o.ficu

Páginas: [1]
1
C/C++ / Problema de class que no entiendo
« en: Jueves 3 de Diciembre de 2009, 07:41 »
Hola a todos, tengo un inconveniente en este problema de clases que me dieron, me dice que implemente el programa usando Herencia y me dan esto para usar, ojo que las clases solo deben tener estas funciones:
Código: C
  1. #include<iostream>
  2. #include<stdlib.h>
  3. using namespace std;
  4. void Inicia(int &,int &,char*,char*,int &);
  5. class Coche{
  6.       private:
  7.               char placa[15],marca[25];
  8.               int afab;
  9.       public:
  10.              Coche();
  11.              Coche(char*,char*,int );
  12.              void Leer();
  13.              void Mostrar();
  14. };
  15.  
  16. class Recorrido:public Coche{
  17.       private:
  18.               int millas,glncons;
  19.       public:
  20.              Coche();
  21.              Coche(char*,char*,int );
  22.              void Leer();
  23.              void Mostrar();
  24. };
  25.  
  26.  
  27.  

Pregunte al profesor por que la clase recorrido no tenia sus propios constructores y me dijo que no era necesario que solo tenia que usar esos datos :S espero puedan ayudarme por que la verdad no se como resolver este problema y tengo examen en dos dias y me rompo la cabeza intentando resolverlo, busque informacion en todos lados pero no encuentro una solucion a esto, y preguntarle al profesor es como preguntar a una piedra, gracias de antemano por sus respuestas, gracias

2
Programación en C / CONSULTA ACERCA DE COMPILADORES
« en: Viernes 27 de Noviembre de 2009, 15:54 »
Hola a todos, la consulta que tengo es acerca sobre que compilador C es mejor para trabajar, estuve usando el CCS pero veo que muchos nombran otro tipo de programas y estoy en duda, mi otra consulta es si hay algun compilador pero para trabajar con c++, gracias a todos por su ayuda

3
C/C++ / Problemas en class
« en: Jueves 26 de Noviembre de 2009, 05:48 »
Hola a todos, espero puedan ayudarme, me estoy volviendo loco con esto, les pongo el programa para que me puedan entender:
Código: C
  1. #include<iostream>
  2. #include<stdlib.h>
  3. #include<math.h>
  4. #include<iomanip>
  5. using namespace std;
  6. #define PI 3.1416
  7.  
  8. class circulo{
  9.       protected:
  10.               int r;
  11.       public:
  12.              circulo(){r=0;}
  13.              circulo(int a){r=a;}
  14.              int getradio(){return r;}
  15.              float getarea(){return PI*r*r;}
  16. };
  17.  
  18. class ConoCircularRecto: public circulo{
  19.       private:
  20.               int h,g;
  21.       public:
  22.              ConoCircularRecto(){h=0;g=0;}
  23.              ConoCircularRecto(int rad,int alt);
  24.              ~ConoCircularRecto(){}
  25.              int  getaltura(){return h;}
  26.              float CalcularGeneratriz();
  27.              void VerDatos();
  28.              void AreaCono();
  29.              void VolumenCono();
  30.              friend ConoCircularRecto LEER(ConoCircularRecto P);
  31.              
  32. };
  33.  
  34. ConoCircularRecto::ConoCircularRecto(int rad,int alt)
  35. {      
  36.        r=rad;h=alt;
  37. }
  38.  
  39.          
  40. float ConoCircularRecto::CalcularGeneratriz()
  41. {    
  42.       return (sqrt((r*r)+(h*h)));
  43. }
  44.  
  45. void ConoCircularRecto::VerDatos()
  46. {
  47.      cout<<"nDATOS DEL CONO CIRCULAR RECTO"<<endl;
  48.      cout<<"Radiott:"<<getradio()<<" unidades";
  49.      cout<<"nAlturatt:"<<h<<" unidades";
  50.      cout<<"nGeneratrizt:"<<CalcularGeneratriz()<<" unidades";
  51. }
  52.  
  53. void ConoCircularRecto::AreaCono()
  54. {    float area;
  55.      area=(getarea())+(PI*getradio()*g);
  56.      cout<<"nEl Area est:"<<setprecision(2)<<setiosflags(ios::fixed|ios::showpoint)<<area<<" unidades cuadradas";
  57. }
  58.  
  59. void ConoCircularRecto::VolumenCono()
  60. {    float volumen;
  61.      volumen=(PI*getradio()*getradio()*h)/3;
  62.      cout<<"nEl Volumen est:"<<volumen<<" unidades cubicas"<<endl;
  63. }
  64.  
  65.  
  66. ConoCircularRecto LEER(ConoCircularRecto );
  67.  
  68. ConoCircularRecto LEER(ConoCircularRecto P)
  69. {    
  70.      int a,b;
  71.      cout<<"nRadiott:";cin>>a;
  72.      cout<<"nAlturatt:";cin>>b;
  73.      ConoCircularRecto P(a,b);
  74.      return P;
  75. }
  76.  
  77. main()
  78. {   ConoCircularRecto P(5,12);
  79.     P.CalcularGeneratriz();
  80.     P.VerDatos();
  81.     P.AreaCono();
  82.     P.VolumenCono();
  83.     cout<<"LECTURA DE DATOS"<<endl;
  84.     LEER(P);  //debe retornar el nuevo P con los valores pedidos en la función LEER
  85.     P.VerDatos();
  86.     P.AreaCono();
  87.     P.VolumenCono();
  88.  
  89.     system("PAUSE");
  90.     return 0;
  91. }
  92.  

Mi problema es que luego de llamar a la función LEER, me sigue dando los resultados de la primera clase P osea radio 5 y altura 12, espero puedan orientarme y darme la solución a este problema, gracias a todos de antemano.
Oliver

4
C/C++ / Ayuuudaa en este error
« en: Jueves 12 de Noviembre de 2009, 04:38 »
Hola a todos, espero alguien pueda ayudarme, en el siguiente programa que les dejo, me presenta el siguiente error: "request for member 'numTlf' in 'llam', which is of non-class type 'llamada[100]' " este error me marca en la llamada consumo(usuarios,n,llam.numTlf,f.mes); Gracias de antemano por su ayuda.
El código del header es:
Código: C
  1. #ifndef LLAMADA_H
  2. #define LLAMADA_H
  3.  struct fecha{int dia,mes,anio;};
  4.  
  5.  
  6. struct llamada{
  7.        fecha f;
  8.        char numTlf[14];        // numero al cual se llama
  9.        float tiempo;             // linea control
  10.        }llam[100];
  11.  
  12. #endif
  13.  
Y el programa:
Código: C
  1. #include<iostream>
  2. #include<stdlib.h>
  3. #include<stdio.h>
  4. #include<string.h>
  5. #include "header.h"
  6. using namespace std;
  7.  
  8. const int N=1000;
  9.  
  10. struct LineaControl{
  11.        char numero[14];
  12.        char usuario[40];
  13.        int nllam;              //numero de llamadas
  14.        llamada llam[100];       //array de llamadas
  15.        }usuarios[N];
  16.        
  17.  
  18. void IngresaDatos(LineaControl usuarios[],int &n);      
  19. void ImprimeDatos(LineaControl usuarios[],int &n);  
  20. void BuscaPersona(LineaControl usuarios[],int &n);                                                      
  21. void consumo(LineaControl usuarios[],int &n,char numTlf,int mes);
  22.  
  23. void IngresaDatos(LineaControl usuarios[],int &n)
  24. {    
  25.       fflush(stdin);
  26.       cout<<"tttIngrese el numero de telefono del "<<n<<" cliente: ";    gets(usuarios[n].numero);fflush(stdin);cout<<endl<<endl;
  27.       cout<<"Ingrese el nombre del cliente: ";                gets(usuarios[n].usuario);fflush(stdin);
  28.       cout<<"Ingrese cantidad de llamadas que realizo el cliente: ";    cin>>usuarios[n].nllam;fflush(stdin);
  29.       cout<<endl;
  30.      
  31.       cout<<"Ingreso de datos de llamadas que realizo el cliente "<<usuarios[n].usuario<<endl;
  32.       for(int i=1;i<=usuarios[n].nllam;i++)
  33.       {   cout<<"Ingrese el "<<i<<" numero: ";       gets(usuarios[n].llam[i].numTlf); fflush(stdin);
  34.           cout<<"Ingrese la duracion de la llamada: ";    cin>>usuarios[n].llam[i].tiempo; fflush(stdin);
  35.           cout<<endl<<"Ingrese la fecha que se realizo la llamada dd/mm/aaaa: ";   cin>>usuarios[n].llam[i].f.dia>>usuarios[n].llam[i].f.mes>>usuarios[n].llam[i].f.anio;fflush(stdin);
  36.           cout<<endl;
  37.       }
  38.  
  39.       n++;
  40. }  
  41.  
  42.  
  43. void ImprimeDatos(LineaControl usuarios[],int &n)
  44. {    
  45.       cout<<"Los datos ingresados fueron: "<<endl<<endl;
  46.       for(int i=1;i<n;i++)
  47.      
  48.       {
  49.       cout<<"..................................................."<<endl;
  50.       cout<<"numero del cliente: "<<usuarios[i].numero;               cout<<endl<<endl;
  51.       cout<<"nombre del cliente: "<<usuarios[i].usuario;cout<<endl;
  52.       cout<<"datos de llamadas que realizo el cliente "<<usuarios[i].usuario<<endl;
  53.         for(int j=1;j<=usuarios[i].nllam;j++)
  54.         {   cout<<usuarios[i].llam[j].numTlf<<endl;
  55.             cout<<"duracion de la llamada: "<<usuarios[i].llam[j].tiempo<<endl;
  56.             cout<<"fecha que se realizo la llamada dd/mm/aaaa: "<<usuarios[i].llam[j].f.dia<<"  "<<usuarios[i].llam[j].f.mes<<"  "<<usuarios[i].llam[j].f.anio;
  57.             cout<<endl<<endl;
  58.         }
  59.       cout<<"..................................................."<<endl;
  60.       }
  61. cout<<endl<<endl;
  62.  
  63. }
  64. void consumo(LineaControl usuarios[],int &n,char numTlf,int mes)
  65. {
  66.      int posic;
  67.       for(int i=1;i<n;i++)
  68.       {    float mayor=0;
  69.            for(int j=1;j<=usuarios[i].nllam;j++)  //busco quien tiene el tiempo mayor
  70.            {   if(usuarios[i].llam[j].tiempo>mayor)
  71.                {mayor=usuarios[i].llam[j].tiempo;}
  72.            }
  73.            for(int j=1;j<=usuarios[i].nllam;j++)  //busco a quien le pertenece el numero mayor
  74.            {    if(mayor==usuarios[i].llam[j].tiempo)
  75.                 {posic=j;}  //marco la posicion
  76.            }
  77.            cout<<"La llamada mas larga que realizo "<<usuarios[i].usuario<<" fue al numero: "<<usuarios[i].llam[posic].numTlf<<" y duro: "<<usuarios[i].llam[posic].tiempo<<" en el mes de "<<usuarios[i].llam[posic].f.mes<<endl;
  78.      
  79.       }
  80.  
  81.  
  82. }
  83.  
  84. void BuscaPersona(LineaControl usuarios[],int &n)
  85. {    int i,j,pos=-1;
  86.      char busca[30],k;
  87.  
  88.      cout<<"Ingrese el nombre de la persona a buscar: "; gets(busca);
  89.      for(i=0;i<n;i++)
  90.      {   if(strcmp(busca,usuarios[i].usuario)==0)
  91.          {   cout<<"ttDatos de la persona"<<endl;
  92.              cout<<"Nombre: "<<usuarios[i].usuario<<endl;
  93.              cout<<"Numero: "<<usuarios[i].numero<<endl;
  94.              pos=i;
  95.          }
  96.      }
  97.      if(pos==-1)
  98.      { cout<<"No se encontro persona"<<endl;}
  99.      cout<<"desea buscar otra persona s/n: ";   cin>>k;
  100.  
  101.      
  102. }
  103.  
  104. void BorraPersona(LineaControl usuarios[],int &n)
  105. {    int pos=-1,i;
  106.      char elimina[30];
  107.      cout<<"Ingrese el nombre de la persona a eliminar: "; gets(elimina);
  108.      for(i=0;i<n;i++)
  109.      {   if(strcmp(elimina,usuarios[i].usuario)==0)
  110.          { pos=i;break;}
  111.      }
  112.      if(pos==-1)
  113.      cout<<"ttNo se encontro a la persona"<<endl;
  114.      else
  115.      for(i=pos+1;i<n;i++)
  116.      {   usuarios[i-1]=usuarios[i];}
  117.      n--;
  118. }
  119.      
  120. int main()
  121. {    int personas,i,n=1;
  122.      fecha f;
  123.      
  124.      cout<<"Ingrese la cantidad de personas a procesar: ";  cin>>personas;
  125.      
  126.      for(i=1;i<=personas;i++)
  127.      {    IngresaDatos(usuarios,n);
  128.      
  129.      }
  130.      ImprimeDatos(usuarios,n);
  131.      BuscaPersona(usuarios,n);
  132.      consumo(usuarios,n,llam.numTlf,f.mes);
  133.      
  134.      
  135.      system("PAUSE");
  136.      return 0;
  137. }
  138.  
  139.  

5
C/C++ / Una de punteros y otra de recursividad
« en: Martes 20 de Octubre de 2009, 03:01 »
Hola, aca tengo dos pequeños problemas que intento solucionarlo de la manera exactamente en como me piden.
1.- Por ejemplo el siguiente problema con punteros me dicen que si ingreso por ejemplo uuddgge me debe imprimir: 2u2d2g1e  lo cual es facil, pero no se como hacerlo cuando me dicen que la funcion encripta=z mejor dicho z=encripta, supongo que la funcion encripta me debe retornar el 2u2d2g1e y eso es el valor de z, en el programa les explico mejor para no confundirlos:  
Código: C
  1.  
  2. #include<iostream>
  3. #include<stdlib.h>
  4.  
  5. using namespace std;
  6. char *encripta(char *p)
  7. {    int i,c;
  8.      for(i=0;i<strlen(p);i++)
  9.      {     c=1;
  10.            while(*(p+i)==*(p+i+1))
  11.            {   c++;
  12.                i++;
  13.            }
  14.            cout<<c<<p[i];
  15.      }
  16.  
  17. }
  18. int main()
  19. {    char x[500],*z;
  20.      cout<<"Ingrese una cadena: ";
  21.      gets(x);
  22.      z=encripta(x);   //Cuando llamo solo a la funcion imprime lo que quiero
  23.      cout<<"La cadena enriptada es: "<<z<<endl;  //El problema es aca que no se como hacer para el z tenga los valores de mi funcion encripta
  24.      system("PAUSE");
  25.      return 0;
  26. }
  27.  


2.- Es un problema de recursividad, la cual indica que ingreso un numero por ejemplo 184763 y tiene que impirmir 8476 es decir elimina el primer y ultimo digito; esto pude hacerlo pero como siempre viene el problema de que en la funcion solo tenga un parametro intente hacerlo de miles de maneras pero de hechi que hay muchas cosas teoricas que no se o no se como aplicarlas, les explico en el mismo programa:
Código: C
  1.  
  2. #include<iostream>
  3. #include<stdlib.h>
  4. #include<math.h>
  5. using namespace std;
  6. int EliminaDigito(int n,int&i,int&s,int num[57]);   //En el problema me dicen que solo tenga como parametro int EliminaDigito(int n)
  7. int EliminaDigito(int n,int &i,int &s,int num[57])
  8. {    int k;
  9.      if(n>0){  s++;         //cuento el numero de digitos
  10.                
  11.                SeparaDigito(n/10,i,s,num);
  12.                num[i]=n%10;
  13.    
  14.                if(i==s)//cuando el num de digitos e i sean iguales hago las sgtes operaciones para eliminar el primer y ultimo numero
  15.                {
  16.                  n=(n-(num[1]*pow(10,s-1)));
  17.                  k=n/10;}
  18.                i++;
  19.                }//FIN DE IF
  20.  
  21.                return k;
  22. }
  23.  
  24. int main()
  25. {    int n,m,j,i=1,num[57],s=0;
  26.      cout<<"Cual es el numero: ";  cin>>n;
  27.      cout<<"nEl numero actual es: "<<n<<endl<<endl;
  28.      if(n>0&&n<=99){cout<<"0"<<endl;}
  29.      else
  30.      m=SeparaDigito(n,i,s,num);  //Solo me piden que la funcion sea EliminaDigito(int n)
  31.      cout<<"El nuevo numero es: "<<m<<endl<<endl;
  32.  
  33.      system("PAUSE");
  34.      return 0;
  35. }
  36.  


Graciaspor su ayuda nuevamente

6
C/C++ / Explicacion en recursividad
« en: Domingo 18 de Octubre de 2009, 02:05 »
Hola, casi paresca un poco tonta mi pregunta pero en el siguiente programa que transforma un numero de base a base 2:
Código: C
  1. #include<iostream>
  2. #include<stdlib.h>
  3.  
  4. using namespace std;
  5. void binario(int n);
  6.  
  7.  
  8. int main()
  9. {    int n;
  10.      cout<<"Ingrese numero en base 10: ";
  11.      cin>>n;
  12.      cout<<"el numero en binario es: ";
  13.      binario(n);
  14.      system("PAUSE");
  15.      return 0;
  16. }
  17. void binario(int n)
  18. {  
  19.      if(n>0){
  20.              binario(n/2); // llama recursivamente a la funcion
  21.              cout<<n%2;}// aca es mi duda, por q imprime todos los digitos si el cout esta puesto cuando recien termina la ultima llamada a la funcion, por q imprime todos los digitos y no solo el ultimo?????
  22. }
  23.  
Gracias por u ayuda

7
C/C++ / Como declaro miembros de una struct en una funcion
« en: Viernes 16 de Octubre de 2009, 00:04 »
Hola espero puedan ayudarme, siempre tengo problemas con esto, el problema es que no se como declarar un miembro de struct en una funcion, por ejemplo si me struct es: struct Datos{
                                 char nombre[];
                                 char apellidos[];
                                 struct direccion{
                                 char avenida[];
                                 char ciudad;
                                 struct telefonos{
                                 char casa[];
                                 char movi[];};
                                 };
                                 };
si deseo por ejemplo una funcion con argumentos de Datos seria:  void(Datos p[]) pero si deseo declarar por ejemplo una funcion con argumento del numero de telefono de la casa, como lo hago??? void(Datos.telefonos.casa)??? no se como declarar cuando una estructura esta dentro de otra, espero puedan ayudarme, gracias.
Oliver

Páginas: [1]