В программе первым делом проверяется условие выхода. Если оно никогда не становится ложным, то цикл зацикливается. Проанализировав каждую программу, я нашел, что в программе с `s:=5;` и условием `while s>1 do` происходит зацикливание, так как `s` не изменяется внутри тела цикла.