 Here is the pseudocode for the recursive algorithms students should use to solve the only eating chocolate squares with nuts in them problem:
 If the student is passed a single square with nuts, they will eat it and make no recursive call to a neighbor.
 If the student breaks the chocolate bar into two pieces, they can pass each piece to a different neighbor so they can each execute the algorithm themselves.
Eat Chocolate Bar(B)

if B is a single square then

if B has a nut then

Eat it

Break the bar into two pieces
Eat Chocolate Bar(Piece 1)
Eat Chocolate Bar(Piece 2)
 The associated programming problem is obtained by using an array to represent a onedimensional chocolate bar.
 Pseudocode for searching through the array:
const MAX = 100; type BarType = array[1..MAX] of Boolean; procedure EatChocolate( Bar: BarType; Low, High: Integer); var Middle: Integer; begin

if Low = High then

begin
if Bar[Low] then

writeln(’Eating nut at: ’, Low)

begin
Middle := (Low + High) div 2;
EatChocolate(Bar, Low, Middle);
EatChocolate(Bar, Middle+1, High)
end
 Once students understand the programming problem, the stage is set for them to recursive algorithms involving arrays, such as computing Fibonacci numbers or a binary search.
 Pseudocode for searching through the array: