• Sábado 18 de Mayo de 2024, 19:34

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.


Mensajes - Epa

Páginas: 1 2 3 [4] 5 6 ... 10
76
C/C++ / Re: Puntero incompatible
« en: Lunes 26 de Abril de 2010, 19:26 »
Perdon, acabo de leer, y dije culquier cosa  :unsure:

No devuelve un puntero null (ya que no tendrias la direccion que necesitas), sino un puntero void, o sea sin tipo, el c en la mayoria de los casos hace conversiones implicitas en las asignaciones de diferentes tipos, pero conviene hacerlas explicitas en muchos casos por precaucion.

77
C/C++ / Re: Un problema curioso con floor
« en: Domingo 25 de Abril de 2010, 01:29 »
Buenas.

Es curioso el problema, y no se porque se produce  :ph34r: , pero podes solucionarlo de esta manera:

Código: C++
  1.  
  2.  int espot(float n){
  3.      float i = 2, j;
  4.      while(i < n){
  5.          j = pow(n, 1/i);
  6.          if (  j == floor( j) )   )
  7.              return 1;
  8.          i++;
  9.      }
  10.      return 0;
  11.  }
  12.  
  13.  

Saludos

78
C/C++ / Re: Puntero incompatible
« en: Domingo 25 de Abril de 2010, 01:22 »
Buenas.

No se si sera esto, pero te faltan los parentesis:
auxiliar->CDS=crearAlbums();

Es raro igual que los malloc no te tiren error, malloc devuelve un puntero null, por lo que te conviene hace un cast, para evitar cualqueir inconveniente:

auxiliar=(_album*)malloc(sizeof(_album));

Espero que eso resuelva tu problema.
Saludos

79
C/C++ / Re: Plantillas en C++ ejercicio
« en: Sábado 17 de Abril de 2010, 03:15 »
La verdad que ese codigo tiene vario errores, tanto sintacticos como conceptuales.

La varaible Pila, la cual definis como Tipo Pila, despues la usas como un array Pila[].
en el constructor aparece la sentencia "return 0", los constructores no devuelven ningun valor.
el bucle en la funcion mostrar no tiene sentido, ya que en la primera pasada se sale de la funcion con el return
la funcion mostrar no tiene valor de retorno (es void) y estas tratando de hacer que devuelva Pila[indice], algo que esta an algun lugar de la memoria de anda a saver donde.
estas definiendo un contructor, y despues usas el constructor por defecto muestra01(), y al no tener seters tu clase es inutil.
no estoy seguro que pasara, pero no creo que sea nada bueno, cuando Tipo = int, ya que tendrias dos constructores con los mismos parametros (a cual se llama?)

La idea del codigo que te deje en el otro post, era que lo leas y trates de entenderlo, no para copiar y pegar pedasos

Te recomiendo que busques un manual y estudies un poco.  :comp:

Saludos

80
C/C++ / Re: micro. visual studio, C++
« en: Jueves 15 de Abril de 2010, 19:09 »
Aca hay algo de eso

http://winapi.conclase.net/

Saludos

81
C/C++ / Re: Lenguaje C: fscanf
« en: Jueves 15 de Abril de 2010, 19:06 »
estas reservando la memoria para aux[0]?

aux[0] = (char *)malloc(sizeof(char)*X); //X es la cantidad de elementos a reservar

Saludos

82
C/C++ / Re: Problemas sobre plantillas
« en: Jueves 15 de Abril de 2010, 01:45 »
seria algo asi

Código: C++
  1.  
  2.  
  3. template <class Tipo>
  4. class CMuestra
  5. {
  6.   public:
  7.     cMuestra(int c);
  8.     ~cMuestra();
  9.     void guardar(Tipo valor);
  10.     void mostrar();
  11.   private:
  12.     int indice;
  13.     int Ncantidad;
  14.     Tipo *pila_bufer;
  15. };
  16.  
  17. template <class Tipo>
  18. cMuestra<Tipo>::cMuestra(int c)
  19. {
  20.   indice = 0;
  21.   pila_bufer = new Tipo[c];
  22.   Ncantidad = c;
  23. }
  24.  
  25. template <class Tipo>
  26. cMuestra<Tipo>::~cMuestra()
  27. {
  28.   delete[] pila_bufer;
  29. }
  30.  
  31.  
  32. template <class Tipo>
  33. void cMuestra<Tipo>::guardar(Tipo valor)
  34. {
  35.   if(indice < Ncantidad)
  36.   {
  37.     pila_bufer[indice] = valor;
  38.     indice++;
  39.   }
  40. }
  41.  
  42. template <class Tipo>
  43. void cMuestra<Tipo>::mostrar()
  44. {
  45.   if(indice >= 0)
  46.   {
  47.     cout << pila_bufer[indice] << endl;
  48.     indice--;
  49.   }
  50. }
  51.  
  52.  

Saludos

83
C/C++ / Re: Problemas sobre plantillas
« en: Jueves 15 de Abril de 2010, 00:21 »
en tu codigo Ncantidad es un constante (simbolica), no una variable, por lo que no le podes cambiar el valor deurante la ejecucion.

Tendrias que hacer que sea una variable (int Ncantidad) perteneciente a la clase, si la declaras de ambito publico va a ser accesible desde todas las funciones, sino se la tenes que pasar como parametro a cada funcion.

Tene en cuanta que esto:
 Tipo pila_bufer[Ncantidad];
no esta permitido con variables, por lo que vas a tener que reemplazarlo por algo como

Tipo *pila_bufer;

y despues en el contructor de la clase

pila_bufer = new Tipo[Ncantidad];

y luego en el destructor

delete[] pila_bufer;

ahi podes trabajar con pila_bufer como se fuese una array, por ejemplo pila_bufer[8] = variable;

Saludos

84
C/C++ / Re: Proceso siempre activo
« en: Miércoles 14 de Abril de 2010, 23:27 »
Muchas gracias por las respuestas, se soluciono con el peekmessage.

El codigo que puse es solo una partecira, que me parecia relevante al tema.

No se si es totalmente necesario que sea con ventanas, pero necesito que el usuario pueda iniciar y parar las tareas, y modificar ciertos aprametros sin que esto interfiera (demasiado) en la ejecucion de las tareas. Por lo que me parecio que iba a ser mas sencillo de esa manera.

gracias y saludos

85
C/C++ / Re: micro. visual studio, C++
« en: Miércoles 14 de Abril de 2010, 23:23 »
No se si visual c++ tiene otra forma de hacerlo, ni entiendo que es lo que queres hacer.
Pero podes probar con algun manual de programacion c++ con API's.
Quizas es eso lo que buscas.

Saludos

86
C/C++ / Re: Paso de estrucciones a funciones
« en: Miércoles 14 de Abril de 2010, 23:17 »
La verdad que creo que no tiene mucho sentido definir una estructura privada a un bloque.

creo que la forma mas conveniente es:

Código: C++
  1.  
  2. struct cosa
  3. {
  4.     int a;
  5.     int b;
  6.     int c;
  7. };  /*Definicion del tipo struct cosa*/
  8.  
  9. int a()
  10. {
  11.    struct cosa dato; /*declaracion de la varaible dato de tipo struct cosa*/
  12.    ...
  13.    retval = b(&dato);
  14.      
  15. }
  16.  
  17. int b(struct cosa *puntero)
  18. {
  19.    ...
  20. }
  21.  
  22.  
  23.  

de ese modo la cariable dato es local a la funcion a, mietras que el tipo struct cosa es global (o local al modulo)

Espero que eso aclare tu duda.

Saludos

87
C/C++ / Re: Problemas sobre plantillas
« en: Miércoles 14 de Abril de 2010, 23:07 »
Buenas.
Fijate de usar etiquetas de codigo para que sea mas facil leer.


Código: C++
  1.  
  2. #define Ncantidad
  3.  
  4. if(indice==Ncantidad)
  5.  
  6.  

Estas definiendo Ncantidad como una constante simbolica VACIA, cuando el preprocesador lee tu codigo, reemplaza Ncantidad por nada, por lo que al momento de compilar tu codigo queda:
if(indice==)
Lo que obviamente presenta un error de semantica.
Eso tambien te deberia generar errores en otros lugares del programa, como en los bucles for.

deberias darla un valor a esta constante, como
#define Ncantidad 50

Saludos

88
C/C++ / Proceso siempre activo
« en: Lunes 29 de Marzo de 2010, 23:27 »
Buenas.
Aca aparezco con una nueva consulta, haber si alguien me puede dar una manito.

Hice un programa (de tipo ventana en windows) que tiene que realizar una tarea cada un determinado tiempo, pero resulta que el temporizador solo funciona si la ventana tiene el foco y no esta minimizada.
Alguien sabe como puedo hacer para que el proceso siga corriendo siempre?

Por si sirve de algo esta es mas o menos la forma en que funciona:

Código: C++
  1.  
  2. time_t ultimo;
  3.  
  4.    time(&ultimo);
  5.  
  6.     while (GetMessage (&messages, NULL, 0, 0))
  7.     {
  8.         TranslateMessage(&messages);
  9.         DispatchMessage(&messages);
  10.  
  11.         if (count(&ultimo))
  12.         {
  13.            SendMsg(chwnd, VK_F4);
  14.         }
  15.     }
  16.  
  17.  
  18.  
  19. bool count(time_t *ultimo)
  20. {
  21.      time_t actual;    
  22.      time(&actual);
  23.      
  24.      if( actual >= (*ultimo + 300)){
  25.          *ultimo = actual;
  26.          return true;
  27.      }
  28.      return false;  
  29. }
  30.  
  31.  
  32.  
  33.  

Se agradece.
Saludos

89
C/C++ / Re: Pasar un arreglo completo como parametro de funcion
« en: Sábado 5 de Diciembre de 2009, 21:32 »
Buenas

cuando llamas a esta funcion
int cantidad(int v[])

lo que estas pasando es un puntero a un elemento de un vector de tipo int.


que alguien me corriga si me equivoco..

cuando declaras un variable de tipo array, automaticamente se reserva la memoria para todos los elementos del array, por lo que si usas el operador sizeof siempre te va a dar el tamaño total (siempre que lo uses en el bloque en dodne fue declarado el array) ya que lo que en realidad te devuelve es la cantidad de memoria reservada para la variable.
Quizas exista algun artilugio para resolver eso de la forma que queres, pero una forma que se me ocurre a mi es inicializar el vector con alguna bandera, y luego recorrerlo hasta la primera aparicion, obviamente esto sirve unicamente en caso de que el vector se llene de forma lineal.

No es un gran aporte, pero espero que sirva

Saludos

90
C/C++ / Re: paso de C a C++ - cosas raras
« en: Sábado 5 de Diciembre de 2009, 21:21 »
Cita de: "leotardo de bici"
fast es lejos, y call llamada ...

fast es rapido  :rolleyes:


todo lo que mencionas es propio de C, no una implementacion de c++

lo de #pragma, busca algo de informacion de directivas de preprocesador

en cuanto a -> podrias leer un poco de estructuras y punteros a estructuras.

saludos

91
C/C++ / Re: programa de adivinar un numero.
« en: Sábado 5 de Diciembre de 2009, 20:54 »
Buenas.

proba usar esta variante haber si funciona

Código: C++
  1.  
  2.     time_t rd;
  3.    
  4.     time(&rd);
  5.     srand(rd);
  6.  
  7.  

saludos

92
Software / Re: Recuperar datos disco formateado
« en: Jueves 3 de Diciembre de 2009, 17:20 »
ahora lo voy a probar.

muchas gracias!

93
Software / Recuperar datos disco formateado
« en: Jueves 3 de Diciembre de 2009, 08:22 »
Buenas.

No estoy seguro si es el lugar correcto para este post, cualquier cosa muevanlo por favor.

Tengo un problema muy grande, resulta que instale guindous en una particion de un disco que tengo, y no se si por error mio o que, y no se en que momento, el instalador me formateo la otra particion tambien, la cual tenia formato ext3 y contenia todos mis datos, entre ellos cosas importantes.

Alguien tiene idea si hay alguna forma de recuperar la informacion?

Muchas gracias de antemano.

Saludos

94
C/C++ / Re: Combinacion de un arreglo
« en: Lunes 30 de Noviembre de 2009, 05:13 »
buenas

fijate en eso, no se que tan eficiente sera, pero anda..
seguro si buscas por ahi encontras algo mejor

Código: C++
  1.  
  2.    int mat[5] = {0,1,1,1,0};
  3.    
  4.    for(int a = 0; a <= mat[0]; a++)
  5.       for(int b = 0; b <= mat[1]; b++)
  6.          for(int c = 0; c <= mat[2]; c++)
  7.             for(int d = 0; d <= mat[3]; d++)
  8.                for(int e = 0; e <= mat[4]; e++)
  9.                {
  10.                   if(a && mat[a])
  11.                      cout << 1;
  12.                   else
  13.                      cout << 0;
  14.                   if(b && mat[b])
  15.                      cout << 1;
  16.                   else
  17.                      cout << 0;  
  18.                   if(c && mat[c])
  19.                      cout << 1;
  20.                   else
  21.                      cout << 0;
  22.                   if(d && mat[d])
  23.                      cout << 1;
  24.                   else
  25.                      cout << 0;
  26.                   if(e && mat[e])
  27.                      cout << 1;
  28.                   else
  29.                      cout << 0;
  30.                   cout << endl;
  31.                };  
  32.  
  33.  

95
C/C++ / Re: Error en la main y error sintáctico antes de "int"
« en: Jueves 26 de Noviembre de 2009, 19:41 »
Buenas

En que plataforma trabajas y que compilador usas?

Que alguien me corrija si estoy mal, algunos compiladores no esperan que main devuelva valor, proba poner void main.

var == int V[], int elementos // este es el otro error

El operador == es de comparacion, no de asignacion, tenes que usar =.
Igualmente V lo declaras despues de esa asignacion, por lo que te va adecir que no existe.
en C una vez ejecutada la primera sentencia de un bloque no se pueden declarar mas variables.

float suma(var), resta(var), producto(var);
que es eso?
si son funciones, busca algo de info de como se trabaja con funciones en C, porque no esta de la forma adecuada ni en el lugar adecuado. :comp:


Saludos

96
C/C++ / Re: Estructura archivos .h y .c
« en: Jueves 26 de Noviembre de 2009, 19:31 »
Buenas.

Estas compilando en c o c++?
Tu archivo fuente tiene extension .c, si no me equivoco en C no hay typedef.

#include "tdades.h" <-- tdades o tdatos?

Saludos

97
C/C++ / Re: A ver si me pueden solucionar el problemita, gracias!
« en: Jueves 26 de Noviembre de 2009, 19:23 »
Buenas

Fijate que arriva del cuadro de texto para los menajes tenes una lsita ddesplegable para poneretiquietas de codigo, asi es mas facil leer.  :good:

Ahi estas incrementando el contador y evaluas los valores antes  de hacer la lectura, por lo que en la ultima lectura no se evalua el valor ingresado, o sea, sea el valor que sea no se incrementa ningun acumulador.
Lo que podrias hacer es sacar la lectura de afuera del while, y pasar la de adentro al principio.
 Igual fijate que si usas un contador inicializado en 0 y como condicion <= N, se va a ejecutar N+1 veces, si solo queres 5 pone < N.

Tambien proba de hacerlo con un ciclo for, va a resultar mas facil.

Espero haber podido ayudar  :good:

UTN  :beer:

98
C/C++ / Re: PROBLEMA CON EL AHORCADO
« en: Viernes 6 de Noviembre de 2009, 00:14 »
Buenas.

si pondes codigo usa etiquetas asi es mas facil leer.
La declaracion de las variables conviene hacerlas el principio de la funcion, y despues darle los valors, porqeu sino no vas a poder compilar en C en caso de requerirlo.
entre printf y f() no va espacio, es printf()

te recomiendo que busques info de funciones y bloques. Ya que hay algunos errores que posiblemente te compile pero no va a hacer lo que vos esperabas.
por ejemplo todo lo que queres que se ejecute al cumplirse una condicion if lo tenes que poner entre llaves, a menos que sea una sola sentencia.
if condicion  
{
sentencias;
}

los nombres de variables no van entre comillas.
el scanf lleva como argumento un puntero y no la variable.
el | es OR a nivel de bit, tenes que usar ||
la variable letra no esta declarada

y otras cosas...


sin ofender, mejor ponete a leer un poco..

saludos

99
C/C++ / Re: problema char* en linux
« en: Jueves 5 de Noviembre de 2009, 21:39 »
es una funcion propia, pero me parecio irrelevante el cuerpo, ya que el problema es cuando se pasa el argumento.

Código: C++
  1.  
  2. void pause(char *msg)
  3. {
  4.    cout << msg << endl << "Presione ENTER para continuar.";
  5.    fflush(stdin);
  6.    cin.get();  
  7. }
  8.  
  9.  

cuando hago el llamado a funcion como pause("mensaje");
me da un error de conversion de tipo.

se que hay una clase string, pero tendria que crear una variable, insentarle el texto y despues pasarla, o hay otra forma?
porque en ese caso se perderia el sentido ya que la unica idea es darle legibilidad y achicar un poco el codigo

gracias

100
C/C++ / problema char* en linux
« en: Jueves 5 de Noviembre de 2009, 20:18 »
Buenas, haber si alguien me puede ayudar con esta duda por favor.

Estoy haciendo un programita y quiero que sea multiplataforma. Lo hice en dev-cpp y ahora quiero arreglarlo para que me compile en linux.
Y estoy teniendo problemas con una funcion:

void pause(char *msg);

que tipo tendria que ser char* en linux?
 porque me da error de conversion cuando intento llamarla con una cadena como: pause("cadena");

Saludos y gracias

Páginas: 1 2 3 [4] 5 6 ... 10