Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2011, 10:29   #1
АНДРЮНЯ
 
Регистрация: 16.05.2011
Сообщений: 4
Сообщение Дан файл словарь. Написать функцию, возвращающую слова заданной длины по шаблону (Турбо паскаль)

Будьте добры,помогите составить прогу.
"Дан файл,содержащий слова русского языка построчно (словарь). Написать функцию возвращающую слова заданной длины, содержащее заданные буквы в указанных позициях."


_________
Название темы должно адекватно отражать суть решаемой задачи/проблемы.
На первый раз я исправил.
В дальнейшем темы с подобным названием будут закрываться/удаляться.

Модератор.

Последний раз редактировалось Serge_Bliznykov; 16.05.2011 в 10:35.
АНДРЮНЯ вне форума Ответить с цитированием
Старый 16.05.2011, 11:00   #2
Sparkman
220400
Форумчанин
 
Аватар для Sparkman
 
Регистрация: 21.05.2010
Сообщений: 726
По умолчанию

Код:
uses crt;
var etalon,filepath:string;
function findwords(slovo,filename:string):string; //функция поиска слова slovo в файле filename
var f:text; //файловая переменная
    i:integer;
    r,s:string; // r-результат выполнения функции
function itis(et,wd:string):string; // функция сравнения 2х слов: et - эталон (любые знаки "_" или "?"),wd - слово из файла
var b:boolean;
    id:integer;
begin
     b:=false;
     if length(et)=length(wd) then
     begin
          if et=wd then
             b:=true else
          begin
               b:=true;
               for id:=1 to Length(et) do
               if not(et[id] in ['_','?']) and (et[id]<>wd[id]) then
               begin
                    b:=false;
                    break;
               end;
          end;
     end;
     if b then itis:=wd else itis:='';
end;
begin
     r:='';
     assign(f,filename);
     reset(f);
     while not eof(f) do
     begin
          readln(f,s);
          r:=r+itis(slovo,s)+' ';
     end;
     close(f);
     findwords:=r;
end;
begin
     clrscr;
     readln(etalon);
     readln(filepath);
     writeln(findwords(etalon,filepath));
     readln;
end.
Cерьёзной помощи не ждите - помогаю в перерывах на "перекур".
Не существует ничего невозможного для человека, который не собирается ничего делать сам.
Не учите человека, если вы не его учитель.

Последний раз редактировалось Sparkman; 16.05.2011 в 13:57.
Sparkman вне форума Ответить с цитированием
Старый 16.05.2011, 11:19   #3
АНДРЮНЯ
 
Регистрация: 16.05.2011
Сообщений: 4
По умолчанию

душевное спасибо!а можно с некоторыми пояснениями??
АНДРЮНЯ вне форума Ответить с цитированием
Старый 19.05.2011, 23:19   #4
АНДРЮНЯ
 
Регистрация: 16.05.2011
Сообщений: 4
По умолчанию

будь добр,объясни еще такие вещи как: что мы вводим в консоле
АНДРЮНЯ вне форума Ответить с цитированием
Старый 20.05.2011, 01:19   #5
АНДРЮНЯ
 
Регистрация: 16.05.2011
Сообщений: 4
По умолчанию

вроде бы разобрался,но она вроде только находит такое же слово в файле и выводит его если оно есть,а нужно вывести слова заданной длины, содержащее заданные буквы в указанных позициях
АНДРЮНЯ вне форума Ответить с цитированием
Старый 20.05.2011, 03:09   #6
Sparkman
220400
Форумчанин
 
Аватар для Sparkman
 
Регистрация: 21.05.2010
Сообщений: 726
По умолчанию

Цитата:
Сообщение от АНДРЮНЯ Посмотреть сообщение
вроде бы разобрался,но она вроде только находит такое же слово в файле и выводит его если оно есть,а нужно вывести слова заданной длины, содержащее заданные буквы в указанных позициях
1) сначала вводим эталон - слово для поиска ("_" и "?" - спец символы, вместо них может быть любая буква);
2) затем путь к словарю, например c:\vocabulary.txt;
3) если в словаре слова на кириллице в кодировке win1251, то слова алгоритм не найдет, так как turbo pascal пишет буквы в кодировке DOS 866;
4) по условию задачи, слова в словаре записаны построчно, то есть в одной строке одно слово.
Cерьёзной помощи не ждите - помогаю в перерывах на "перекур".
Не существует ничего невозможного для человека, который не собирается ничего делать сам.
Не учите человека, если вы не его учитель.
Sparkman вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удалить все слова с длиной, большей заданной длины Broken Angel Помощь студентам 3 07.01.2011 15:17
Подсчитать в матрице количество элементов в строке, больше заданной величины (Турбо Паскаль) Дмитрий1992 Паскаль, Turbo Pascal, PascalABC.NET 4 21.12.2010 15:37
Пожалуйста,помогите составить программу задачи на языке Турбо Паскаль-задача на функцию Jan Помощь студентам 1 07.01.2009 19:39
Си - Написать функцию, проверяющую наличие в строке заданного слова Cvetok Помощь студентам 1 14.05.2008 05:44
написать с помощью рекурсии функцию поиска последнего слова в строке? - Си Cvetok Помощь студентам 1 13.05.2008 15:43