1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| and75 |
Сообщение
#1
|
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Репутация: 0 |
Помогите пожалуйста! Задача следующая:
Найти в предложенном тексте наиболее часто используемое трехбуквенное сочетание. Выписать все слова с этим набором букв в отдельный файл. Заранее благодарен! |
![]() ![]() |
| and75 |
Сообщение
#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. Здесь только поиск ОДНОГО трехбуквенного сочетания |
and75 Трехбуквенное сочетание 18.03.2008 18:44
andriano Я, кажется, подозреваю, какие именно трехбуквенные… 19.03.2008 1:56
PavelM поищи по форуму, примерно такое задание было тольк… 19.03.2008 1:59
klem4
С таким описание множеств работать правильно про… 19.03.2008 23:17
and75
С таким описание множеств работать правильно прог… 20.03.2008 14:30![]() ![]() |
|
Текстовая версия | 7.11.2025 12:45 |