Yahoo Respuestas cerrará el 4 de mayo de 2021 (hora del Este de EE. UU.) y, a partir del 20 de abril de 2021 (hora del Este de EE. UU.), el sitio web de Yahoo Respuestas estará disponible solo en modo de lectura. No habrá cambios a otras propiedades o servicios de Yahoo, ni a tu cuenta de Yahoo. Puedes encontrar más información sobre el cierre de Yahoo Respuestas y cómo descargar tus datos en esta página de ayuda .

¿En lenguaje C....Es posible añadir multiples condiciones en un if?

Por ejemplo, estoy haciendo un programa para abrir y cerrar una puerta utilizando un PIC16F84A y quisiera saber si lo que hago es correcto:

if

{

((!input(sensor) == 1), (input(cerrado) == 1), (input(abierto) == 0)); //si el sensor se activa

motorabrir(); //activar el motor para abrir puerta

}

3 respuestas

Calificación
  • DnTo
    Lv 5
    hace 8 años
    Respuesta preferida

    Hola, para concatenar sentencias logicas usas el && por ejemplo

    if(motorActivo && pararMotor)

    {

    motorActivo = false;

    motorParado = true;

    }

    if(motorActivo && arrancarMotor)

    {

    //no hacer nada , ya el motor esta andando

    }

    Tambien puedes hacer uso del OR pero no encuentro las barritas entonces usaremos la palabra OR

    if( pararMaquinaria OR pararMotor)

    {

    motorActivo = false;

    motorParado = true;

    }

    Consultate las tablas de verdad para que veas como se comporta la cosa.

    bueno pues.

    suerte con eso!

  • hace 8 años

    Sí, pero no así.. lo que querés hacer sería:

    ( !input(sensor) && input(cerrado) && !input(abierto) )

    y no es lenguaje C sino alguna adaptación para pics. Las llaves van después de la condición, no antes.

    De todos modos el pic 16f84 está descontinuado desde hace años.. su reemplazo es el 16f628 que es más barato y trae muchísimas más cosas.

    Y si por algún motivo estás determinado a usar ese pic, sería mucho más eficiente que hagas el programa en assembler.

  • Anónimo
    hace 8 años

    Sí, pero no así como lo estás haciendo.

    Si lo que quieres es que el if vea si alguna de esas condiciones es cierta, o sea SI esto O aquello O lo otro ENTONCES bla bla, tienes que unirlas usando OR que en C se escribe ||

    if ((!input(sensor) == 1) || (input(cerrado) == 1) || (input(abierto) == 0))

    {

    motorabrit();

    }

    (fíjate también que las llaves se deben abrir después de la condición a evaluar, no antes).

¿Aún tienes preguntas? Pregunta ahora para obtener respuestas.