Foros del Web » Programación para mayores de 30 ;) » C/C++ »

AYUDA!!! Cómo ejecutar valor de una variable en C???

Estas en el tema de AYUDA!!! Cómo ejecutar valor de una variable en C??? en el foro de C/C++ en Foros del Web. Buenas tardes a todos. ¿Cómo puedo ejecutar el valor de una variable en C? Pongo un ejemplo: Tengo una variable de tipo char, V1, que ...
  #1 (permalink)  
Antiguo 18/01/2010, 11:06
 
Fecha de Ingreso: enero-2010
Mensajes: 3
Antigüedad: 14 años, 3 meses
Puntos: 0
AYUDA!!! Cómo ejecutar valor de una variable en C???

Buenas tardes a todos.

¿Cómo puedo ejecutar el valor de una variable en C? Pongo un ejemplo:

Tengo una variable de tipo char, V1, que contiene el valor "2 + 3 - 1".
Y me gustaría poder ejecutar el valor de V1, y asignárselo a alguna variable entera. De modo que, mi variable de tipo numérica, V2, valdría 4.

¿Conocéis algún modo o tenéis algún ejemplo?

Muchísimas gracias por adelantado.
  #2 (permalink)  
Antiguo 18/01/2010, 13:07
 
Fecha de Ingreso: agosto-2009
Ubicación: Cartagena, Colombia
Mensajes: 516
Antigüedad: 14 años, 7 meses
Puntos: 13
Respuesta: AYUDA!!! Cómo ejecutar valor de una variable en C???

puedes poner cada numero en una variable y despues realizar las operaciones:
Código C++:
Ver original
  1. char a='6';
  2.  int r = (a - '0')-2;
  3.  
  4.  cout<<r; //muestra 4
__________________
Un camino de mil millas comienza por el primer paso. Lao Tse
  #3 (permalink)  
Antiguo 19/01/2010, 05:37
 
Fecha de Ingreso: enero-2010
Mensajes: 3
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: AYUDA!!! Cómo ejecutar valor de una variable en C???

gracias mhax, pero creo que no me has comprendido. Lo que me has indicado no sirve.
yo lo que busco es intentar realizar en C, algo parecido a lo que haría con la sentencia "execute inmmediate" en PL/SQL.
  #4 (permalink)  
Antiguo 20/01/2010, 03:57
 
Fecha de Ingreso: enero-2010
Mensajes: 3
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: AYUDA!!! Cómo ejecutar valor de una variable en C???

por favor, ¿a nadie se le ocurre nada o le ha pasado algo parecido alguna vez?
  #5 (permalink)  
Antiguo 20/01/2010, 04:45
 
Fecha de Ingreso: enero-2010
Mensajes: 24
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: AYUDA!!! Cómo ejecutar valor de una variable en C???

Tienes que crearte un programa que traduzca la operacion a algo entendible por c.

Este es un ejemplo que serviria para operaciones sencillas (como la que tu has puesto):

Código C:
Ver original
  1. int main ()
  2. {
  3.   int i, j;
  4.   int num_numeros=0;
  5.   int num_comandos=0;
  6.   int numeros[10];
  7.   int val_aux;
  8.   char comando[10];
  9.   char var_aux[10];
  10.  
  11.   char operacion[100]="2 + 3 - 1 + 9-3  + 4";
  12.  
  13.   memset (var_aux, 0, sizeof(var_aux));
  14.   memset (comando, 0, sizeof(comando));
  15.  
  16.   j=0;
  17.   for (i = 0; i < strlen (operacion); i++)
  18.   {
  19.     if (operacion[i] >= '0' && operacion[i] <= '9')
  20.     {
  21.       var_aux[j] = operacion[i];
  22.       j++;
  23.     }
  24.     else
  25.     {
  26.       if (j>0) /* Si no es numero quiere decir que ya tenemos el valor completo */
  27.       {
  28.         numeros[num_numeros] = atoi (var_aux);
  29.         num_numeros++;
  30.         j=0;
  31.         memset (var_aux, 0, sizeof(var_aux));
  32.       }
  33.      
  34.       if (operacion[i] != ' ') /* si no es un blanco tiene que ser un operador +,-,* */
  35.       {
  36.         comando[num_comandos] = operacion[i];
  37.         num_comandos++;
  38.       }
  39.     }    
  40.   }
  41.  
  42.   if (j>0) /* lo ponemos de nuevo pora pillar el ultimo numero */
  43.   {
  44.     numeros[num_numeros] = atoi (var_aux);
  45.     num_numeros++;
  46.     j=0;
  47.     memset (var_aux, 0, sizeof(var_aux));
  48.   }
  49.  
  50.   /* cada 2 numeros tiene que haber un operador 'a + b' */
  51.   /* con lo que si tenemos a + b - c :
  52.        1) 'a + b' calculamos la primera operacion
  53.        2) '(a+b) - c' para la siguiente operacion usamos el resultado anterior */
  54.  
  55.   j=0;
  56.   for (i=0; i<num_comandos; i++)
  57.   {
  58.     switch (comando[i])
  59.     {
  60.       case '+':
  61.         val_aux = numeros[j] + numeros[j + 1];
  62.         numeros[j+1] = val_aux;
  63.         j++;
  64.         break;
  65.      
  66.       case '-':
  67.         val_aux = numeros[j] - numeros[j + 1];
  68.         numeros[j+1] = val_aux;
  69.         j++;
  70.         break;      
  71.       /* case '*' case '/' si quieres poner mas operaciones */
  72.     }
  73.   }
  74.  
  75.   fprintf (stderr, "OP: [%s] -> [%d]\n", operacion, numeros[j]);
  76.  
  77.   return 0;
  78. }

Algunos ejemplos:

OP: [2 + 3 - 1] -> [4]
OP: [2 + 3 - 1 + 9-3 + 4] -> [14]

Etiquetas: ejecutar, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:47.