ESERCIZI SULLE TABELLE DI VERITA'

ES 1

Un utente può entrare in una stanza solo se ha la chiave e conosce il codice di sicurezza. Usare l’operatore AND per determinare se l’accesso è consentito.

ES 2

Una persona può guidare un’auto se ha la patente oppure è accompagnata da un istruttore. Usare OR per stabilire se può guidare.

ES 3

Un allarme deve scattare solo se la finestra è aperta e non c’è una persona autorizzata in casa. Usare NOT e AND.

SOLUZIONI

#include <stdio.h>

int main()
{
    // ES 1:
    /*
    Un utente può entrare in una stanza solo se ha la chiave e conosce il codice di sicurezza.
    Usare l’operatore AND per determinare se l’accesso è consentito.
    */
    int codice = 123;
    int codice_input;
    int chiave_input;

    printf("hai la chiave? (0/1)");
    scanf("%d", &chiave_input);

    printf("inserisci il codice");
    scanf("%d", &codice_input);

    if (chiave_input == 1 && codice_input == codice)
    {
        printf("accesso consentito");
    }
    else
    {
        printf("accesso non consentito");
    }

    // ES 2:
    /*
    Una persona può guidare un’auto se ha la patente oppure è accompagnata da un istruttore.
    Usare OR per stabilire se può guidare.
    */
    int presenza_patente = 0;
    int presenza_istruttore = 1;
    if (presenza_patente || presenza_istruttore)
    {
        printf("può guidare");
    }
    else
    {
        printf("non può guidare");
    }

    // ES 3:
    /*
    Un allarme deve scattare solo se la finestra è aperta e non c’è una persona autorizzata in casa.
    Usare NOT e AND.
    */
    int finestra_aperta = 0;
    int persona_autoizzata_presente = 1;

    if (finestra_aperta && !persona_autoizzata_presente)
    {
        printf("allarme in funzione");
    }
    else
    {
        printf("allarme spento");
    }

    return 0;
}