![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
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. Здесь только поиск ОДНОГО трехбуквенного сочетания |
![]() ![]() |
![]() |
Текстовая версия | 12.08.2025 8:47 |