#include <iostream>
using namespace std;
// Programa de controle iluminação de escadas entre andares de um prédio de 04 andares( térreo e 03 andares)
const int UM=1;
const int ZERO=0;
const int MIN = UM;
const int MAX = 5 ;
int BT[MAX], SPT1[MAX], SP12[MAX], SP2U[MAX], L1[MAX], L12[MAX], L2U[MAX], DIM ;// variaveis globais
char TECLA;
int LEITURA(){
int I ;
for(I = ZERO;I < DIM; I++ ){
cout<<"\nDigite ZERO ou UM entre espacos para os sensores SPT1,SP12,SP2U: "<<endl;
do{
cout<<"\nDigite ZERO ou UM para o sensor SPT1: "<<endl;
cin>> SPT1 ;
}while(SPT1!=ZERO &&SPT1!=UM );
do{
cout<<"\nDigite ZERO ou UM para o sensorSP12: "<<endl;
cin>> SP12;
}while(SP12!=ZERO &&SP12!=UM );
do{
cout<<"\nDigite ZERO ou UM para o sensorSP2U: "<<endl;
cin>> SP2U;
}while(SP2U!=ZERO&& SP2U!=UM);
}
}
int botaoteste() {
int I;
for(I = ZERO;I < DIM; I++ ){
do{
cout << "\n\tDigite ZERO ou UM para BT: " ;
cin >> BT;
cout << "\n Voce digitou "<<BT<<endl;
}while(BT<ZERO || BT>UM);
if(BT==UM){
SPT1=UM;SP12=UM;SP2U=UM;
if(L1==ZERO||L12==ZERO||L2U==ZERO){
cout<<"\n\t\tLampadas defeituosas,substitua o elemento desfeituoso\n\n" <<endl;
}
}
}
}
int sensores() {
int I ;
for(I=ZERO;I < DIM; I++ ){
L1=SPT1;
L12=SPT1|SP12;
L2U=SP12|SP2U;//Equações do mapa de Karnaugh//
if(L1==ZERO &&L12==ZERO &&L2U==ZERO){
cout<< "Sem circulação pelas escadas"<<endl;
}
else{
if(L1==UM){
cout<<"Circulacao entre andares terreo e primeiro"<<endl;
}
if(L12==UM){
cout<<"Circulacao entre andares primeiro e segundo"<<endl;
}
if(L2U==UM){
cout<<"Circulacao entre andares segundo e ultimo"<<endl;
}
}
}
}
int main(){
do{
do{
cout<<"\nDigite a dimensao dos vetores(entre 1 e 5): "; cin >> DIM ;
}while(DIM < MIN || DIM > MAX);
botaoteste(); //Testar valor de BT
LEITURA();//leitura dos sensores
sensores();
cout<< "\n\n\tDigite F ou f para encerrar o programa: ";
cin>> TECLA;
}while(TECLA!='F'&&TECLA!='f');
cout << "\n\n";
}