Mail.ruПочтаМой МирОдноклассникиИгрыЗнакомстваНовостиПоискСмотриComboВсе проекты

Делфи.помогите пожалуйста

Марина Санжиева Гуру (4935), на голосовании 11 лет назад
помогите пожалуйста процедуру написать

Дан текст: между словами - пробел, за последним словом - точка.Удалить из слов нечетной длины среднюю букву.Вывести преобразованный текст.
Голосование за лучший ответ
Sergey Zhukov Профи (666) 11 лет назад
Вот функция, которая позволит выполнить данное преобразование:

function DelBuk(s: string): string;
var
tmp,word: string;
begin
while (pos(' ',s)<>0) or (s[length(s)]='.') do
begin
if pos(' ',s)<>0 then
begin
word:=copy(s,1,pos(' ',s)-1);
Delete(s,1,pos(' ',s));
end
else
begin
word:=copy(s,1,pos('.',s)-1);
Delete(s,length(s),1);
end;
if (length(word) mod 2)<>0 then
begin
Word:=copy(word,1,length(word) div 2)+copy(word,(length(word) div 2)+2,length(word)-((length(word) div 2)+1));
end;
tmp:=tmp+' '+Word;
end;
Result:=tmp;
end;

Как пользоваться. Например, текст, который нужно преобразовать, берется из компонента Edit1, а выводиться при нажатии на кнопку Button1 в заголовок формы Form1.

procedure TForm1.Button1Click(Sender: TObject);
begin
form1.Caption:=DelBuk(Edit1.text);
end;
Похожие вопросы
Также спрашивают