• Jueves 14 de Noviembre de 2024, 03:53

Autor Tema:  Comparar una cadena con el nombre de una variable??  (Leído 2722 veces)

radioactivo

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Comparar una cadena con el nombre de una variable??
« en: Domingo 6 de Marzo de 2011, 17:32 »
0
Buenas, mi problema es el siguiente:

Estoy tratando de comparar una cadena (t_borrar) la cual representa el nombre de una tarea que debe borrarse dentro de una partición fija, y quiero que en el momento de que se capture la cadena, la tarea elegida para borrar (t1, t2, t3, t4, t5) sea borrada.

Pero no me ha salido:

esto es lo que tengo de momento:

Código:
Código: Text
  1. #include <iostream>
  2. #include <stdio.h>
  3.  
  4. using namespace std;
  5.  
  6. int main(){
  7.    
  8.         int opcion;
  9.         void partFija();
  10.         void partDinamica();
  11.            
  12.         //MENU DE BIENVENIDA  
  13.         printf("tt BIENVENIDO: ");    
  14.         printf("OPCIONES nn");
  15.         printf("t 1.    PARTICION FIJA  n");
  16.         printf("t 2.    PARTICION DINAMICA  n");
  17.         printf("t 3.    SALIDA   nn");
  18.         printf("digite una de las opciones: ");
  19.         scanf( "%i", &opcion);
  20.        
  21.         switch (opcion){
  22.            
  23.             case 1:
  24.                 printf("PARTICION FIJA nn");
  25.                 printf("NO HAY RELOCALIZACION nn");
  26.                 partFija();
  27.                
  28.                 break;
  29.            
  30.             case 2:
  31.                 printf("PARTICION DINAMICA nn");
  32.                 partDinamica();
  33.            
  34.                 break;
  35.                
  36.             case 3:
  37.                 break;
  38.         }
  39.        
  40.         getchar();  
  41.         return EXIT_SUCCESS;
  42. }
  43.  
  44. void partFija(){
  45.  
  46.          int t[5];
  47.          int p[5]={20,15,20,10,30};
  48.          printf("HOLA!!nn");
  49.          
  50.          //IMAGEN DE PARTICIONES
  51.          printf("nn");
  52.          printf("PARTICION FIJAn");
  53.          printf("-------------------   0n");
  54.          printf("|        SO       | n");
  55.          printf("-------------------   30n");
  56.          for(int i=0; i<5; i++){
  57.             printf("|        p%i       | n", i+1);
  58.             printf("-------------------   %in", p[i]);
  59.          }
  60.  
  61.          
  62.           //INGRESO DE TAREAS
  63.          printf("5 TAREAS MAXIMO nn");
  64.          for(int i=0; i<5; i++){
  65.             printf("TAREA %i:  ", i+1); scanf( "%i", &t[i]);
  66.          }
  67.          
  68.          
  69.          //INGRESO DE TAREAS EN PARTICIONES
  70.          printf("nn");
  71.          printf("PARTICION FIJAn");
  72.          printf("-------------------   0n");
  73.          printf("|        SO       | n");
  74.          printf("-------------------   30n");
  75.          for(int i=0; i<5; i++){  
  76.             if(t[i]==0){
  77.                 printf("|        p%i       | n", i+1);
  78.                 printf("|   ***********   | n");
  79.                 printf("|     LIBRE: %i    | n", p[i]);
  80.                 printf("-------------------   %in", p[i]);
  81.             }
  82.             else{    
  83.                 printf("|        p%i       | n", i+1);
  84.                 printf("|   ***********   | n");
  85.                 printf("|     Frag: %i    | n", p[i]-t[i]);
  86.                 printf("-------------------   %in", p[i]);
  87.             }
  88.          }
  89.        
  90.          
  91.          do{
  92.                
  93.  
  94.  
  95. ********************************************PROBLEMA!!!!**************
  96.  
  97.                 printf("nnQUE TAREA DESEA ELIMINAR??  ");
  98.                 char t_borrar[2]; scanf( "%s", t_borrar);
  99.                 printf("-------------------   0n");
  100.                 printf("|        SO       | n");
  101.                 printf("-------------------   30n");
  102.                
  103.                 for(int i=0; i<5; i++){
  104.                    
  105.                         if(t[i]==atoi(t_borrar)){
  106.                             t[i]=0;
  107.                         }
  108.    
  109.                         //IMAGEN DE PARTICIONES FIJAS CON TAREA RETIRADA
  110.                         if(t[i]==0){
  111.                             printf("|        p%i       | n", i+1);
  112.                             printf("|   ***********   | n");
  113.                             printf("|     LIBRE: %i    | n", p[i]);
  114.                             printf("-------------------   %in", p[i]);
  115.                         }
  116.                         else{    
  117.                             printf("|        p%i       | n", i+1);
  118.                             printf("|   ***********   | n");
  119.                             printf("|     Frag: %i    | n", p[i]-t[i]);
  120.                             printf("-------------------   %in", p[i]);
  121.                         }
  122.                    
  123.                  }
  124.                
  125. *****************************HASTA AQUI COMO LE HAGO???*******************
  126.  
  127.  
  128.  
  129.                  //El programa pregunta si quiere continuar
  130.                  char opc;
  131.                  fflush(stdin);
  132.                  printf("nnnDESEA RETIRAR OTRA TAREA?? (S/N) ");
  133.                  scanf("%c", &opc);
  134.                  if(opc=='n' or opc=='N')
  135.                     break;
  136.                  printf("nn");
  137.                  
  138.          }while(true);
  139.          getchar();
  140.                
  141.          
  142.              
  143. }
  144.  
  145. void partDinamica(){
  146.    
  147.          printf("HOLA!! particion dinamicann");
  148.          
  149.          
  150.          getchar();    
  151.  
  152. }
  153.  
  154.  

gracias por cualquier ayuda, realmente necesito cualquier ayuda posible, ya me queme las pestañas, pero con el atoi se borran todas las tareas!!!!

Pero como le hago para la comparación??

Un ejemplo, necesito borrar (igualar a cero) una tarea, puede ser t2. y quiero que pregunte,

que tarea desea borrar??? t2

quiero que capture esa cadena "t2" con el nombre de la variable t2 (no su valor), y ahora si, igualar el valor de t2 = 0.

Como le hago??

no se como puedo ser más claro y aclarar la duda, ayudenme.

--------------------------

na, ya no importa, ya lo solucione con otro modo.

Bueno, nos vemos.

si quieren saber que hice, fue preguntar de otra forma

Código: Text
  1. fflush(stdin);
  2.                 printf("nnQUE TAREA DESEA ELIMINAR??  n (Digite solo el numero de la tarea)  ");
  3.                 int borrar; scanf( "%i", &borrar);
  4.                 if(borrar == 1)
  5.                     t[0]=0;
  6.                 else if(borrar == 2)
  7.                     t[1]=0;
  8.                 else if(borrar == 3)
  9.                     t[2]=0;
  10.                 else if(borrar == 4)
  11.                     t[3]=0;
  12.                 else if(borrar == 5)
  13.                     t[4]=0;
  14.  

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Comparar una cadena con el nombre de una variable??
« Respuesta #1 en: Martes 8 de Marzo de 2011, 09:50 »
0
Efectivamente, tu planteamiento inicial era erróneo. En C/C++ no hay manera de hacer lo que dices, a menos que uses algo como vectores (arrays), aunque en otros lenguajes sí se puede (lenguajes que soportan la evaluación en tiempo de ejecución tales como Perl o LISP).

radioactivo

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Comparar una cadena con el nombre de una variable??
« Respuesta #2 en: Martes 8 de Marzo de 2011, 12:32 »
0
Cita de: "m0skit0"
Efectivamente, tu planteamiento inicial era erróneo. En C/C++ no hay manera de hacer lo que dices, a menos que uses algo como vectores (arrays), aunque en otros lenguajes sí se puede (lenguajes que soportan la evaluación en tiempo de ejecución tales como Perl o LISP).


ok gracias, buen dato. Perl?? Lisp??? son utiles?? son practicos?? para que se usan??

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Comparar una cadena con el nombre de una variable??
« Respuesta #3 en: Martes 8 de Marzo de 2011, 12:48 »
0
Perl es sobre todo un lenguaje para hacer scripts, muy potente en cuanto a manipulación de cadenas, y con unas expresiones regulares realmente potentes. Personalmente me ha resultado muy útil para automatizar ciertas tareas repetitivas del curro.

LISP es un lenguaje funcional bastante antiguo (1958) y con una sintaxis peculiar, con muchas aplicaciones en el campo de la inteligencia artificial. Muy usado y venerado entre los hackers de la antigua escuela. Generalmente la gente o lo odia o lo ama (yo estoy entre los segundos).

radioactivo

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Comparar una cadena con el nombre de una variable??
« Respuesta #4 en: Martes 8 de Marzo de 2011, 13:12 »
0
eres un sensei, por favor, cual es mejor para aprender...no momento, no dije bien, cual es más facil de aprender, y mejor aún, cuál podria servirme más como programador/desarrollador??

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Comparar una cadena con el nombre de una variable??
« Respuesta #5 en: Martes 8 de Marzo de 2011, 13:30 »
0
¿Sensei? :lol:  ^_^

Perl es bastante más fácil de aprender al ser procedural y orientado a objetos. Es más útil a la hora de encontrar trabajo, aunque tampoco hay tanta demanda en Perl. También es bastante popular en los entornos de software libre. Lo malo de Perl es que si no se comenta y se mantiene adecuadamente puede resultar un tanto crítpico, sobre todo si se usan muchas expresiones regulares y variables globales estándar.

LISP puede resultar bastante más complicado si no has visto nunca programación funcional, y tampoco se puede decir que tenga muchas salidas profesionales. Eso sí, cualquier hacker siempre está encantado de encontrar a otros amantes de LISP  :P Es un lenguaje realmente potente y hace cosas que ya quisieran hacer otros lenguajes de la manera tan sencilla y elegante que lo hace LISP.

Realmente tampoco pierdes nada aprendiendo ambos. Perl resulta bastante sencillo, LISP no tanto pero merece la pena por lo menos echarle un vistazo, a lo mejor quedas enamorado de por vida  :lol:  ;)

radioactivo

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Comparar una cadena con el nombre de una variable??
« Respuesta #6 en: Martes 8 de Marzo de 2011, 14:55 »
0
Cita de: "m0skit0"
¿Sensei? :lol:  ^_^

Perl es bastante más fácil de aprender al ser procedural y orientado a objetos. Es más útil a la hora de encontrar trabajo, aunque tampoco hay tanta demanda en Perl. También es bastante popular en los entornos de software libre. Lo malo de Perl es que si no se comenta y se mantiene adecuadamente puede resultar un tanto crítpico, sobre todo si se usan muchas expresiones regulares y variables globales estándar.

LISP puede resultar bastante más complicado si no has visto nunca programación funcional, y tampoco se puede decir que tenga muchas salidas profesionales. Eso sí, cualquier hacker siempre está encantado de encontrar a otros amantes de LISP  :P Es un lenguaje realmente potente y hace cosas que ya quisieran hacer otros lenguajes de la manera tan sencilla y elegante que lo hace LISP.

Realmente tampoco pierdes nada aprendiendo ambos. Perl resulta bastante sencillo, LISP no tanto pero merece la pena por lo menos echarle un vistazo, a lo mejor quedas enamorado de por vida  :lol:  ;)

ok sensei, ya mismo me pongo en la tarea! no hay problema! aprender primero c++, luego java, luego perl, luego LISP. Bueno más bien aprender de poco a intervalos (hasta tengo que estudiar r!! maldito lenguaje de estadistica)

oye, tienes algún lenguaje para aprender para trabajar??

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Comparar una cadena con el nombre de una variable??
« Respuesta #7 en: Martes 8 de Marzo de 2011, 16:10 »
0
¿Te refieres a cuáles son los más demandados? En España, por mi experiencia: Java, .Net (Visual Basic y C#), C++, Visual Basic 6... Creo que Java te garantiza más o menos un puesto si acreditas experiencia/cursos. Eso sí, no esperes salarios espectaculares.

radioactivo

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Comparar una cadena con el nombre de una variable??
« Respuesta #8 en: Martes 8 de Marzo de 2011, 16:44 »
0
Cita de: "m0skit0"
¿Te refieres a cuáles son los más demandados? En España, por mi experiencia: Java, .Net (Visual Basic y C#), C++, Visual Basic 6... Creo que Java te garantiza más o menos un puesto si acreditas experiencia/cursos. Eso sí, no esperes salarios espectaculares.
serio java??

bueno, yo soy de Bogota, puedes apostar a un cambio entre tendencias de lenguajes, java seguro??

y de que cursos hablas?? experiencia vale, entiendo que no entiendo (a lo socrates, pues no se nada de trabajar como desarrollador aún) pero digamos, en trabajos, que se solicita, no creo que sean los proyectos de universidad que me han pedido, como un codigo para pilas y colas, o un triqui, o un pac-man, o guardar un archivo que capte enteros y solo eso.

¿que trabajos te han pedido maestro?

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Comparar una cadena con el nombre de una variable??
« Respuesta #9 en: Martes 8 de Marzo de 2011, 17:52 »
0
Cita de: "radioactivo"
serio java??
bueno, yo soy de Bogota, puedes apostar a un cambio entre tendencias de lenguajes, java seguro??
http://langpop.com/

Cita de: "radioactivo"
y de que cursos hablas??
Módulos o cursos específicos.

Cita de: "radioactivo"
en trabajos, que se solicita, no creo que sean los proyectos de universidad que me han pedido, como un codigo para pilas y colas, o un triqui, o un pac-man, o guardar un archivo que capte enteros y solo eso.
Hombre son cosas más complicadas, pero vamos, lo que te dan en la universidad debe ser la base teórica para que tú luego seas capaz de ingeniártelas (de ahí lo de ingeniero...) para solucionar los problemas. De todas formas si subdivides un problema en varios más pequeños correctaemente al final todo se reduce a problemas bastante sencillos. Obviamente esto requiere investigación y práctica por tu parte en los sectores de la informática que estés interesado, así como un esfuerzo para mantenerse al día, que en informática comparado con otras ingenierías es bastante más alto.

Cita de: "radioactivo"
¿que trabajos te han pedido maestro?
Muchas cosas y muy diferentes. Generalmente suelen ser mezclas de varias tecnologías. Lo más complicado suele ser adaptarse a la forma de trabajar y el diseño general de la aplicación en la que trabajes. Es decir, el principio. Una vez entiendes cómo está montado el chiringuito (como dicen aquí  :lol: ) suele ser bastante sencillo si sólo trabajas de programador. Sencillo y aburrido mayormente.

radioactivo

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Comparar una cadena con el nombre de una variable??
« Respuesta #10 en: Martes 8 de Marzo de 2011, 17:54 »
0
Cita de: "m0skit0"
Es buena información y al mismo tiempo me desinforma...


questions?? millones, pero de donde empezar a preguntar...pues carajo que no se ni en donde estoy parado.

Pero gracias, por lo menos ya me motive para estudiar java.