Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.03.2011, 08:29   #1
Downtown
 
Регистрация: 10.03.2011
Сообщений: 3
По умолчанию Преобразовать

Преобразуйте текст по следующему правилу: если нет символа '*', то оставить без изменений, иначе, заменить каждый символ, встречающийся после каждого символа '*', на '-'.
Downtown вне форума Ответить с цитированием
Старый 10.03.2011, 10:04   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
isFound := false;
for i:=1 to Length(s) do
  if isFound then begin
     s[i] := '-';
     isFound := false;
  end
  else 
     if s[i] = '*' then isFound := true;

только в условии задачи есть неоднозначность.
расскажите, строчка: 0**1
в какую должна преобразоваться?

Последний раз редактировалось Serge_Bliznykov; 10.03.2011 в 13:32.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.03.2011, 10:14   #3
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Код:
i:=1;
while i<Length(InStr) do
  begin
    if InStr[i]='*' 
      then
        begin
          InStr[i+1]:='-';
          Inc(i,2)
        end
     else Inc(i)
  end
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 10.03.2011, 11:31   #4
Downtown
 
Регистрация: 10.03.2011
Сообщений: 3
По умолчанию

перед последним else оператора нету, подскажите какой
Downtown вне форума Ответить с цитированием
Старый 10.03.2011, 13:34   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
перед последним else оператора нету, подскажите какой
поясните, какой код Вы имеете в виду? ( в моём примере вместо
for i:=1 to Length(s) then
надо, разумеется, for i:=1 to Length(s) do
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.03.2011, 14:41   #6
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
только в условии задачи есть неоднозначность.
расскажите, строчка: 0**1
в какую должна преобразоваться?
По-моему нет никакой неоднозначности. Строчка 0**1 должна преобразоваться в строчку 0*-1
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразовать Asdprom Общие вопросы C/C++ 2 07.03.2011 15:40
си++,преобразовать DimR Помощь студентам 2 22.09.2010 11:10
Преобразовать массив ai\ekcah^p Помощь студентам 2 04.05.2009 20:52
Преобразовать в дату Iskin Microsoft Office Excel 2 14.04.2009 07:57
ПРЕОБРАЗОВАТЬ malevich Общие вопросы Delphi 1 07.12.2006 21:08