with(Math){   
     aVar = round(10*random()+1)
     bVar = round(50*random()+1)
     cVar = round(50*random()+1)
     dVar = round(50*random()+1)
     discrim = 4*bVar*bVar-12*aVar*cVar
     s1Var = (2*bVar-sqrt(discrim))/(6*aVar)
     s2Var = (2*bVar+sqrt(discrim))/(6*aVar)
     eVar = round(-2*random())
     feVar = aVar*eVar*eVar*eVar-bVar*eVar*eVar+cVar*eVar+dVar
     if (discrim < 0) {
       fVar = round(10*random()+1)
     } else {
       if ((s2Var-s1Var)>5) {
         fVar = round(s1Var+2*random())
       } else {
         fVar = round(s2Var+2*random())
       }
     }
     ffVar = aVar*fVar*fVar*fVar-bVar*fVar*fVar+cVar*fVar+dVar
     fs1Var = aVar*s1Var*s1Var*s1Var-bVar*s1Var*s1Var+cVar*s1Var+dVar
     fs2Var = aVar*s2Var*s2Var*s2Var-bVar*s2Var*s2Var+cVar*s2Var+dVar
     max = eVar
     fmax = feVar
     minx = eVar
     fmin = feVar
   }
document.writeln("Find the maximum and minimum of the function<p><center><b>f(x) = "+aVar+"x<sup>3</sup> - "+bVar+"x<sup>2</sup> + "+cVar+"x + "+dVar+"</b></center><p> on the closed interval <b>["+eVar+", "+fVar+"].</b><p>")
document.writeln("<hr color='#006600'><font size=+1><b><i>Solution:</i></b></font><br>")
document.writeln("The derivative of <b>f</b> is <b>"+3*aVar+"x<sup>2</sup> - "+2*bVar+"x + "+cVar+"</b>.<p>Setting <b>"+3*aVar+"x<sup>2</sup> - "+2*bVar+"x + "+cVar+" = 0</b>, we find that ")
if (discrim < 0) {
  document.writeln("this equation has no real roots.  Hence, <b>f</b> has no critical points. We form the following table consisting of the endpoints of the interval:")
  document.writeln("<p><center><table bgcolor=black><tr><td><table cellpadding=10 bgcolor=lightgreen width='100%'><tr bgcolor=lightpink><th>x</th><th>f(x)</th></tr>")
  document.writeln("<tr align=right><td>"+eVar+"</td><td>"+feVar+"</td></tr>")
  document.writeln("<tr align=right><td>"+fVar+"</td><td>"+ffVar+"</td></tr>")
  document.writeln("</table></td></tr></table><p></center>")
  document.writeln("Hence,<ul><li>the maximum of <b>f</b> is at <b>x</b> = ")
  if (feVar < ffVar){
    document.write(fVar+"<li>the minimum of <b>f</b> is at <b>x</b> = "+eVar+".</ul>")
  } else {
    document.write(eVar+"<li>the minimum of <b>f</b> is at <b>x</b> = "+fVar+".</ul>")
  }
} else {
document.writeln("the critical points of <b>f</b> are "+s1Var+" and "+s2Var+".<p>")
document.writeln("We form the following table consisting of the endpoints of the interval and the critical points in the interval:<p><center><table bgcolor=black><tr><td><table cellpadding=10 bgcolor=lightgreen width='100%'><tr bgcolor=lightpink><th>x</th><th>f(x)</th></tr>")
document.writeln("<tr align=right><td>"+eVar+"</td><td>"+feVar+"</td></tr>")
document.writeln("<tr align=right><td>"+fVar+"</td><td>"+ffVar+"</td></tr>")
document.writeln("<tr align=right><td>"+s1Var+"</td><td>"+fs1Var+"</td></tr>")
if ((s2Var-s1Var)<5) {
  document.writeln("<tr align=right><td>"+s2Var+"</td><td>"+fs2Var+"</td></tr>")
}
document.writeln("</table></td></tr></table><p></center>")
if (ffVar > fmax){
  max = fVar
  fmax = ffVar
}
if (fs1Var > fmax) {
  max = s1Var
  fmax = fs1Var
}
if (((s2Var-s1Var)<5)&(fs2Var > fmax)) {
  max = s2Var
  fmax = fs2Var
}
if (ffVar < fmin){
  minx = fVar
  fmin = ffVar
}
if (fs1Var < fmin) {
  minx = s1Var
  fmin = fs1Var
}
if (((s2Var-s1Var)<5)&(fs2Var < fmin)) {
  minx = s2Var
  fmin = fs2Var
}
document.writeln("Hence,<ul><li>the maximum of <b>f</b> is at <b>x</b> = "+max+" and")
document.writeln("<li>the minimum of <b>f</b> is at <b>x</b> = "+minx+".</ul>")
}

