Показать сообщение отдельно
Старый 22.05.2011, 15:49   #1 (permalink)
snakind
Новичок
 
Регистрация: 22.05.2011
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Question Ошибка в элементарной программе, поменять местами буквы в строке

По заданию нужно в введённой строке, в словах переставить местами буквы по алфавиту. Ну и вывести итоговую строку самособой. Подскажите пожалуйста, какой рекурсии не хватает и где?

program Slovaeng;
const
Delim=[' ', ',', '.', '?', '!'];
var
s, stmp, str:string;
i:Integer;
Min:char;
begin
begin
writeln ('S:');
readln (s);
i:=1;
str:='';
while i<= length(s) do
begin
while (i<=Length(s)) and (s[i] in delim) do
stmp:=stmp+s[i];
inc(i);
str:='';
while (i<=Length(s)) and (not(str[i] in delim)) do
begin
str:=str+str[i];
inc(i);
end;

if str[i]>(str[i+1]) then min:=str[i+1];
end;
str[i]:=min;
str[i+1]:=str[i];
end;

writeln('получается', stmp);
end.
snakind вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070