Professional Documents
Culture Documents
h>
bit CoinIn()
{
if (Quarter == 0 && Nickel == 0 && Dime == 0 )
return 0;
else return 1;
}
CurrentSt = 0;
Action = 0;
while(1)
{
switch (CurrentSt) /* select the type of calculation */
{
case 0: if (CoinIn())
{ Action = 0;
NextSt = 1;
}
else
{ Action = 2;
NextSt = 0;
}
break;
case 1: if (Sum75(curr_sum))
{ Action = 1;
NextSt = 1;
}else
{ Action = 2;
NextSt = 2;
}break;
case 2: if (CoinIn())
{ Action = 0;
NextSt = 1;
}else
{ Action = 2;
NextSt = 2;
} break;
CurrentSt = NextSt;
switch (Action)
{
case 0: curr_sum = AddCoin(curr_sum);
Release = 0;
break;
case 1: curr_sum = SubRelease(curr_sum);
Release = 1;
break;
case 2: break;
}
}
}