Помогите написать алгаритм и немного описать задачу.
Дан текст, содержащий от 2 до 30 слов, в каждом из которых от 2 до 10 латинских букв; между соседними словами - не менее одного пробела. Напечатать все слова, отличные от последнего слова, предварительно преобразовав каждое из них по следующему правилу: 1) перенести первую букву в конец слова; 2) перенести последнюю букву в начало слова.
program stroki;
var i,j:integer;
sl:array[1..30] of string[10];
st:string;
c:char;
begin
writeln('Vvedite tex:');
readln(st);
j:=1;
for i:= 1 to length(st) do
begin
if st[i] <> ' ' then sl[j] := sl[j] + st[i];
if (st[i] = ' ') and (st[i+1] <> ' ') then j := j + 1;
end;
for i:= 1 to j do
begin
c := sl[i][1];
sl[i][1] := sl[i][length(sl[i])];
sl[i][length(sl[i])] := c;
end;
for i := 1 to j-1 do
if sl[i] <> sl[j] then write(sl[i] + ' ');
end.