![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Доброго времени сток Ув.форумчане!помогите пожалуста в решении задачи :Дана строка слов,отделённых пробелом,в конце строки точка.поменять местами два центральных слова,если их количество парное!Если можно приведите код программы на Delphi7
|
|
#2
|
|||
|
|||
|
Как-то так:
Код:
function ReplaceCenterWords(S : String) : String;
var
L : TStrinList;
I : Integer;
begin
Result := S;
L := TStringList.Create;
L.Text := StringReplace(S,' ',#13#10,[rfReplaceAll]);
If L.Count mod 2 = 0 Then
Begin
L.Exchange((L.Count div 2)-1,(L.Count div 2));
Result := StringReplace(L.Text,#13#10,' ',[rfReplaceAll]);
End;
L.Free;
end;Последний раз редактировалось lmikle, 06.05.2011 в 02:23. |
|
#3
|
|||
|
|||
|
Нашол 100% правильный,к томуже работающий вариант-одна проблема-не могу адаптировать под делфи7 пожалуста помогите!
Код:
program z6;
{ Дана строка слов разделенных пробелом ,в конце строки точка.
Поменять местами два центральных слова если их количество четно}
uses crt;
var a,b:string;i,j,l:longint;
c:array[1..30]of string;
begin
clrscr;
write('введите текст: ');readln(a);
b:='';j:=1;l:=length(a);
if (a[l]<>'.')then begin
writeln(' ОШИБКА!!!');
write(' В конце должна стоять точка');
readln;halt;
end;
for i:=1 to l do
if (a[i]=' ')or(a[i]='.')then begin
c[j]:=b;b:='';inc(j);
end
else b:=b+a[i];j:=j-1;
if j mod 2<>0 then
beginwrite('количество слов нечетно');readln;halt;end;
l:=j div 2;b:=c[l];c[l]:=c[l+1];c[l+1]:=b;
for i:=1 to j do write(c[i],' ');
readln;
end. |
|
#4
|
|||
|
|||
|
А чем тебя мой вариант не устроил?
а адаптировать посто. 1. Выкидываешь uses crt; 2. В начало, после строки с program, вставляешь {$APPTYPE CONSOLE} |
|
#5
|
|||
|
|||
|
Проблема в том,что мне нужно не консольное приложение а оконное!
|
|
#6
|
|||
|
|||
|
Цитата:
я тебе дал функцию, которая принимает строку и возвращает готовый результат. А где ты ее применишь - уже твое дело. |