IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Трехбуквенное сочетание, Помогите!!!
and75
сообщение 18.03.2008 14:44
Сообщение #1





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


Помогите пожалуйста! Задача следующая:
Найти в предложенном тексте наиболее часто используемое трехбуквенное сочетание. Выписать все слова с этим набором букв в отдельный файл.
Заранее благодарен!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
and75
сообщение 19.03.2008 18:06
Сообщение #2





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


Вот наваял что-то похожее...
Может кому пригодится...

Код
Program Task1;
Type
  SetLow  = set of 'а'..'я';
  SetUp   = set of 'А'..'Я';
  RecThree = record
    Str   : String[3];
    Kol   : Word;
  end;
Var
  f, f1    : Text;
  Name     : String;
  Stroka   : String;
  RussLow  : SetLow;
  RussUp   : SetUp;
  ThreeLet : String[3];
  NumThree : Word;
  ArrThree : array [1..10000] of RecThree;
  i        : Integer;
  MaxElem  : Word;
  PosMax   : Integer;

Procedure SearchThree;
Var
  j       : Integer;
  isExist : Boolean;
Begin
  isExist:=False;
  for j:=1 to NumThree do
    if ThreeLet = ArrThree[j].Str then
    begin
      Inc(ArrThree[j].Kol);
      isExist:=True;
      Break;
    end;
  if not isExist then
  begin
    Inc(NumThree);
    ArrThree[NumThree].Str:=ThreeLet;
    ArrThree[NumThree].Kol:=1;
  end;
End;

Begin
  Writeln ('Введите имя исходного файла (имя.txt): ');
  Read(name);
  Assign(f, name);
  Assign(f1,'result.txt');
  Reset(f);
  Rewrite(f1);
  ThreeLet:='';
  NumThree:=0;
  PosMax:=0;
  RussLow := ['а'..'я'];
  RussUp  := ['А'..'Я'];
  While Not EOF(f) do
  begin
    Readln(f,Stroka);
    for i:=1 to Length(Stroka) do
    begin
      if Length(ThreeLet)=3 then Delete(ThreeLet,1,1);
      if Stroka[i]=' ' then ThreeLet:='';
       if (Stroka[i] in RussUp) or (Stroka[i] in RussLow) then
          ThreeLet:=ThreeLet+Stroka[i];
      if Length(ThreeLet)= 3 then
        SearchThree;
    end;
    if Stroka[Length(Stroka)] <> '-' then ThreeLet:='';
  end;
  MaxElem:=0;
  PosMax:=0;
  for i:=1 to NumThree do
    if ArrThree[i].Kol>MaxElem then
    begin
      MaxElem := ArrThree[i].Kol;
      PosMax  := i;
    end;
  Writeln('Наиболее часто встречаемое трехбуквенное сочетание: ',
          ArrThree[PosMax].Str);
  Writeln('Количество: ',
          ArrThree[PosMax].Kol);
  {Закрываем текстовые файлы}
  Close(f1);
  Close(f);
End.


Здесь только поиск ОДНОГО трехбуквенного сочетания
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 12.08.2025 8:47
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"