Autor Tema: Es posible? if(MIN<Variable<MAX)  (Leído 3404 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Es posible? if(MIN<Variable<MAX)
« en: 24 de Octubre de 2011, 14:03:02 »
Lo que dice el titulo, estaba haciendo un programa que tiene que comprobar si un valor se encuentra dentro de un rango minimo y maximo.
Hasta ahora lo estoy haciendo asi:

Código: C
  1. if((MIN < Valor) && (Valor < MAX)){
  2. ....
  3. }

Pero me preguntaba si se podria hacer del siguiente modo y si funcionaria:
Código: C
  1. if(MIN < Valor < MAX){
  2. ....
  3. }

Como tengo que hacer esto unas cuantas veces y con diferentes rangos, de la segunda manera me queda un poco mas prolijo y entendible, e incluso puede que ahorre lineas de compilador :)

Salu2
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado NANO1985

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
    • Desarrollos Tecnologicos - Tucuman - Argentina
Re: Es posible? if(MIN<Variable<MAX)
« Respuesta #1 en: 24 de Octubre de 2011, 14:45:10 »
yo creo que si es posible... en mi caso lo hubiera hecho de la primera forma,... quizás por costumbre, pero la segunda creo que tambien es posible.
saludos
"La inquebrantable voluntad de vencer"
"hay dos cosas infinitas... El universo y la Estupidez humana" Albert Einstein
 "El sabio actua sin anhelos, permanece sosegado,... así no es afectado por el resultado de sus acciones sean éstas el triunfo o el fracaso"
- UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL TUCUMAN -

Desconectado manwenwe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2211
Re: Es posible? if(MIN<Variable<MAX)
« Respuesta #2 en: 24 de Octubre de 2011, 14:45:21 »
Si se puede entonces yo he perdido horas de vida jeje

¿Has probado a ver si compila? Yo jugaría que, en ANSI C, la sentencia if sólo evalua una única condición. Supongo que lo más fácil es que pruebes a ver si el compilador "se lo come".

De todas formas si lo que te molesta es que sea poco lejible, siempre tienes la opción de anidar (y tabular) que queda más clarito...

Código: [Seleccionar]
if(MIN<VALOR)
     if(MAX>VALOR)
          LoQueSea();


1 saludo.
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Re: Es posible? if(MIN<Variable<MAX)
« Respuesta #3 en: 24 de Octubre de 2011, 14:50:05 »
Lo de anidar creo que lo veo peor para entender jeje
No probe a compilar porque el programa es mucho mas grande que eso, y tengo tantos cabos sueltos que si compilo me tira un monton de errores... y aunque compile no quiere decir que el resultado sea el esperado, y como preparar una simulacion me cuesta un monton de trabajo preferi preguntar  :mrgreen:
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado gera

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2188
Re: Es posible? if(MIN<Variable<MAX)
« Respuesta #4 en: 24 de Octubre de 2011, 14:55:30 »
No, la forma correcta de hacerlo en C es con el &&. Ya que evalua una condicion a la vez. Es molesto, es poco estetico, pero asi es C jeje.
Saludos!

"conozco dos cosas infinitas: el universo y la estupidez humana. Y no estoy muy seguro del primero." A.Einstein

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Es posible? if(MIN<Variable<MAX)
« Respuesta #5 en: 24 de Octubre de 2011, 15:03:18 »
Probablemente compile bien pero no funcione como esperas.

Si evalúa la primera condición MIN<VALOR antes que la segunda, asignará a esa condición un 0 o un 1 según sea su resultado, y este 0 o 1 será comparado con MAX.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Es posible? if(MIN<Variable<MAX)
« Respuesta #6 en: 24 de Octubre de 2011, 15:23:47 »
Esto hace poco se había preguntado en el foro, como contesto Gera de forma completa en ese momento:

if((MIN < Valor) && (Valor < MAX))


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Re: Es posible? if(MIN<Variable<MAX)
« Respuesta #7 en: 24 de Octubre de 2011, 15:32:27 »
Noc, suponia lo que tu dices... pero la esperanza es lo ultimo que se pierde :D
Pues seguire como iba, muchas gracias a todos!
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado Arte8bits

  • PIC10
  • *
  • Mensajes: 10
    • Pagina web de Javier Longares
Re: Es posible? if(MIN<Variable<MAX)
« Respuesta #8 en: 25 de Octubre de 2011, 03:52:28 »
Hola,
prueba si te compila esto:

//Incluye esto en el .h
#define ESTA_EN_MEDIO(min, valor, max)        if((min < valor) && (valor < max))


Y luego usa libremente ESTA_EN_MEDIO(MIN, Valor, MAX) cuando quieras (incluyendo el .h)

Si necesitas algo en C que no éxiste... créatelo!

Saludos

---
http://www.javierlongares.com/arte-en-8-bits/
Te invito a visitar y compartir el contenido de Arte en 8 bits el blog de sistemas embebidos en español.

Javier Longares Abaiz

Desconectado Geo

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 922
    • Mexchip
Re: Es posible? if(MIN<Variable<MAX)
« Respuesta #9 en: 25 de Octubre de 2011, 15:33:08 »
Hola,
prueba si te compila esto:

//Incluye esto en el .h
#define ESTA_EN_MEDIO(min, valor, max)        if((min < valor) && (valor < max))
Quedaría mejor si dejas el if fuera del #define, así:
Código: C
  1. #define ESTA_ENMEDIO( a, b, c ) ( ( a < b ) && ( b < c ) )
Para poder hacer algo como esto:
Código: C
  1. if ( ESTA_ENMEDIO( 5, 8, 10 ) )
  2.         {
  3.                 // Está en el intervalo
  4.         }
  5.         else
  6.         {
  7.                 // NO está en el intervalo
  8.         }
Ya luego verías cosas como que estuviera en el intervalo incluyendo los límites (<=) o no (<).

Nota: ¿sería posible que se revisaran los colores del resaltador de sintaxis? Creo que en estos casos no ayuda a la legibilidad, sino todo lo contrario :p.
La imaginación es el límite.
Visita mi blog, en inglés o en español :).
Mini curso de introducción a VHDL en MEXCHIP :-/

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Es posible? if(MIN<Variable<MAX)
« Respuesta #10 en: 25 de Octubre de 2011, 21:21:50 »
Nota: ¿sería posible que se revisaran los colores del resaltador de sintaxis? Creo que en estos casos no ayuda a la legibilidad, sino todo lo contrario :p.

No, son propios del plugin GeSHI.

Saludos
No contesto mensajes privados, las consultas en el foro

Desconectado Geo

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 922
    • Mexchip
Re: Es posible? if(MIN<Variable<MAX)
« Respuesta #11 en: 26 de Octubre de 2011, 01:24:21 »
Al menos el color de fondo, por ejemplo a blanco, con el gris creo que se pierden muchos colores.
La imaginación es el límite.
Visita mi blog, en inglés o en español :).
Mini curso de introducción a VHDL en MEXCHIP :-/