Nice Tables, doing nice things:
Table of p. 23

Define some important functions for relative error:

error[true_, approximate_]:=approximate-true
relativeError[true_, approximate_]:=error[true, approximate]/true

Create a function for each row of the table (three columns):

TableRow[true_,approximate_]:={true,approximate,100*relativeError[true,approximate]}
NewTableRow[z_]:=TableRow[z[[1]],z[[2]]]

TableForm is useful for making pretty tables:

a=100
b=101
astar=100.1
TableForm[
Table[
NewTableRow[z],{z,Transpose[{
{a,b-a,(b-a)^2,4.*a*b*Sin[Pi/360]^2,(b-a)^2+4.*a*b*Sin[Pi/360]^2,Sqrt[(b-a)^2+4.*a*b*Sin[Pi/360]^2]},
{astar,b-astar,(b-astar)^2,4.*astar*b*Sin[Pi/360]^2,(b-astar)^2+4.*astar*b*Sin[Pi/360]^2,Sqrt[(b-astar)^2+4.*astar*b*Sin[Pi/360]^2]}}]}] ,
TableHeadings->{{"a","b-a","(b-a)^2","4.*a*b*Sin[Pi/360]^2","(b-a)^2+4.*a*b*Sin[Pi/360]^2","Sqrt[(b-a)^2+4.*a*b*Sin[Pi/360]^2]"},{"True","Estimate","Percent Error"}}]