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 - eferion

#661
Varias cosas:

1. No escribas en negrita, no se te va a entender mejor ( más bien todo lo contrario ).

2. El código lo metes dentro de las etiquetas GeSHi correspondientes ( en tu caso C )

3. y1 es una función declarada en math.h... deberías plantearte cambiar los nombres o, mejor aún, agrupar esas variables en estructuras y, por supuesto, evitar el uso de variables globales.

4. Variables con nombres tan guays como x, xx, x1, ix no me dicen absolutamente nada... ¿tanto cuesta usar nombres que clarifiquen un poco el código? O al menos añade comentarios al código.

5. En la siguiente línea:


if( x== 2);
 condicion =false;


te sobra el primer punto y coma ';'... ese if así como está, simplemente, no hace nada.

6. Tu código es un puñetero lío. Un ejemplo:


if (x > 20)
{
 x = 2;
 y = (rand() % 80) + 6;
           
 if( x== 2);
   condicion =false;
}


Suponiendo corregido el tema del punto y coma... a ver si lo entiendo, hacemos x=2 y luego... si x=2 entonces condicion = false???? qué sentido tiene ese if ahí ??

7. Las coordenadas de generación de los asteroides están mal:


if (x > 20)
{
  x = 2;
  y = (rand() % 80) + 6;
}


La pantalla tiene 80 columnas ( X ) no 80 filas ( Y ).

Pondré más cosillas cuando tenga tiempo...
#662
Cita de: m@o_614 en 20 Marzo 2014, 01:44 AM
muchas gracias a todos por sus respuestas, nunca me hubiera dado cuenta que era la función pow() la que me daba problemas, otra duda: por qué en la linea

entero = operando-'0';

le ponen -'0' en vez de -48??

Dicho de otra forma:


ASCII      int       bin         oct        hex
'0'        48        0b110000    060        0x30


Puedes utilizar cualquiera de las 5 opciones porque todas, al fin y al cabo, significan exactamente lo mismo.
#663
Como te comentó Gh057 el problema por el que no compila se encuentra en la línea

Código (cpp) [Seleccionar]
if(c==2);{

Al tener ese punto y coma el if, simplemente, termina ahí, luego se abren unas llaves que ya no están relacionadas con el if y el else se queda huérfano.

Hay que tener bastante cuidado al poner los ';' en C y C++... ya que si no el compilador da errores que pueden llegar a ser bastante complicados de encontrar.
#664
Cita de: leosansan en 19 Marzo 2014, 16:37 PM
.....y me has sacado un as que tenía en la manga para otros temas  ;)

jajajaja.

Vaya por dios, siento haberte fastidiado el plan... la próxima avísame por MP para no meter la pata ;)
#665
Yo le pondría un parche al cálculo de la potencia propuesto por leosansan.


int obtenerNumero(char *operando,int base)
{
    int i,potencia,num_decimal = 0,lon,entero=0,x = 1;
    lon = strlen(operando);
    for(i = lon-1,potencia = 1;operando[i];i--,potencia*=base) // <--- AQUI
    {
        if(esLetraBase16(operando[i]))
           entero = hexadecimal(operando[i]);
        else
           entero = operando[i]-'0';
        num_decimal+= potencia*entero;
        printf("%d\n",num_decimal);
    }
    printf("[%d]",num_decimal);
    return num_decimal;
}


Básicamente para que funcione en bases que no sea la decimal.
#666
Programación C/C++ / Re: tableros
19 Marzo 2014, 12:36 PM
No lo comentaba como algo a añadir en el proceso de cifrado.

Yo me refería para que el texto cifrado pudieses pegarlo en el foro sin distorsión.

Básicamente coger el código ya cifrado y pasarlo a base64 para que el código resultante no tenga caracteres extraños que el foro pueda modificar.
#667
Programación C/C++ / Re: tableros
19 Marzo 2014, 11:28 AM
Cita de: leosansan en 19 Marzo 2014, 10:59 AM
Aunque me temo que el procesador de esta página "baile" algunos símbolos extraños para él.

Conviértelo a base64 y así no habrá problemas con el código cifrado... total, el que quiera descifrarlo únicamente tiene que añadir la decodificación de base 64 antes de ponerse a decodificar en serio.
#668
6
36
536
5536
65536
[65536]

A mi me sale el resultado correcto.
#669
Programación C/C++ / Re: mpz_set_str()
18 Marzo 2014, 15:50 PM
¿Es esto lo que buscabas?


Assignment Functions


These functions assign new values to already initialized integers (see section Initialization and Assignment Functions).

Function: void mpz_set (mpz_t rop, mpz_t op)
Function: void mpz_set_ui (mpz_t rop, unsigned long int op)
Function: void mpz_set_si (mpz_t rop, signed long int op)
Function: void mpz_set_d (mpz_t rop, double op)
Function: void mpz_set_q (mpz_t rop, mpq_t op)
Function: void mpz_set_f (mpz_t rop, mpf_t op)
   Set the value of rop from op.

Function: int mpz_set_str (mpz_t rop, char *str, int base)
   Set the value of rop from str, a '\0'-terminated C string in base base. White space is allowed in the string, and is simply ignored. The base may vary from 2 to 36. If base is 0, the actual base is determined from the leading characters: if the first two characters are `0x' or `0X', hexadecimal is assumed, otherwise if the first character is `0', octal is assumed, otherwise decimal is assumed.
   This function returns 0 if the entire string up to the '\0' is a valid number in base base. Otherwise it returns -1.


#670
Programación C/C++ / Re: Ayuda
18 Marzo 2014, 13:43 PM
Un concepto bastante utilizado en programación es el de no "reinventar la rueda".

Normalmente, salvo que se esté aprendiendo o se quiera realizar algún tipo de práctica concreta, no se suele reescribir algo que ya existe y cumple tus expectativas.

La razón es simple: es caro ( en tiempo y recursos ) diseñar software estable. Tienes que diseñar la arquitectura, implementarlo, probarlo, corregir errores, dar mantenimiento... Aprovechando algo que ya ha pasado por estos pasos te ahorras un tiempo precioso que puedes aprovechar en mejorar tu propio código.

Por defecto, los ejecutables en Windows tienen todos la extensión .exe, da igual que sea el office, el navegador web, el block de notas o la calculadora, luego este punto no debería preocuparte.

En cuanto al uso de una base de datos... depende de lo que la aplicación necesite almacenar. Si es poca información, una base de datos no sale a cuenta porque el código necesario para programar esta capa suele ser bastante mayor que si guardas información en archivos de texto.

Si no te quieres complicar mucho la vida y buscas reducir la curva de aprendizaje al máximo casi te recomiendo que mires .Net o Java, sus frameworks y la forma de programar seguramente te sean más familiares que si bajas al nivel de C o C++.

Además estos frameworks ya vienen con una capa gráfica, mientras que en C o C++ tendrías que buscarte una ( Qt, GTK, wxWidget, WinApi, ... ).