Salve mi sono appena registrato! Premetto che studio il linguaggio C da qualche mese e stavo scrivendo questo programma che dovrebbe controllare il teorico funzionamento di un cancello.
C'è però un errore logico che non so risolvere ovvero alla fine del primo ciclo la variabile STAT sembra ritornare a valore CANC_C (0) mentre dovrebbe essere CANC_A(1). Cosa sbaglio?
codice:
#include <stdio.h>
#include <stdlib.h>
#define INTERR_OFF 0
#define INTERR_ON 1
#define FOT_C 1 //fotocellula coperta//
#define FOT_L 0 //fotocellula libera//
#define CANC_C 0 //cancello chiuso//
#define CANC_A 1 //cancello aperto//
#define SWITCH_A 1 //interruttore per aprire//
#define SWITCH_C 0 //interr. per chiudere//
int main(int argc, char *argv[])
{
int FOT,STAT,PAUS,SWITCH,INTERR;
FOT = FOT_L; STAT = CANC_C;
INTERR = INTERR_ON;
while(INTERR==INTERR_ON)
{
printf("SELEZIONA STATO DEL CANCELLO: \n");
scanf("%d",&SWITCH);
switch(SWITCH)
{ case SWITCH_A:
STAT==CANC_A;
printf("Il cancello è stato aperto.\n");
break;
case SWITCH_C:
if(STAT==CANC_A)
{
printf("Inserisci lo stato della fotocellula: \n.");
scanf("%d",&FOT);
switch(FOT)
{
case FOT_L:
printf("Il cancello è stato chiuso.\n");
STAT==CANC_C;
break;
case FOT_C:
printf("C'è un ostacolo vicino al cancello impossibile chiudere!\n");
STAT==CANC_A;
break;
}
}
else
{
printf("Il cancello è gia' chiuso!\n");
}
break;
}
printf("Aggiorna lo stato del cancello (spegni sistema o lascialo acceso): \n");
scanf("%d",&INTERR);
}
printf("IL SISTEMA E' SPENTO CANCELLO NON FUNZIONANTE!\n");
system("PAUSE");
return 0;
}