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

#51
He aqui la version 1.1 del software (tipo: Calculadora suma), esta ya incorporada con la gestion de eventos (teclado numerico numpad) ya que la version 1.0 solo tenia knumpad, ahora todo organizado con respecto a la inundacion de ficheros que abian, las libs .h, .c, .jpg, .fonts, etc, bien distribuidas no olviden copiar los .dll a c:\windows\system32\, es una compilacion multiarchivo y no olviden tener las carpetas en un mismo directorio.

No utilice la funcion "switch" por que se complica mas la gestion de eventos, ya que cada vez que gestiono un evento, tambien se tiene que verificar si se dejo de pulsar la tecla, pero luego optimizare mas el codigo, para lograr esto de la gestion con "switch".

Con relacion a los includes tambien para una implementacion del codigo, intentare hacer una programacion condicional, dicho a si "Todos los ficheros cabeceras, se incluiran en la ejecucion, de a cuerdo con la plataforma corrida (S.O)".

Puede ser algo como esto:

#ifdef __UNIX__
#include <usr/lib/.h> || include <lib/.h>
else
#include <lib/.h> //siendo lib el directorio original de SDL
#endif


Salvedad:La carpeta bin, no va en los directorios borrar por favor antes de ejecutar/compilar y otras cosa. Si quieres modificar el tamaño de los botones intenta de no pasarte de un rango de dimensiones 114 x 39, ya que el tamaño de los botones es independiente del codigo, pero no de modificaciones no soportadas por este rando, ya intentare implementar la libreria components.h para que soporte todo esto. Fue muy buena colaboracion de todos, sigan colaborando y aprenderemos mas aun !!  ;-)


Aqui en link con el software actualizado a 1.1  ;-)

codigo: bc29d5f8

http://uploading.com/files/get/bc29d5f8/Proyecto_Calc_C_SDL.rar
#52
Hola buenas, Alex Mtx : Si comprendo perfectamente, pierde portabilidad por los linkeos y la inclusion de las libs, por no poner enfasis en su uso "SDL\SDL.h, etc".  Pero si te fijas solo tienes que linkear y ya esta, muy bien la correccion, sobre el uso de "else if" si tengo que optar por el uso de "switch" a si optimizo mas el codigo, tambien las declaraciones de variables abusivas dentro del mismo "main.c" hace el codigo imposible de leer, en el caso de las variables no inicializadas eso si lo tube en cuenta lo unico que se me paso, sobre la distribucion de ficheros incluyendo "libs, T Fonts, .jpg, .h, .c y .exe" si deberian ir, en directorios a partes. Muy buena tu correccion gracias Alex Mtx  ;-)

EI: juntando mensajes.

Cita de: avesudra en  6 Agosto 2012, 14:12 PM
Está muy bien teniendo en cuenta que es con SDL , una cosa ¿porque solo puedo poner números con el numpad? Gracias por el aporte y por el código.
PD: De momento yo la llamaría sumadora jajaja.
¡Un saludo!

Hola avesudra: Si tienes razon, no gestiona los eventos del teclado numerico secundario (teclado numerico por debajo de las teclas F0-F12), esto pasa por que aun no gestiono, esos tipos de eventos, pero ya para otras versiones estara completo. Gracias por tu observacion avesudra  ;-)
#53
Hola a todos!! Desarrolle una calculadora, el objetivo del software es animar a los programadores iniciados/avanzados en C , ya que veo muchas dudas sobre con cual API para GUI necesitan, si QT, o GTK soporta perifericos, si es facil, etc. Muchas dudas, que me hicieron codear este ejemplo, esta hecho en puro C del estandar ANSI, claro la GUI la implemente con SDL, es multiplataforma, solo tienen que compilar en GNU/Linux o cualquier otro S.O y no necesita modificacion de codigo.

Tiene algunos errores, luego se daran cuenta, y tambien le falta los efectos cuando accionamos encima de los botones, pero si tienen los de acciones pulsados, y luego para la version 1.1 de este mismo ejemplo, les traere todo completo. Al que se animen a criticar y ayudar con el desarrollo de la libreria no hay problemas, esta todo el codigo, ejecutable, fonts, jpg, libs y makefile, generado por SDL.

Critiquen, posteen, desahogo total !!!  ;-)

Aqui les dejo el link de descarga:

Codigo: 2m1bdemf

http://uploading.com/files/get/2m1bdemf/Proyecto_Calc_C_SDL.rar
#54
Mira abreu20011: Si andas en un compilador GCC en tu caso, dev-c++ compila con GCC, la causa a tu problema es que a veces cuando el IDE intenta buscar los binarios, libs e includes, no los encuentra porque pierde el enlce a los respectivos directorios. Verifica bien la configuracion de tu IDE y si el problema persiste entonces reinstala el IDE. Otra causa puede ser cuando incluyes libs que hacen llamadas desde si mismas a otras libs, por ejemplo windows.h hace llamdas a stdlib.h y tambien a winsock.h, sino reinicia tu ordenador y vuelve a iniciar el IDE y compila, si el problema sigue entonces postea nuevamente !!

Suerte amigo !! :xD
#55
Hola !! Anteriormente habia posteado una duda con la suma de vectores, no podia manejar la recepcion de valores absolutos en una variable tipo entero vector a una tipo entero, ps resolvi todo gracias a la ayuda de algunos users del foro y posteo en otro hilo para no revivir el tema por su tiempo de caducidad !!


#include <stdio.h>

int elevar(int valor, int num)
{
    int vector[num];
    const int potencia=10;
   
    for(int i=0; i<num; i++)
    {
            //llenamos vector de 10
            vector[i]=potencia;
            //asignamo 1 a la posicion iniciar de vector
            vector[0]=1;
            }
           
            for(int i=0; i<num; i++)
            {
                    //elevamos valor a las cantidades de 10 pasadas a vector
                    valor=valor*vector[i];
                    }
                    //retornamos valor elevado
                    return valor;
    }

int sumar(int vector[], int n)
{
    int i, r=0, vector_a[n];
   
             for(i=0; i<n; i++)
             {
                      //obtenemos valor en v de vector
                      int v=vector[i];
                      //llamamos a funcion elevar y sacamos retorno de ella
                      int x=elevar(v,n-i);
                      //asignamos valo retornado a vector
                      vector_a[i]=x;
                      //sumamos cada valor con la posicion siguente del vector
                      r=r+vector_a[i];
                      }
                      //retornamos valor absoluto de suma
                      return r;
    }

int main()
{   
    int i, valor_a=0, valor_b=0, vector_a[4], vector_b[4];
   
    printf("Introduzca valores 1: ");
   
    for(i=0; i<4; i++)
    {
             scanf("%i", &vector_a[i]);
             }
             
             printf("Introduzca valores 2: ");
             fflush(stdin);
   
    for(i=0; i<4; i++)
    {
             scanf("%i", &vector_b[i]);
             }
             
    valor_a=sumar(vector_a, 4);
    valor_b=sumar(vector_b, 4);
   
    int r = valor_a+valor_b;
   
    printf("\n\nResultado: %i", r);
   
    fflush(stdin);
    getchar();
    }



Suerte en tu lectura !!  :xD
#56
Programación C/C++ / Re: Poner contraseña
25 Julio 2012, 03:30 AM
A ver intenta limpiar con fflush en stdin antes de la entrada con fgets() y modifica la iteraccion while(strcmp(passwd, texto)==0) por while(texto[0]==0); Suerte !! :xD
#57
Uff muy buena tu solucion, me funciono perfectamente, muy bien par el tiempo y la gravedad del problema tienes buenas soluciones gracias BlackZeroX (Astaroth) !!  ;-)
#58
Cita de: xiruko en 11 Julio 2012, 20:01 PM
imagina que tu tienes el numero en base decimal 123 escrito como un vector de la siguiente manera: vector=[1,2,3]

si quieres pasar del vector a un numero normal, lo que tienes que hacer es multiplicar cada termino del vector por 10 (ya que esta en base decimal) elevado a la posicion que ocupa ese termino en el vector.

en este caso: numero= 1*10^2 + 2*10^1 + 3*10^0 = 100+20+3 = 123

no se explicarme mejor, pero es el mismo sistema que se usa para pasar un numero en base binaria a uno decimal. en este caso, al ser base binaria, en vez de 10 se usa el 2 eleveado a la posicion que ocupe el digito. por ejemplo:

1010 en binario: 1*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 8+2 = 10 en decimal

edito: solo para decir que es que directamente el sistema numerico es asi. en un numero cualquiera, por ejemplo el 123, el 3 ocupa la posicion de las unidades (del 0 al 9), el 2 el de las decenas (del 0*10 al 9*10), y el 1 el de las centenas (del 0*10^2 al 9*10^2). asi que es esto, pero aplicado a un numero mayor como es tu caso. espero que me haya explicado, un saludo

Si como dices, se puede lograr almacenar dichos valores en los int pero cuando hago esto me petea un resultado no esperado o sea no es el correcto, todavia no va lo que quiero xDD Y me entiendes perfectamente pero no va tu solucion !! Gracias Xiruko !!  ;-)
#59
BlackZeroX (Astaroth): Fijate intenta sumar esto--> 54 8 6 + 25 90 8 = 31394, ahora intenta implementarlo vector[3]={54,8,6} + vector2[3]={25,90,8} se supondria que esto seria igual a 31394 pero no es asi ya implementado, la suma de los vectores si sumamos de derecha a izquierda daria  791614 si te fijas el valor resultante en la suma de los vectores es incorrecto. Ahora mi pregunta es Como hago para obtener los valores esperados (correctos) ?

Gracias BlackZeroX (Astaroth) !!  :rolleyes:
#60
Buenas !! No mira dato000: con un scanf() a nivel consola, funciona correctamente, porque los valores no se le asignan a la variable  hasta que no se pulse un enter o no encuentre un \n; pero en mi caso el problema es el siguiente.

Como ya dije:

scanf("%i", &var1);
scanf("%i", &var2);
suma = var1 + var2;


aqui no hay error alguno y todo marcha perfecto, pero cuando trabajo con eventos es diferente mira esto.

si evento==1
entonces
vector[i]=1;
fin si

si evento==2
entonces
vector[i]=2;
fin si


si te fijas aqui los valores son almacenados instantaneamente o sea no espera un \n o un enter, y aqui se me complica, lo que quiero es una idea de como hacerlo, he intentado ** y char * uff que lio!!

La suma no es la esperada, entonces estoy intentando la manera de buscarle la quinta pata al gato, uff que complicado se ha puesto esto eeeh !!