![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
and75 |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Репутация: ![]() ![]() ![]() |
Помогите пожалуйста! Задача следующая:
Найти в предложенном тексте наиболее часто используемое трехбуквенное сочетание. Выписать все слова с этим набором букв в отдельный файл. Заранее благодарен! |
![]() ![]() |
and75 |
![]()
Сообщение
#2
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот наваял что-то похожее...
Может кому пригодится... Код 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. Здесь только поиск ОДНОГО трехбуквенного сочетания |
![]() ![]() |
![]() |
Текстовая версия | 9.09.2025 4:00 |