Informatica 5 Liceo Scientifico Scienze Applicate/Distributore Bibite
Distributore Automatico Panini e Bibite
modificaIl distributore di dolcetti e bibite che troviamo a scuola è il classico esempio di automa. Quando si analizza una di queste macchine si deve pensare agli ingressi, alle uscite e alle variabili di stato. Gli ingressi sono i soldi che possiamo via via inserire, un ingresso è anche il codice del prodotto desiderato, anche il pulsante per ottenere il resto è un ingresso; l'uscita è invece rappresentata dal prodotto erogato o dai soldi che vengono restituiti; le variabili di stato che servono per descrivere lo stato interno della macchina possono essere il numero di panini o bibite ancora disponibili o i soldi inseriti dal cliente oppure il totale incassato. Vogliamo scrivere un programma che simuli il comportamento di un distributore automatico di bibite e panini per far pratica con le variabili di stato e le variabili d'ingresso e uscita.Ipotizziamo che dopo una fase in cui si caricano i panini e le lattine si possano selezionare i diversi prodotti dopo aver inserito un importo uguale o maggiore del prezzo del prodotto, il distributore non solo controlla che il credito sia sufficiente ma controlla che il prodotto sia effettivamente disponibile e inoltre restituisce il resto. |
Ecco il codice
disp('distributore bibite') nlattinecoca=input('quante lattine di coca vuoi caricare?'); prezzolattinacoca=input('prezzo vendita coca cola?'); npaninisalame=input('quanti panini al salame vuoi caricare?'); prezzopaninisalame=input('prezzo vendita panino?'); disp('distributore pronto'); importo=0; while (npaninisalame>0 || nlattinecoca>0) disp('premi soldin per inserire del denaro'); disp('premi panino per prendere un panino al salame'); disp('premi bibita per prendere una lattina'); disp('premi restos per ottenere il resto'); scelta=input('inserisci la tua scelta: ','s'); if(scelta=='soldin') moneta=input('quanti soldi inserisci? '); importo=importo+moneta; endif if(scelta=='panino') if(npaninisalame>0) if (importo>=prezzopaninosalame) npaninisalame=npaninisalame-1; disp('ecco il tuo panino al salame') importo=importo-prezzopaninosalame; else disp('credito insufficiente') endif else disp('mi dispiace i panini sono finiti') endif endif if(scelta=='bibita') if(nlattinecoca>0) if (importo>=prezzolattinacoca) nlattinecoca=nlattinecoca-1; disp('ecco la tua bibita') importo=importo-prezzolattinacoca else disp('credito insufficiente') endif else disp('mi dispiace le bibite sono finite') endif endif if (scelta=='restos') disp('Il tuo resto è ') disp(importo) importo=0; endif endwhile disp('distributore vuoto attendere il tecnico')