Форум программистов
 
О проблемах с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

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

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


Ответ
 
Опции темы
Старый 07.01.2008, 21:47   #1
Леди Уинтер
 
Регистрация: 07.01.2008
Сообщений: 8
Печаль Определить сколько раз встречается в тексте самое короткое слово - Delphi 7

Текст ввести с помощью компонента Memo.
Вывести слова исходного текста в алфавитном порядке

Дан текст на русском языке. Определить сколько раз встречается в нем самое короткое слово.

Последний раз редактировалось Леди Уинтер; 07.01.2008 в 22:45.
Леди Уинтер вне форума Ответить с цитированием
Старый 08.01.2008, 07:13   #2
Cantana
форвард
Форумчанин
 
Аватар для Cantana
 
Регистрация: 03.08.2007
Сообщений: 130
По умолчанию

то есть к примеру "кит". надо подсчитат только "кит" или "кот" тоже надо?
p.s:в кавычках слова что предпологаеться в тексте
dela ne v dengax a v yego kolichestve
Cantana вне форума Ответить с цитированием
Старый 08.01.2008, 07:53   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Цитата:
Вывести слова исходного текста в алфавитном порядке
Запросто. Воспользуйся классом TStringList (почти на нем Мемо основан). У него есть свойство Sort, которое ты выставиш в true, и получиш отсортированный текст.

Если же тебе нужно получить список слов и уже их отсортить тоже не беда, можно сделать так:

Код:
procedure TForm1.Memo1Change(Sender: TObject);
var s:TStringList;i:integer;
begin
//********* FOR ******************
s:=TStringList.Create;
s.Delimiter:=' ';
ListBox1.Sorted:=true;
ListBox1.Items.Clear;
for i :=0  to Memo1.Lines.Count-1  do
begin
 s.DelimitedText:=Memo1.Lines[i];
 ListBox1.Items.AddStrings(s);
end;
//******* END FOR ****************{}
end;
Цитата:
Дан текст на русском языке. Определить сколько раз встречается в нем самое короткое слово.
Тоже не сложно:
Код:
var s:TStringList;x,i:integer;m:string;
begin
//********* FOR ******************
s:=TStringList.Create;
s.Delimiter:=' ';
ListBox1.Sorted:=true;
ListBox1.Items.Clear;
for i :=0  to Memo1.Lines.Count-1  do
begin
 s.DelimitedText:=Memo1.Lines[i];
 ListBox1.Items.AddStrings(s);
end;
//********* FOR ******************
m:=ListBox1.Items[0];
for i:=1 to ListBox1.Items.Count-1  do
begin
 if length(ListBox1.Items[i])<length(m) then m:=ListBox1.Items[i];
end;
x:=0;
for i:=1 to ListBox1.Items.Count-1  do
begin
 if ListBox1.Items[i]=m then inc(x);
end;
caption:=m+' '+inttostr(x);
//******* END FOR ****************{}

//******* END FOR ****************{}
end;
I'm learning to live...

Последний раз редактировалось Stilet; 08.01.2008 в 08:12.
Stilet вне форума Ответить с цитированием
Старый 08.01.2008, 17:56   #4
Леди Уинтер
 
Регистрация: 07.01.2008
Сообщений: 8
По умолчанию

ВСЕМ!ВСЕМ!БОЛЬШОЕ СПАСИБО!
Леди Уинтер вне форума Ответить с цитированием
Ответ
Купить рекламу на форуме 20000 рублей в месяц

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
в текстовом файле в каждой строке наити самое длинное слово Storm Помощь студентам 4 04.06.2008 14:56
Как найти слово в тексте ? geniy Паскаль, Turbo Pascal, PascalABC.NET 2 03.02.2008 21:37
Сколько раз встречается данное слово n1k1c4 Помощь студентам 4 13.12.2007 20:33
С++ Найти самое длинное слово строки k0z7_g0b1in Общие вопросы C/C++ 3 22.04.2007 16:37


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS