Задача простая: удалить из строки последнее слово
procedure del_slovo(s:string);
var i,k,j:integer;q:boolean;
begin
k:=0; i:=length(s);
while s[i]=' ' do begin delete(s,i,1); i:=i-1; end;
q:=false;
while (not q) and (i>=1) do
begin
if (s[i]<>' ') and (s[i-1]=' ')
then
begin delete(s,i-1,length(s)-i+2); q:=true; end
else i:=i-1;
end;
end;
Никак не могу понять, что не так. Вроде должно работать