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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.02.2009, 09:58   #1
pascal1994
Пользователь
 
Регистрация: 24.01.2009
Сообщений: 15
Вопрос Дан массив с текстом. Как найти в нем количество разных слов.

Дан массив с текстом. Как найти в нем количество разных слов
pascal1994 вне форума Ответить с цитированием
Старый 06.02.2009, 10:30   #2
r9m
₪₪₪₪₪₪₪₪
Форумчанин
 
Аватар для r9m
 
Регистрация: 16.04.2007
Сообщений: 471
По умолчанию

думаю брать каждый элемент и сравнивать с остальными =\
r9m вне форума Ответить с цитированием
Старый 06.02.2009, 10:41   #3
pascal1994
Пользователь
 
Регистрация: 24.01.2009
Сообщений: 15
По умолчанию

Вот я писал, почему-то не работает? помогите пожалуйста.

Цитата:
for i:=1 to rez do
begin
for j:=i+1 to rez+1 do
if a[i]=a[j] then
begin
inc(lic);
end;
end;
pascal1994 вне форума Ответить с цитированием
Старый 06.02.2009, 11:02   #4
knight
Дон Кихот
Форумчанин
 
Аватар для knight
 
Регистрация: 17.01.2008
Сообщений: 130
По умолчанию

Вот на delphi у меня было....
Код:
var tempStr, outStr: string;
    words: array [0..100] of string;
    unic_words: array [0..100] of string;
    i,j, iCount, iCountUnic: integer;
    p: boolean;
begin
 tempStr := Memo1.Text + ' ';

 //уберем лишние пробелы
 outStr := '';
 p := true;
 for i := 0 to length(tempStr) do
   begin
     if ((tempStr[i]=' ') or  (tempStr[i]=',')) and (not p) then
       begin
         p := true;
         outStr := outStr + ',';
       end;

      if (tempStr[i]<>' ') and  (tempStr[i]<>',') and (not p) then
         outStr := outStr + tempStr[i];

      if (tempStr[i]<>' ') and  (tempStr[i]<>',') and (p) and (tempStr[i] <> #0) then
      begin
        outStr := outStr + tempStr[i];
        p := false;
      end;
   end;



 //загоним слова в массив
 tempStr := outStr;
 outStr := '';
 p := true;
 iCount := 0;

 for i := 0 to length(tempStr) do
   begin
     if (tempStr[i]=',' ) and (not p) then
       begin
         p := true;
         words[iCount] := Trim(outStr);
         outStr := '';
         iCount := iCount + 1;
       end;

      if (tempStr[i]<>',' ) and (tempStr[i] <> #0) then
      begin
        outStr := outStr + tempStr[i];
        p := false;
      end;
   end;

iCountUnic := 0;
 for i := 0 to iCount do
  begin
   p := false;
   for j := 0 to iCountUnic do
   begin
      if unic_words[j] = words[i] then
          p := true;
   end;

   if not p then
     begin
      Inc(iCountUnic);
      unic_words[iCountUnic] := words[i];
     end;


  end;

 outStr := 'Найдены уникальные слова: (' + IntTosTr(iCountUnic) + ')'+ #$0D + #$0A;
//выведем самое динне
ShowMessage(outStr);

  end;
knight вне форума Ответить с цитированием
Старый 06.02.2009, 11:09   #5
pascal1994
Пользователь
 
Регистрация: 24.01.2009
Сообщений: 15
По умолчанию

у меня что-то не работает ? Кто имеет на паскале?
pascal1994 вне форума Ответить с цитированием
Старый 06.02.2009, 11:50   #6
knight
Дон Кихот
Форумчанин
 
Аватар для knight
 
Регистрация: 17.01.2008
Сообщений: 130
По умолчанию

tempStr := Memo1.Text + ' '; -> tempStr := 'набор слов ' + ' ';
ShowMessage(outStr); - > writeln(outStr);

Остальное вроде бы без изменений...
knight вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Текстовый файл. Подсчитать в нем количество слов, символов, абзацев. Xeon332 Помощь студентам 3 24.12.2009 01:23
Дана строка, состоящая из нескольких слов. Найти количество слов, которые содержат хотя бы одну букву "А" Mashaa Помощь студентам 13 09.12.2009 13:28
Дан массив,найти номер последнего отрицательного элемента Ирочка Помощь студентам 2 31.03.2009 09:54
Количество разных слов в тексте) Если можно сразу код pascal1994 Помощь студентам 1 05.02.2009 10:06