• Viernes 15 de Noviembre de 2024, 08:05

Autor Tema:  Disminuir Codigo En Uso De If  (Leído 1641 veces)

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Disminuir Codigo En Uso De If
« en: Sábado 20 de Diciembre de 2003, 16:41 »
0
Hola a todos, voy a preguntar algo simple, creo.
   En el siguiente codigo, como puedo simplificar lo que necesito.

   Si deseo hacer lo siguiente:

Código: Text
  1.  
  2. if ((H == '1') || (H == '2') || (H == '3') || (H == '4') || (H == '5') || (H == '6') ||
  3.           (H == '7') || (H == '8'))
  4.  

   Como puedo simplificar esto para que sea por ejemplo:
Código: Text
  1.  
  2.  if (H == octal)
  3.  

   Pero que (octal) sea el reemplazo de 1, 2, 3, 4, 5, 6, 7 y 8.
   Aparte de con numero tambien deseo hacerlo con letras.

   Espero halla una solucion, ya que si no me volvere loco escribiendo codigo.  :blink:
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

Martin Candurra

  • Miembro activo
  • **
  • Mensajes: 36
    • Ver Perfil
Re: Disminuir Codigo En Uso De If
« Respuesta #1 en: Sábado 20 de Diciembre de 2003, 17:42 »
0
Mira no se si es lo que buscas pero en ese caso, tenes la "suerte" de que los valores por los que preguntas son correlativos en valor ascii. Es decir podrias preguntar tranquilamente

if (H>='1' && H<= '8') {
   .....
}

En caso de que solo haya sido así tu ejemplo, y no haya ninguna correlación (por ejemplo querrías pregutnar por '1', '4','6','8','a',F','C')
podrías armar una función con argumentos variaalbes, que reciba todos los caracteres estilo:

char OR (char val, ... );

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Disminuir Codigo En Uso De If
« Respuesta #2 en: Lunes 22 de Diciembre de 2003, 15:16 »
0
si ,
asi es yo haria esto:
Código: Text
  1.  
  2. char valor='&#092;0';
  3. int val=NULL;
  4. char value='&#092;0';
  5. ...
  6. ...
  7. /*para preguntar si es solo un numero de 0 a 7(octal) en
  8. el caso de que la entrada fuera caracter*/
  9. if(valor&#62;='0' && valor&#60;='7')
  10. {
  11. }
  12. /*si la entrad fuera numerica*/
  13. if(val&#62;=0 && val&#60;=7)
  14. {
  15. }
  16. /*Ahora para saber si una entrada de caracter es mayuscula
  17. o minuscula*/
  18. //mayuscula METODO 1
  19. if(value&#62;='A'  && value&#60;='Z')
  20. {
  21. }
  22. //mayuscula METODO 2
  23. if(value&#62;=57  && value&#60;=90)
  24. {
  25. }
  26. //minuscula METODO 1
  27. if(value&#62;='a'  && value&#60;='z')
  28. {
  29. }
  30. //minuscula METODO 2
  31. if(value&#62;=97  && value&#60;=122)
  32. {
  33. }
  34.  
  35.  

Ahora.. no se que estas haciendo pèro si estas recibiendo por teclado entradas de txto equivalentes a valores en octal o hexa.. usa la funcio strtol strtoi
estas funciones convierten de cadena a long o a int segun sea el caso, alli tu le puedes indicar en que base estas recibiendo el la representacion en cadena para convertirla en número.   :devil:
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: Disminuir Codigo En Uso De If
« Respuesta #3 en: Lunes 22 de Diciembre de 2003, 15:30 »
0
Hola amigos, les agradesco infinitamente su ayuda  :smartass: , ambas respuestas me bienen al pelo, ahora implementare  :comp:  la ayuda que me han brindado y vere si logro lo que deseo. GRACIAS!!! y Saludos!  :hola:
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

QliX=D!

  • Miembro MUY activo
  • ***
  • Mensajes: 214
    • Ver Perfil
Re: Disminuir Codigo En Uso De If
« Respuesta #4 en: Jueves 15 de Enero de 2004, 16:07 »
0
PAra el caso de que sean varios valores no continuos, me parece que mejor es uasr un switch...
Y si es solo entre dos valores con una sola instruccion dentro del if de cada lado, lo mejor es usar el operador ternario ?: se usa asi:

condicion?instruccionsiesverdadero:instruccionsiesfalso;

por ejemplo:
Código: Text
  1.  
  2. bool condicion;
  3. .
  4. .
  5. .
  6. //haces algo qeu la setee y dps:
  7.  
  8. cout &#60;&#60; &#34;El valor es: &#34; &#60;&#60; condicion?&#34;Verdadero&#34;:&#34;Falso&#34;;
  9.  
  10.  
slds.
QliX=D! - From the top of Tsunami