/*
Nome: Mario
Cognome: Montanari
Classe: 3AIN
Data: 10/01/2025

Creare un programma c++ che stampi
la tabella della verità per una
funzione booleana che rappresenta
la logica di "esco quando (Sara oppure
Lara) ma non Luca".
Organizzare il lavoro con funzioni.
*/

#include<iostream>
#include <iomanip>

using namespace std;

bool esco(bool Sara, bool Lara, bool Luca);
void stampaTabella();

int main(void){
    stampaTabella();
    
    return 0;  
}

bool esco(bool Sara, bool Lara, bool Luca) {
    return (Sara || Lara) && !Luca;
}

void stampaTabella() {
    cout << "Sara" << setw(8) << "Lara" << setw(8) << "Luca" << setw(8) << "Esco" << endl;
    cout << "-----------------------------" << endl;
    for(int Sara = 0; Sara < 2; Sara++) {
        for(int Lara = 0; Lara < 2; Lara++) {
            for(int Luca = 0; Luca < 2; Luca++) {
                cout << (bool)Sara << setw(8);
                cout << (bool)Lara << setw(8);
                cout << (bool)Luca << setw(8);
                cout << esco(Sara, Lara, Luca) << endl;
            }
        }
    }
}