mirror of
https://github.com/appinfosapienza/so-un-bot.git
synced 2025-05-06 21:59:36 +02:00
Add question 11-20 of 01/22 exam
This commit is contained in:
parent
922b161e77
commit
604c2269b6
41 changed files with 332 additions and 2 deletions
47
Ingegneria del Software/20/correct.txt
Normal file
47
Ingegneria del Software/20/correct.txt
Normal file
|
@ -0,0 +1,47 @@
|
|||
: block CoffeeMachine
|
||||
parameter Real T = 1; // clock
|
||||
InputInteger Customer2Machine;
|
||||
OutputInteger Machine2Customer;
|
||||
/*
|
||||
0: nop
|
||||
1: enough coins inserted
|
||||
2: drink dispensed
|
||||
3: done
|
||||
*/
|
||||
Integer state;
|
||||
/*
|
||||
0: waiting for coins
|
||||
1: waiting for selection
|
||||
2: dispensing
|
||||
3: refund/change
|
||||
*/
|
||||
algorithm
|
||||
when initial() then
|
||||
state := 0;
|
||||
Machine2Customer := 0;
|
||||
elsewhen sample(0, T) then
|
||||
if (pre(state) == 0) and (Customer2Machine == 1)
|
||||
then // customer has inserted enough coins
|
||||
state := 1;
|
||||
Machine2Customer := 1;
|
||||
elseif (pre(state) == 1) and (Customer2Machine == 2) // drink selected
|
||||
then // drink selected
|
||||
state := 2; // dispensing drink
|
||||
Machine2Customer := 0;
|
||||
elseif (pre(state) == 1) and (Customer2Machine == 3) // cancel transaction
|
||||
then // refund
|
||||
state := 3; // refund/change
|
||||
Machine2Customer := 0;
|
||||
elseif (pre(state) == 2) // drink dispensed
|
||||
then // drink dispensed
|
||||
state := 3;
|
||||
Machine2Customer := 2;
|
||||
elseif (pre(state) == 3) // refund/change
|
||||
then // refund
|
||||
state := 0;
|
||||
Machine2Customer := 3; // done
|
||||
else state := pre(state);
|
||||
Machine2Customer := pre(Machine2Customer);
|
||||
end if;
|
||||
end when;
|
||||
end CoffeeMachine;
|
3
Ingegneria del Software/20/quest.txt
Normal file
3
Ingegneria del Software/20/quest.txt
Normal file
|
@ -0,0 +1,3 @@
|
|||
img=https://imgur.com/Wk63xgA
|
||||
Lo state diagram in figura descrive (in modo semplificato) una macchina distributrice di bevande. Quale dei seguenti
|
||||
modelli Modelica è plausibile per lo state diagram in figura?
|
47
Ingegneria del Software/20/wrong 2.txt
Normal file
47
Ingegneria del Software/20/wrong 2.txt
Normal file
|
@ -0,0 +1,47 @@
|
|||
block CoffeeMachine
|
||||
parameter Real T = 1; // clock
|
||||
InputInteger Customer2Machine;
|
||||
OutputInteger Machine2Customer;
|
||||
/*
|
||||
0: nop
|
||||
1: enough coins inserted
|
||||
2: drink dispensed
|
||||
3: done
|
||||
*/
|
||||
Integer state;
|
||||
/*
|
||||
0: waiting for coins
|
||||
1: waiting for selection
|
||||
2: dispensing
|
||||
3: refund/change
|
||||
*/
|
||||
algorithm
|
||||
when initial() then
|
||||
state := 0;
|
||||
Machine2Customer := 0;
|
||||
elsewhen sample(0, T) then
|
||||
if (pre(state) == 0) and (Customer2Machine == 1)
|
||||
then // customer has inserted enough coins
|
||||
state := 1;
|
||||
Machine2Customer := 1;
|
||||
elseif (pre(state) == 1) and (Customer2Machine == 2) // drink selected
|
||||
then // drink selected
|
||||
state := 2; // dispensing drink
|
||||
Machine2Customer := 0;
|
||||
elseif (pre(state) == 1) and (Customer2Machine == 3) // cancel transaction
|
||||
then // refund
|
||||
state := 3; // refund/change
|
||||
Machine2Customer := 0;
|
||||
elseif (pre(state) == 2) // drink dispensed
|
||||
then // drink dispensed
|
||||
state := 0;
|
||||
Machine2Customer := 2;
|
||||
elseif (pre(state) == 3) // refund/change
|
||||
then // refund
|
||||
state := 0;
|
||||
Machine2Customer := 3; // done
|
||||
else state := pre(state);
|
||||
Machine2Customer := pre(Machine2Customer);
|
||||
end if;
|
||||
end when;
|
||||
end CoffeeMachine;
|
47
Ingegneria del Software/20/wrong.txt
Normal file
47
Ingegneria del Software/20/wrong.txt
Normal file
|
@ -0,0 +1,47 @@
|
|||
block CoffeeMachine
|
||||
parameter Real T = 1; // clock
|
||||
InputInteger Customer2Machine;
|
||||
OutputInteger Machine2Customer;
|
||||
/*
|
||||
0: nop
|
||||
1: enough coins inserted
|
||||
2: drink dispensed
|
||||
3: done
|
||||
*/
|
||||
Integer state;
|
||||
/*
|
||||
0: waiting for coins
|
||||
1: waiting for selection
|
||||
2: dispensing
|
||||
3: refund/change
|
||||
*/
|
||||
algorithm
|
||||
when initial() then
|
||||
state := 0;
|
||||
Machine2Customer := 0;
|
||||
elsewhen sample(0, T) then
|
||||
if (pre(state) == 0) and (Customer2Machine == 1)
|
||||
then // customer has inserted enough coins
|
||||
state := 1;
|
||||
Machine2Customer := 1;
|
||||
elseif (pre(state) == 1) and (Customer2Machine == 2) // drink selected
|
||||
then // drink selected
|
||||
state := 2; // dispensing drink
|
||||
Machine2Customer := 0;
|
||||
elseif (pre(state) == 1) and (Customer2Machine == 3) // cancel transaction
|
||||
then // refund
|
||||
state := 0; // refund/change
|
||||
Machine2Customer := 0;
|
||||
elseif (pre(state) == 2) // drink dispensed
|
||||
then // drink dispensed
|
||||
state := 3;
|
||||
Machine2Customer := 2;
|
||||
elseif (pre(state) == 3) // refund/change
|
||||
then // refund
|
||||
state := 0;
|
||||
Machine2Customer := 3; // done
|
||||
else state := pre(state);
|
||||
Machine2Customer := pre(Machine2Customer);
|
||||
end if;
|
||||
end when;
|
||||
end CoffeeMachine;
|
Loading…
Add table
Add a link
Reference in a new issue