edited by
2,483 views
15 votes
15 votes

List the invariant assertions at points $A, B, C, D$ and $E$ in program given below:

Program division (input, output)
Const 
    dividend = 81; 
    divisor = 9;
Var  remainder, quotient:interger
begin 
    (*(dividend >= 0) AND (divisor > 0)*)  
    remainder := dividend;  
    quotient := 0;  
    (*A*)
While (remainder >= 0) do
begin (*B*)
    quotient := quotient + 1;
    remainder := remainder - divisor;
    (*C*)
end;  
    (*D*)
    quotient := quotient - 1;
    remainder := remainder + divisor;  
    (*E*)
end
edited by

1 Answer

8 votes
8 votes
A: remainder >= 0 and quotient = 9;

B: remainder >= 0 and quotient  <= divident/divisor

C: quotient - 1 <= divident/divisor

D: remainder < 0 and quotient - 1 = $\lfloor$ divident/divisor $\rfloor$

E: divident = divisor * quotient + remainder

PS: To be fixed.

Related questions

4 votes
4 votes
2 answers
1
go_editor asked Dec 19, 2016
2,291 views
Consider the two program segments below:for i:=1 to f(x) by 1 do S endi:=1; While i<=f(x) do S i:=i+1 endUnder what conditions are these two programs equivalent? Treat $S...
36 votes
36 votes
6 answers
2