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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2009, 12:03   #1
Maksik
Пользователь
 
Регистрация: 24.06.2009
Сообщений: 14
По умолчанию в каждом слове обратить порядок букв

Всем доброго времени суток.
Язык программирования - Паскаль.
Задание: Дан произвольный текст, надо в каждом слове обратить порядок букв, чтобы из слова "привет" получилорсь слово "тевирп".

INPUT.TXT
Это пример простого теста. Если Вы еще не поняли, то запишите буквы каждого слова в обратном порядке. Кстати, применение алгоритма «переворачивания» слов дважды приводит к восстановлению исходного теста.

OUTPUT.TXT
отЭ ремирп оготсорп атсет. илсЕ ыВ еще ен иляноп, от етишипаз ывкуб огоджак аволс в монтарбо екдяроп. итатсК, еиненемирп амтирогла «яинавичаровереп» воле ыджавд тидовирп к юинелвонатссов огондохеи атсет.
Maksik вне форума Ответить с цитированием
Старый 20.10.2009, 12:27   #2
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

2Maksik A HAM OHO HADO?
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума Ответить с цитированием
Старый 20.10.2009, 12:29   #3
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,537
По умолчанию

Настроение у меня хорошее, лови:

Код:
function revers_str(const str: string) : string;
var i: integer;
begin
  result :='';
  for i:=length(str) downto 1 do
    result := result + str[i];
end;
Gorychev вне форума Ответить с цитированием
Старый 20.10.2009, 12:45   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Настроение у меня хорошее, лови:
да щас..
а Вы задание внимательно читали?
в каждом слове обратить порядок букв.
имхо должно получиться как-то так:
в моджак еволс ьтитарбо кодяроп вкуб

p.s. хотя добавить разбивку строки на слова (поиском на форуме примеры легко найти) и для каждого отдельного слова вызвать Вашу функцию и всё, задача решена...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.10.2009, 13:14   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я помоему уже давал решение такой задачи, неужели поиск отменили?
Код:
var e,s:string;i:integer;
begin
 s:='В тексте содержатся слова на русском языке, разделенные между собою пробелом, запятой или точкой.';
 s:=' '+s;
 e:='';
 i:=1; while i<length(s) do begin
   
   while (i<length(s))and(s[i]<>' ') do begin
    e:=s[i]+e;
    inc(i);
   end;
   write(e,' ');e:='';
  
  inc(i);
 end;
 readln;
  { TODO -oUser -cConsole Main : Insert code here }
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.10.2009, 15:50   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

аха. Виталий, зачёт!
только запятая тоже инвертируется вместе со словом, а не должна... (ну и правильно, меня смутил текст строки. А в коде программы слова разделены только пробелом и ничем другим!)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.10.2009, 16:16   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Serge_Bliznykov
Я ж говорю: Давал такой пример недавно, так что автор пусть поиском пойдет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.10.2009, 20:24   #8
Chudo4258
Форумчанин
 
Аватар для Chudo4258
 
Регистрация: 19.02.2009
Сообщений: 622
По умолчанию

Цитата:
только запятая тоже инвертируется вместе со словом, а не должна... (ну и правильно, меня смутил текст строки. А в коде программы слова разделены только пробелом и ничем другим!)
дак а тут дописать:

var e,s:string;i:integer;
begin
s:='В тексте содержатся слова на русском языке, разделенные между собою пробелом, запятой или точкой.';
s:=' '+s;
e:='';
i:=1; while i<length(s) do begin

while (i<length(s))and((s[i]<>' ' or s[i]<>',' or s[i]<>'.' { и т.д. все символы, которыми могут разделятся слова})) do begin
e:=s[i]+e;
inc(i);
end;
write(e,' ');e:='';

inc(i);
end;
readln;
{ TODO -oUser -cConsole Main : Insert code here }
end.

Но только в результате все знаки препинания исчезнут...
Жми на весы!!!
Chudo4258 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
На каждом клике действие! Rebel123 Общие вопросы Delphi 2 28.08.2009 22:22
Установить сколько согласных букв в каждом слове данного предложения ivan89 Общие вопросы C/C++ 2 12.11.2008 15:29
Перебор заглавных букв в слове =LeonZone= Общие вопросы Delphi 8 02.11.2007 14:59