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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2013, 11:07   #1
Рыбчик
 
Регистрация: 17.05.2013
Сообщений: 9
По умолчанию робота с текстом и стороками

Замечания.
1. Следует использовать подпрограммы разбиения предложения на слова.
2. Задания выполняются с максимальным использованием подпрограмм.
Дано текст, в котором от 1 до 30 слов, в каждом слове от 1 до 15 букв, слова разделены пробелами.
Задания:
1. Определить и напечатать слова, содержащие максимальное количество букв "о".
2. Из каждого слова нечетной длины удалить среднюю букву.
3. Каждое слово текста напечатать в обратном порядке.
4. В каждом слове последнюю букву перенести на начало слова.
Рыбчик вне форума Ответить с цитированием
Старый 17.05.2013, 11:20   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

1)язык?
2)срок?
3)зарплата?
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 17.05.2013, 11:28   #3
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Наша онлайн-служба "вопрос-ответ" к Вашим услугам:
Код:
var sentences = File.ReadAllLines("file.txt");
var words = sentences.Select(s => s.Split(',','.',' ')).Aggregate<string[],List<string>>(new List<string>(), (l, s) => l.Append(s.ToList()));

int maxO = words.Max(w => w.TakeWhile(c => c == 'о').Count());
words.Where(w => w.TakeWhile(c => c == 'о').Count() == maxO).ForEach(w => Console.WriteLine(w));

words = words.Select(w => (w.Length%2 == 0) ? w : w.Remove(w.Length/2,1));

words.ForEach(w => Console.WriteLine(new string(Array.Reverse(w.ToCharArray()))));

words = words.Select(w => w[w.Length-1].ToString() + w.Remove(w.Length-1));
Abstraction вне форума Ответить с цитированием
Старый 17.05.2013, 19:09   #4
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Код:
aw2l(L,R,W):-W="",R=L;reverse(W,WR),R=[WR|L].
s2l([],W,L,R):-aw2l(L,R,W).
s2l([H|T],W,L,R):-
	char_type(H,space),!,aw2l(L,TL,W),s2l(T,"",TL,R)
	;s2l(T,[H|W],L,R).
o2c([]):-!.
o2c([H|T]):-string_to_list(S,H),write(S),nl,o2c(T).
cn([],_,0):-!.
cn([H|T],H,N):-!,cn(T,H,NN),N is NN+1.
cn([_|T],H,N):-cn(T,H,N).
gmo([],0):-!.
gmo([H|T],N):-gmo(T,NT),"o"=[V],cn(H,V,NH),(NT>NH,!,N=NT;N=NH).
gmwo([],_,[]):-!.
gmwo([H|T],M,R):-"o"=[V],cn(H,V,NH),gmwo(T,M,TR),(NH=M,!,R=[H|TR];R=TR).
t1:-L="asd wer qweo",s2l(L, "", [], R), gmo(R, V), gmwo(R, V, RR), o2c(RR).
rmc([],_,[]):-!.
rmc([_|T],N,T):-N<1,!.
rmc([H|T],N,[H|TR]):-NN is N-1,rmc(T,NN,TR).
rmmwc([],[]):-!.
rmmwc([H|T],[TH|TR]):-rmmwc(T,TR),length(H,HL)
	,(0 is HL mod 2,!,TH=H;ND=HL/2,rmc(H,ND,TH)).
t2:-L="asd wer qweo",s2l(L, "", [], R),rmmwc(R, R2), o2c(R2).
o2rc([]):-!.
o2rc([H|T]):-reverse(H,RH),string_to_list(S,RH),write(S),nl,o2rc(T).
t3:-L="asd wer qweo",s2l(L, "", [], R),o2rc(R).
rml([],[],_,_):-!, fail.
rml([H],[NH],H,NH):-!.
rml([H|T],[H|TR],V,NH):-rml(T,TR,V,NH).
lc2f([],[]):-!.
lc2f([H|T],[HR|TR]):-lc2f(T,TR),H=[NH|H1],rml(H1,HWC,C,NH),HR=[C|HWC].
t4:-L="asd wer qweo",s2l(L, "", [], R),notrace,lc2f(R, RR),notrace,o2c(RR).
t1,t2,t3,t4 - то, что тебе надо (если тебе на прологе сойдет кнешно)
rrrFer вне форума Ответить с цитированием
Старый 17.05.2013, 21:57   #5
Рыбчик
 
Регистрация: 17.05.2013
Сообщений: 9
По умолчанию

мне нужно на паскаль (((
Рыбчик вне форума Ответить с цитированием
Старый 18.05.2013, 10:36   #6
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Рыбчик Посмотреть сообщение
мне нужно на паскаль (((
Ну, либо переводить самому,Ю либо отвечать на вопросы из второго поста.

PS. Кстати, начинать тему и не отвечать на вопросы по ней - mauvais ton.
s-andriano вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со стороками в c++ It is not me Помощь студентам 4 01.02.2011 12:22
Робота с графикой SunSiro Общие вопросы C/C++ 4 11.11.2010 22:21
Робота с файлами maloy-rom Помощь студентам 0 02.06.2009 10:57
Робота с таймером Artruman Общие вопросы Delphi 2 25.04.2009 01:51