|
Вопрос # 1 681/ вопрос открыт / |
|
ЗДРАВСТВУЙТЕ! Помогите дописать программу по следующей задаче: Дана строка поменять местами первый и последний символ в каждом слове. Я написал только для одного слова строки , как сделать для каждого слова строки? Что нужно поменять? .....Заранее спасибо!
Приложение: Переключить в обычный режим- program str;
- var
- s,s1,s2:string;
- l,n:integer;
- begin
- writeln('vvedite strocu');
- readln(s);
- n:=length(s);
- l:=1;
- while l<=n do
- if s[l]=' ' then
- begin
- s1:=copy(s,l-1,1);
- delete(s,l-1,1);
- insert(s1,s,1);
- s2:=copy(s,2,1);
- delete(s,2,1);
- insert(s2,s,l-1);
- l:=n+1
- end
- else
- l:=l+1
- writeln(s);
- readln;
- end.
 |
Вопрос задал: Гогин Алексей Андреевич (статус: Посетитель)
Вопрос отправлен: 13 июня 2008, 11:00
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: ANBsoft
Здравствуйте, Гогин Алексей Андреевич!
Примерно так.
Приложение: Переключить в обычный режим- program str;
- var
- s:string;
- c:char;
- n,t:integer;
- begin
- writeln('vvedite strocu');
- readln(s);
- n:=1;
- t:=1;
- while t<=Length(s) do begin
- if (s[t]=' ') then begin
- if (t>n) then begin
- c:=s[t];
- s[t]:=s[n];
- s[n]:=c;
- end;
- n:=t+1;
- end;
- Inc(t);
- end;
- if t>n then begin
- c:=s[t];
- s[t]:=s[n];
- s[n]:=c;
- end;
- writeln(s);
- readln;
- end.
 |
Ответ отправил: ANBsoft (статус: Студент)
Время отправки: 13 июня 2008, 17:33
Оценка за ответ: 1
Комментарий к оценке: Не получается
Выдает примерно такой результат
строка: tyu iop ert vbn
результат: yut opi rte bn
|
Мини-форум вопроса
Всего сообщений: 3; последнее сообщение — 18 июня 2008, 00:01; участников в обсуждении: 2.
|
ANBsoft (статус: Студент), 14 июня 2008, 00:44 [#1]:
До чего же люди бывают ленивые и неблагодарные.
Я набросал пример на глаз - без проверки (не было под рукой Делфи чтобы проверить). А Вы вместо того чтобы понять как работает алгоритм (саму идею) и исправить ждете только готового, типа другие должны все разжевать и в рот положить.
Если уж Вы такой ленивый (или недостаточно сообразительный), приведу работающий код (сравните насколько он отличается от начального):
n:=1;
t:=1;
while t<=Length(s) do begin
if (s[t]=' ') then begin
if (t>n) then begin
c:=s[t-1];
s[t-1]:=s[n];
s[n]:=c;
end;
n:=t+1;
end;
Inc(t);
end;
if (t>n) then begin
c:=s[t-1];
s[t-1]:=s[n];
s[n]:=c;
end;
P.S. Спасибо за оценку (хотя зря я наверное распинаюсь - как в пословице про бисер ).
|
|
Гогин Алексей Андреевич (статус: Посетитель), 17 июня 2008, 23:37 [#2]:
Здраствуйте ,Бубырь Александр Николаевич! Все работает спасибо вам за код.Со своей стороны прошу извенить меня за столь строгую оценку вашего ответа в связи с моими недостаточными знаниями языка TURBO PASCAL. P.S Язык начал изучать 1,5 месяца назад.
|
|
ANBsoft (статус: Студент), 18 июня 2008, 00:01 [#3]:
Здравствуйте.
Поняли свою ошибку, это уже радует, значит не зря старался.
Успехов в дальнейшем обучении.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|