Наиболее простым решением этой задачи, но не самым эффективным, является многократное повторение циклического сдвига на один элемент.
Для примера рассмотрим задачу: Пусть задан массив на n элементов и выполнить циклический сдвиг его элементов влево пока первый элемент не станет равным нулю. Нулевой элемент обязательно существует.
Так как нам неизвестно где находится нулевой элемент, то циклический сдвиг влево на один будем повторять в цикле с условием, пока первый элемент не станет равным нулю.
Наиболее удачным выбором будет цикл while, так как прежде чем сдвигать, мы проверим значение первого элемента, и если он окажется равным нулю, то завершаем работу цикла:
while a[1] <> 0 do
begin
<Циклический сдвиг влево на один элемент>
end;
PS: Приведенный выше алгоритм справедлив только для случая, если нулевой элемент массива обязательно существует. В противном случае цикл будет выполняться бесконечно.