---
title: Diagramma di flusso programma parcheggio
tags: sistemi
---
<!-- stile -->
{%hackmd 3jQFhMRBRZqPo2NDNFJkLA %}
<style>
#sem_r {
fill: rgba(255, 0, 0, 0.5);
}
#ini_sem, #sem_v {
fill: rgba(0, 255, 0, 0.5);
}
</style>
## Diagramma di flusso programma parcheggio
Codice sorgente dal quale si è ricavato il diagramma di flusso. (Il codice è quello originale, preso dalla soluzione al quesito dell’Esame di Stato proposta dalla Zanichelli.
Sì, sono presenti molti errori.)
### Codice di partenza
```
void setup () {
int cont=0; // inizializzo contatore
digitalWrite(2,LOW); //rosso spento
digitalWrite(3,HIGH); //verde acceso
}
void loop () {
statoIn=digitalRead(2); //leggo sensore ingresso
if (statoIn==1) { //se fascio interrotto
cont=cont+1; //il conteggio si incrementa
}
if (cont==90) { //se il conteggio raggiunge 90
digitalWrite(2,HIGH); //rosso acceso
digitalWrite(3,LOW); //verde spento
}
else { // altrimenti
digitalWrite(2,LOW); //rosso spento
digitalWrite(3,HIGH); //verde acceso
}
statoOut=digitalRead(3); //leggo sensore uscita
if (statoOut==1) { //se fascio interrotto
cont=cont-1; //il conteggio si decrementa
}
}
```
### Diagramma di flusso
```flow
inizio=>start: Inizio
ini_c=>operation: Il conteggio delle auto
parte da zero
ini_sem=>inputoutput: Semaforo:
Accendi il verde
?sens_i=>condition: Sta entrando un’auto?
add_c=>operation: Aggungi una unità al conteggio
?c_nov=>condition: Le auto sono novanta?
sem_r=>inputoutput: Semaforo:
Accendi il rosso
?sens_u=>condition: Sta andando via un’auto?
sem_v=>inputoutput: Semaforo:
Accendi il verde
sott_c=>operation: Sottrai una unità al conteggio
inizio->ini_c->ini_sem->?sens_i
?sens_i(no)->?sens_u
?sens_i(yes)->add_c->?c_nov
?c_nov(yes, right)->sem_r(right)->?sens_u
?c_nov(no)->?sens_i
?sens_u(yes)->sott_c->sem_v(right)->?sens_i
?sens_u(no)->?sens_i
```