| 
| 
 | Вопрос # 1 681/ вопрос открыт / | 
 |  ЗДРАВСТВУЙТЕ! Помогите дописать программу по следующей задаче: Дана строка поменять местами первый и последний символ в каждом слове. Я написал только для одного слова строки , как сделать для каждого слова строки? Что нужно поменять? .....Заранее спасибо! Приложение:Переключить в обычный режим program str;vars,s1,s2:string;l,n:integer;beginwriteln('vvedite strocu');readln(s);n:=length(s);l:=1;while l<=n doif s[l]=' ' thenbegins1:=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+1endelsel:=l+1writeln(s);readln;end.
|  |   Вопрос задал: Гогин Алексей Андреевич (статус: Посетитель)Вопрос отправлен: 13 июня 2008, 11:00
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: ANBsoft Здравствуйте, Гогин Алексей Андреевич!Примерно так.
 Приложение:Переключить в обычный режим program str;vars:string;c:char;n,t:integer;beginwriteln('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]:Здравствуйте. Поняли свою ошибку, это уже радует, значит не зря старался.
 Успехов в дальнейшем обучении.
   |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |