Menú

Mostrar Mensajes

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

Mostrar Mensajes Menú

Mensajes - HRSLASH

#1
Muchas gracias a todos por las respuestas! Finalmente me he quedado con la que propuso rir3760 funciona perfecto!!  :D
#2
Hola SonaArtica! un consejo, en lugar de usar 5 vectores para mantener los datos de los alumnos, seria mejor usar una estructura y desp hacer un vector con ellas.

Ej

struct alumno{
    char nombre[20];
    long dni;
    double nota1;
    double nota2;
    double promedio;
};

int main(void)
{
    struct alumno alumnos[30];

    //sentencias

    return 0;
}

Tmb puede hacerse de forma dinamica, eso depende de cada uno..

Saludos!
#3
Programación C/C++ / Re: funciones wxdevc++
6 Noviembre 2012, 16:50 PM
Hola henkel! Bueno, lo que haria es crear una clase geometria por ej, y dentro de esta crear los metodos que resuelvan cada una de las formas, pasando a cada funcion los lados correspondientes a la figura, el radio en el caso del circulo. En los case solo llamaria al metodo correspondiente al elegido por el usuario. Las variables no se declaran en los case, lo que se puede hacer es declarar las tres variables al principio y pedir el ingreso del dato en los case de una, dos o las tres, dependiendo el caso y por ultimo pondria el switch dentro de un while si lo que quieres es que el programa finalice cuando el usuario ingrese 5 (while(op != 5))

PD: no usaria el system("pause"), se podria usar getchar() por ej.

Saludos!
#4
Hola foreros. Tengo este codigo y lo que quiero es que devuelva 1 si el simbolo pasado a la funcion es alguno de los definidos arriba. Habia pensado en hacerle un corrimiento de bits dependiendo la posicion del bit encendido. por ej >> (int)sqrt(0x3FF % sym + 1) pero el problema es que este metodo no funciona con algunas constantes.. como puedo saber la posicion del bit encendido para moverlo y que si el argumento concuerde con alguna constante devuelva 1?



#define BACKSLASH 0x0001
#define SLASH     0x0002
#define COLON     0x0004
#define ASTERISK  0x0008
#define QUESTION  0x0010
#define QUOTES    0x0020
#define LESS      0x0040
#define GREATER   0x0080
#define PIPE      0x0100

int is_symbol(int sym)
{
    return ((BACKSLASH | SLASH | COLON | ASTERISK | QUESTION | QUOTES | LESS | GREATER | PIPE) & sym);
}



Gracias de antemano!  :D
#5
Para que funcione hay que cambiar el AND logico del medio por un OR logico, de esta manera imprimira
el numero si este es >= 48 Y < 58 O >= 65 Y < 91


for(i=48; i<91; i++) {
   if (((i>=48)&&(i<58)) || ((i>=65)&&(i<91)))
       printf("%d\n", i);
}


Saludos!
#6
Programación C/C++ / Re: Problema con realloc - c
5 Noviembre 2012, 02:51 AM
naderST y rir3760 muchas gracias por sus respuestas. Finalmente he optado por hacer lo que dijo rir3760.  :D

Saludos!!
#7
Programación C/C++ / Re: Problema con realloc - c
5 Noviembre 2012, 02:18 AM
La idea era ir copiando caracter por caracter a un nuevo string sin los espacios en blanco e ir reservando memoria a medida que la fuera necesitando pq no se el tamaño del string que toma la funcion como argumento, puede ser variable
#8
Programación C/C++ / Problema con realloc - c
5 Noviembre 2012, 01:51 AM
Hola foreros! asi como dice el titulo, estoy teniendo problemas al usar esta funcion, cada vez que ejecuto el programa el sistema lo aborta ya que alega que le estoy pasando un puntero invalido a realloc, he intentado varias cosas pero no hay caso, el error persiste.. Aca el codigo:


char *borrar_espacios(const char *s)
{
char *temp = NULL;
int i;

temp = (char *) malloc(sizeof(char));
for (i = 0; *s != '\0'; ++s)
if (!isspace(*s)){
temp = (char *) realloc(temp, sizeof(char));
*temp = *s, ++temp, ++i;
}
*temp = '\n';
return temp - i;
}


Gracias de antemano!  :D
#9
Programación C/C++ / Re: Consulta punteros (C)
31 Agosto 2012, 21:19 PM
Gracias por las respuestas!!  :D
#10
Programación C/C++ / Consulta punteros (C)
28 Agosto 2012, 06:37 AM
Hola gente! he aquí la consulta:
Tengo un sector de n unsigned char en la memoria reservado con malloc y para manejar los datos del sector uso otro puntero q apunte al inicio pero lo declaro como unsigned short pq quiero extraer los datos de a 2 bytes, he aqui la cuestion, cuando hago avanzar el puntero obviamente lo hace de a dos bytes, en ciertos casos quiero hacerlo avanzar de a un byte por lo que hago lo sig p = (unsigned char *)p + 1 , que funciona, pero el compilador me lanza la advertencia de que estoy asignando punteros de tipo incompatible lo cual es razonable. Hay alguna manera de hacerlo correctamente??