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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2014, 21:05   #1
zirko_o
 
Регистрация: 22.02.2014
Сообщений: 9
По умолчанию Задание на строки :)

Среди слов заданного предложения найти такое, которое чаще всего встречается в предложении.
zirko_o вне форума Ответить с цитированием
Старый 22.02.2014, 21:41   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Наработки?
Попытки?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.02.2014, 12:25   #3
zirko_o
 
Регистрация: 22.02.2014
Сообщений: 9
По умолчанию

Я так понимаю, что нужно разбить строку на слова, подсчитать статистику, вывести самое встречаемое. Трудности с тем, как найти одинаковое слово.
zirko_o вне форума Ответить с цитированием
Старый 23.02.2014, 12:35   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Разбить строку на слова сможешь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.02.2014, 12:45   #5
zirko_o
 
Регистрация: 22.02.2014
Сообщений: 9
По умолчанию

Вроде так?
Код:
var predl,razd,slovo:string;  i:integer;
begin
readln(predl);
 razd := ', :;-().?!';
 slovo := '';
 for i := 1 to length(predl) do
 begin
    if pos(predl[i], razd) = 0 then
          slovo := slovo + predl[i]
    else
     begin if length(slovo)>0 then writeln(slovo) ;
             slovo := '';
     end; 
 end;
 end.

Последний раз редактировалось Stilet; 23.02.2014 в 16:06.
zirko_o вне форума Ответить с цитированием
Старый 23.02.2014, 16:11   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не фонтан...
Ладно. Опишу стратегию.
Сделай тип:
Код:
words=record
 s:string; // Это слово найденное в тексте
 n:integer; // Это кол-во его появлений в тексте.
end;
var w:array[1..10000] of words;
Далее в цикле выделяешь слово. Ищещь его в массиве том, и если найдено увеличиваешь поле n
Код:
i:=pos(' ',s); k:=1;
while i<>0 do begin
 s2:=copy(s,1,i-1);
 found:=false;
 for j:=0 to k do if w[j].s=s2 then begin inc(w[j].n);break; found:=true; end;
 if not found then begin w[j].s:=s2; w[j].n=1; end;
 i:=pos(' ',s); 
end;
Таким образом получаешь статистику вхождения слов.
Ну дальше надеюсь понятно что нужно делать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.02.2014, 16:52   #7
zirko_o
 
Регистрация: 22.02.2014
Сообщений: 9
По умолчанию

Как ни стыдно признаться, но не совсем. Но огромное спасибо за помощь, я постараюсь разобраться!
zirko_o вне форума Ответить с цитированием
Старый 23.02.2014, 18:02   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Хорошо что не просишь полный код, значит полюбому разберешся )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задание на строки scafandr Помощь студентам 0 14.05.2012 18:52
Задание на строки SVing Паскаль, Turbo Pascal, PascalABC.NET 3 18.12.2011 20:48
Строки задание britannia C# (си шарп) 3 25.03.2011 15:39
задание на строки Hikari Помощь студентам 8 29.10.2009 08:09