Трехбуквенное сочетание, Помогите!!! |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Трехбуквенное сочетание, Помогите!!! |
and75 |
Сообщение
#1
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Репутация: 0 |
Помогите пожалуйста! Задача следующая:
Найти в предложенном тексте наиболее часто используемое трехбуквенное сочетание. Выписать все слова с этим набором букв в отдельный файл. Заранее благодарен! |
andriano |
Сообщение
#2
|
Гуру Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
Я, кажется, подозреваю, какие именно трехбуквенные сочетания испольуются чаще всего. ;)
PS. Пока нет своего варианта решения - обсуждать нечего. |
PavelM |
Сообщение
#3
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Pavel Репутация: 0 |
поищи по форуму, примерно такое задание было только там искали корень (однокоренное слово).
|
and75 |
Сообщение
#4
|
Группа: Пользователи Сообщений: 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. Здесь только поиск ОДНОГО трехбуквенного сочетания |
klem4 |
Сообщение
#5
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Цитата RussLow := ['а'..'я']; RussUp := ['А'..'Я']; С таким описание множеств работать правильно программа просто не будет, в эти интервалы попадает еще куча лишних символов, помимо кириллицы. поменяй на ['a'..'п', 'р'..'я] Добавлено через 11 мин. Кстати насчет задания, на каждой строке файла на сколько я понимаю записано некое словосочетание, а не одно слово ? И скажем в слове qwerty 3-х буквенные сочетания: -qwe -wer -ert -rty ? Сообщение отредактировано: klem4 - -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
and75 |
Сообщение
#6
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Репутация: 0 |
С таким описание множеств работать правильно программа просто не будет, в эти интервалы попадает еще куча лишних символов, помимо кириллицы. поменяй на ['a'..'п', 'р'..'я] Добавлено через 11 мин. Кстати насчет задания, на каждой строке файла на сколько я понимаю записано некое словосочетание, а не одно слово ? И скажем в слове qwerty 3-х буквенные сочетания: -qwe -wer -ert -rty ? Спасибо за поправку, но по условию задачи там нет никаких псевдосимволов. Дан некоторый текстовый файл, имя которого следует запросить у пользователя, содержит небольшой, форматированный (2-3 книжных страницы шириной ровно 60 знаков) фрагмент текста на русском языке. Да все правильна для слова qwerty именно такие сочетания! Вроде бы все работает правильно... Добавлено через 2 мин. Пардон! не "псевдосимволы", а символы псевдографики |
Текстовая версия | 23.12.2024 20:18 |