Вывести слова в обратном порядке (среда программирования КуМир)

Тема: 
Строки

Вводится строка, состоящая из слов, разделенных пробелами. Требуется вывести на экран слова строки в обратном порядке.

Алгоритм решения

Вводятся две переменные - "начало" и "конец", обоим присваивается номер последнего символа строки. Далее в цикле просматривается исходная строка, начиная с ее конца и двигаясь к началу. При этом на каждой итерации цикла уменьшается на 1 значение переменной "начало".

Когда в строке встречается пробел, то это значит, что начало слова было найдено на прошлом символе. Значит, чтобы извлечь слово, надо взять срез от значения "начало" + 1 до значения "конец". После этого переменной "конец" присваивается текущее "начало", чтобы знать, где закончится следующее слово.

В приведенном коде в начало и конец строки добавляются пробелы. Это сделано для того, чтобы не было необходимости делать лишние проверки в цикле. Ведь если перед первым словом нет пробела, то оно не будет выведено. Пробел же в конце строки необходим, чтобы при выводе после каждого слова выводился пробел, иначе после слова с конца исходной строки пробела не будет.

алг 
нач
  лит строка
  цел начало, конец, длина
  ввод строка
  строка := " " + строка + " "
  длина := длин(строка)
  начало := длина-1
  конец := длина
  нц пока начало > 0
    если строка[начало] = " " то
      вывод строка[начало+1:конец]
      конец := начало
    все
    начало := начало - 1
  кц
кон

Пример работы программы:

один два три четыре
четыре три два один