program wortel;

procedure Stern_Brocot(told : integer);
{
  Walk through Stern-Brocot tree
  until fraction approaches sqrt(2)
}
var
  t : integer;
  m1,n1,m2,n2 : integer;
begin
{ Initialize tree }
  m1 := 0; n1 := 1;
  m2 := 1; n2 := 0;
  t := 0;
  while true do
  begin
    if (n1+n2)*(n1+n2) < (m1+m2)*(m1+m2)*2 then
  { Tightening }
    begin
    { Upper Bound }
      m2 := m1+m2;
      n2 := n1+n2;
    end else begin
    { Lower Bound }
      m1 := m1+m2;
      n1 := n1+n2;
    end;
    Writeln(m1,'/',n1,' < 1/sqrt(2) < ',m2,'/',n2);
    if t > told then Break;
    t := t + 1;
  end;
  Writeln;
  Writeln('iterations = ',t);
  Writeln('sqrt(2) = ',sqrt(2));
  Writeln(n1,'/',m1,' = ',n1/m1);
  Writeln(n2,'/',m2,' = ',n2/m2);
  Writeln(n1,'/',m1,' < sqrt(2) < ',n2,'/',m2);
end;

begin
  Stern_Brocot(42);
end.

Output:

0/1 < 1/sqrt(2) < 1/1
1/2 < 1/sqrt(2) < 1/1
2/3 < 1/sqrt(2) < 1/1
2/3 < 1/sqrt(2) < 3/4
2/3 < 1/sqrt(2) < 5/7
7/10 < 1/sqrt(2) < 5/7
12/17 < 1/sqrt(2) < 5/7
12/17 < 1/sqrt(2) < 17/24
12/17 < 1/sqrt(2) < 29/41
41/58 < 1/sqrt(2) < 29/41
70/99 < 1/sqrt(2) < 29/41
70/99 < 1/sqrt(2) < 99/140
70/99 < 1/sqrt(2) < 169/239
239/338 < 1/sqrt(2) < 169/239
408/577 < 1/sqrt(2) < 169/239
408/577 < 1/sqrt(2) < 577/816
408/577 < 1/sqrt(2) < 985/1393
1393/1970 < 1/sqrt(2) < 985/1393
2378/3363 < 1/sqrt(2) < 985/1393
2378/3363 < 1/sqrt(2) < 3363/4756
2378/3363 < 1/sqrt(2) < 5741/8119
8119/11482 < 1/sqrt(2) < 5741/8119
13860/19601 < 1/sqrt(2) < 5741/8119
13860/19601 < 1/sqrt(2) < 19601/27720
13860/19601 < 1/sqrt(2) < 33461/47321
47321/66922 < 1/sqrt(2) < 33461/47321
80782/114243 < 1/sqrt(2) < 33461/47321
80782/114243 < 1/sqrt(2) < 114243/161564
80782/114243 < 1/sqrt(2) < 195025/275807
275807/390050 < 1/sqrt(2) < 195025/275807
470832/665857 < 1/sqrt(2) < 195025/275807
470832/665857 < 1/sqrt(2) < 665857/941664
470832/665857 < 1/sqrt(2) < 1136689/1607521
1607521/2273378 < 1/sqrt(2) < 1136689/1607521
2744210/3880899 < 1/sqrt(2) < 1136689/1607521
2744210/3880899 < 1/sqrt(2) < 3880899/5488420
2744210/3880899 < 1/sqrt(2) < 6625109/9369319
9369319/13250218 < 1/sqrt(2) < 6625109/9369319
15994428/22619537 < 1/sqrt(2) < 6625109/9369319
15994428/22619537 < 1/sqrt(2) < 22619537/31988856
15994428/22619537 < 1/sqrt(2) < 38613965/54608393
54608393/77227930 < 1/sqrt(2) < 38613965/54608393
93222358/131836323 < 1/sqrt(2) < 38613965/54608393
93222358/131836323 < 1/sqrt(2) < 131836323/186444716

iterations = 43
sqrt(2) =  1.41421356237310E+0000
131836323/93222358 =  1.41421356237310E+0000
186444716/131836323 =  1.41421356237310E+0000
131836323/93222358 < sqrt(2) < 186444716/131836323