1) Nmax=16 явно недостаточно для того, чтобы заполнить массив G.
2) Для внешнего цикла цикл с параметром не подходит (подумайте почему), лучше использовать цикл с предусловием.
3) for i:=i ... параметр цикла и его начальное значение - одна и та же переменная, а это нехорошо. К тому же i - параметр внешнего цикла. Так что меняйте параметр вложенного.
4) В процедуре Work сделайте параметр N - переменным.

Ну вот вроде бы и все (проверила - работает smile.gif).