Question: Nested do loops - why does expression in if statement become 'boolean'.

Program:

restart;

printlevel:=3:

for a from 3 to 30 do

   for b from 23 to 30 do

       for k from b to 30 do

         for d from 4 to 30 do

            for e from 10 to 30 do

  big:=max(sqrt(a^2+b^2), sqrt(k^2+d^2), b+k,e,d+e-a):

  small:=min(sqrt(a^2+b^2), sqrt(k^2+d^2), b+k,e,d+e-a):

  g:=big-small;

print(whattype(g));

printf("%g %g %g %g %g %g %g %g\n",a,b,k,d,e, g, big, small):

  if (big-small)<15 then  printf("%g %g %g %g  %g %g \n",a,b,k,d,e, g): 

      else

  end if:

end do:  #e

end do:  #d

end do:  #k

end do:  #b

end do:  #a

 

Results:

The output appears OK, when the variable g is an integer, but then when the variables big and small become decimal, g is no longer integer, but a 'proc() option builtin;'

Error message:  Error, cannot evaluate boolean -538^(1/2) < 69

Any help most appreciated.

David S

Please Wait...