Consider the following program: int x = 10, y = 0; co while (x != y) {x = x-1;y=
ID: 3879580 • Letter: C
Question
Consider the following program: int x = 10, y = 0; co while (x != y) {x = x-1;y=y+1;} // x = 8; y = 2; For this program to terminate, both arms of the co statement must finish execution; i.e., if one or both arms never completes execution, then the program does not terminate. a.) Explain what has to happen for the program to terminate. When it does terminate, what are the possible final values for x and y? If there is more than one possible set of x and y values, explain how all of them can happen. b.) Are there circumstances where the program does not terminate? If so, describe one example.Explanation / Answer
a)
int x=10,y=0;
while(x!=y){ x=x-1; y=y+1;}
In above program will terminate when value of x and y are same.
In this program we have initialize the value of x by 10 and y to 0
Inside the loop we are increasing the value of y by 1 and
decreasing the value of x by 1.
The final value of x=5 and y=5 the program will terminate.
b) In the below case the program will not terminate, as when x and y are equal we will again change the value of x by 8 and y by 2 so it will running forever in the loop
int x=10,y=0;
co while(x!=y){
x=x-1; y=y+1;
if(x==y)
{
x=8;
y=2;
}
}