Подумай головой.
Допустим, num у тебя = 6. И ты говоришь, что в массиве будет 6 элементов.
6 элементов с нуля это какие индексы?
Это 0, 1, 2, 3, 4, 5. Это и есть 6 элементов. У тебя нет элемента с индексом 6, потому что это уже 7ой элемент
for var i := 0 to num - 1 do
или
for var i := 0 to Pred(num) do
а лучше всего использовать спец функции, универсальный способ для всех массивов
for var i := Low(a) to High(a) do
также, можно вообще не использовать индексы, а перебрать все элементы (но это только для чтения из массива)
for var i in a do