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

[SOLUCIONADO] ¿Como puedo reducir este código?

Estas en el tema de ¿Como puedo reducir este código? en el foro de C/C++ en Foros del Web. Buenas tardes: Tengo un codigo bastante extenso y no se como puedo reducirlo. Hay una variable referencia que indica en que variable se gravará el ...
  #1 (permalink)  
Antiguo 29/10/2013, 10:49
 
Fecha de Ingreso: octubre-2013
Mensajes: 31
Antigüedad: 10 años, 6 meses
Puntos: 0
¿Como puedo reducir este código?

Buenas tardes:

Tengo un codigo bastante extenso y no se como puedo reducirlo. Hay una variable referencia que indica en que variable se gravará el código. Todas las variables se nombran de la misma forma lo unico que cambia es su valor final, de la forma variableX siendo X el valor de la variable entera "variable".

Ejemplo del código:
Código:
if(variable=1)
{
  variable1 = a;
}
if(variable=2)
{
  variable2 = a;
}
if(variable=3)
{
  variable3 = a;
}
if(variable=4)
{
  variable4 = a;
}
if(variable=5)
{
  variable5 = a;
}

Hay alguna forma de "seleccionar la variable" al estilo:

Código:
variable + char(variable)=a;
Se que eso no funciona pero alguna funcion que pueda hacerlo me ayudaría a reducir por 8 el tamaño de mi programa.

Un saludo y gracias anticipadas
  #2 (permalink)  
Antiguo 29/10/2013, 11:59
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: ¿Como puedo reducir este código?

Si necesitas todas las variables no podras reducir el tamaño del programa pero si el del codigo, y es lo que planteas como solucion: una lista de variables. Redefino los nombres de variable que has usado en tu ejemplo para que quede mas claro

Código C:
Ver original
  1. //redefino 'variable' por 'indice_contenedor'
  2. //redefino 'a' por 'valor'
  3. //redefino 'variable1', 'variable2' etc por una lista de variables llamada 'contenedores' que supongamos que son tipos enteros
  4.  
  5. int contenedores[5];
  6. int indice_contenedor;
  7. int valor;
  8.  
  9. //supongamos que quieres rabajar con el contenedor nº 2
  10. indice_contendor = 3;
  11.  
  12. //y que quieres asignarle el valor 55
  13. valor = 55;
  14.  
  15. //seleccionas el contenedor segun indice y asignas valor
  16. contenedores[indice_contenedor] = value;

Ten en cuenta que esto requiere un uso determinado: los indices por defecto estan basados en 0 (el primer contenedor esta bajo el indice 0, el segundo bajo el 1, etc), pero puedes cambiarlos solo con 'traducir' la posicion.

Ademas tambien tienes que comprovar dos errores posibles: que el indice no sea menor que 0 y que no sea mayor que la ultima posicion.


Saludos
vosk

Última edición por vosk; 29/10/2013 a las 12:10
  #3 (permalink)  
Antiguo 29/10/2013, 18:48
Avatar de CapacProg  
Fecha de Ingreso: marzo-2010
Ubicación: Lima - Perú
Mensajes: 324
Antigüedad: 14 años
Puntos: 71
Respuesta: ¿Como puedo reducir este código?

Hola.

Define un vector y luego por el valor que tienes le asignas a la componente que deseas. Es una línea.

Código C++:
Ver original
  1. vector[variable]=a;
__________________
%
El mejor guerrero no es el que triunfa siempre sino el que vuelve sin miedo a la batalla.
%
  #4 (permalink)  
Antiguo 30/10/2013, 09:09
 
Fecha de Ingreso: octubre-2013
Mensajes: 31
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: ¿Como puedo reducir este código?

Ok, muchas gracias por la ayuda, a ver si consigo reconstruir mi código sin problemas :D

salu2s

Etiquetas: funcion, programa, reducir
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 14:38.