![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Здравствуйте, Уважаемые!
Поставили задачу написать программу которая могла бы составлять слова (из некого словаря) из слова или фразы которая задается произвольно. При этом желательно учитывать порядок слов. Поискал здесь, что то похожее вроде есть, но не совсем. Подскажите, пожалуйста, алгоритм поиска! З.Ы. Программированием не занимаюсь лет 5 уже...почти все забылось((( сделать форму, загрузить файл словаря еще осилю, а чего с ним дальше делать??? просто тупик |
#2
|
||||
|
||||
![]() ... Составляла слова ...
Имеется ввиду предложение? Неочень понятна постановка задачи. |
#3
|
|||
|
|||
![]() попытаюсь объяснить
![]() дано, например, слово "магазин" а в словаре есть слова "маг", "газ" и др. надо чтоб программа могла выбрать(составить) из исходного слова слова из словаря (то есть найти в словаре слова которые могут получиться из исходного) надеюсь понятней стало |
#4
|
|||
|
|||
![]() в инете находил несколько готовых программ, даже автору написал, но пока ответа не было
|
#5
|
|||
|
|||
![]() Если без перестановки букв, то цикл по словарю и проверка наличия подстроки с помощью функции Pos.
|
#6
|
|||
|
|||
![]() Цитата:
а если с перестановкой? вы б в какую сторону думать начали? на символы разбивать? |
#7
|
||||
|
||||
![]() Ну вот вам вариант:
Код:
unit Unit34; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm34 = class(TForm) Button1: TButton; Edit1: TEdit; Memo1: TMemo; ProgressBar1: TProgressBar; Label1: TLabel; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private Dictionary: TStringList; end; var Form34: TForm34; implementation {$R *.dfm} procedure TForm34.Button1Click(Sender: TObject); Var i: Integer; begin Memo1.Clear; ProgressBar1.Position := 0; for i := 0 to Dictionary.Count - 1 do begin if Pos(AnsiUpperCase(Dictionary.Strings[i]), AnsiUpperCase(Edit1.Text)) <> 0 then Memo1.Lines.Add(Dictionary.Strings[i]); ProgressBar1.StepIt; Application.ProcessMessages; end; end; procedure TForm34.FormCreate(Sender: TObject); begin Dictionary := TStringList.Create; Dictionary.LoadFromFile('C:\Dictionary.txt'); Dictionary.Sort; ProgressBar1.Max := Dictionary.Count; Label1.Caption := Format('В словаре %d слов',[Dictionary.Count]); end; end. и dfm-файл к нему. object Form33: TForm33 Left = 0 Top = 0 Caption = 'Form33' ClientHeight = 341 ClientWidth = 643 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False DesignSize = ( 643 341) PixelsPerInch = 96 TextHeight = 13 object SimpleGraph1: TSimpleGraph Left = 8 Top = 8 Width = 627 Height = 265 Anchors = [akLeft, akTop, akRight, akBottom] ShowGrid = False TabOrder = 0 end object Button1: TButton Left = 8 Top = 308 Width = 75 Height = 25 Anchors = [akLeft, akBottom] Caption = 'Button1' TabOrder = 1 OnClick = Button1Click end object ProgressBar1: TProgressBar Left = 8 Top = 285 Width = 627 Height = 17 Anchors = [akLeft, akRight, akBottom] Step = 1 TabOrder = 2 end end Последний раз редактировалось Admin, 10.03.2009 в 22:12. |
#8
|
|||
|
|||
![]() Цитата:
хороший вариант, спасибо! отдал на проверку, так сказать ![]() |