Задачка по Delphi

Тема в разделе "Pascal and Delphi", создана пользователем -, 2 дек 2010.

  1. Гость

    Помогите дорешать задачу по Delphi. Не могу написать то, что подчеркнуто в задании.
    Задание: Имеется текст в Memo-компоненте, загружаемый из файла. Данный текст необходимо преобразовать в соответствии с заданным алгоритмом, и результат поместить в другой Memo-компонент. Преобразованный текст нужно сохранить в другой файл.
    Алгоритм: Из имеющегося словаря выбрать наиболее длинное слово, в котором все буквы разные и подсчитать их колличество, например: ЛЕЙКОПЛАСТЫРЬ, НЕРЯШЛИВОСТЬ, ЧЕТЫРЕХДЮЙМОВКА.

    Вот мой код:
    Код (Text):
    procedure TForm1.Button1Click(Sender: TObject);
    var FName: string;
    begin
    if OpenDialog1.Execute then
    begin
    FName := OpenDialog1.FileName;
    Memo1.Lines.LoadFromFile(FName);
    end;
    end;

    procedure TForm1.Button2Click(Sender: TObject);
    var mystr,alltext,maxstr,a:string;
    i,n,max,fl:integer;
    flag:boolean;
    begin
    alltext:=form1.Memo1.Text;
    fl:=0;
    max:=0;
    mystr:='';
    n:=length(alltext);
    flag:=true;
    {количество слов в тексте}
    for i:=1 to n do
    begin
    if (alltext[i]<>' ')and(flag) then fl:=fl+1;
    flag:=alltext[i]=' ';
    end;
    {самое длинное слово}
    for i:=1 to n do
    begin
    if (alltext[i]<>' ') then mystr:=mystr+alltext[i]
    else mystr:='';
    if length(mystr)>max then
    begin max:=length(mystr); maxstr:=mystr; end;
    end;
    str(fl,a);
    form1.Label2.Caption:=a;     // количество слов
    form1.memo2.text:=maxstr; // вывод слово
    end;

    procedure TForm1.Button3Click(Sender: TObject);
    var FName:string;
    begin
    SaveDialog1.FileName:=FName;
    if SaveDialog1.Execute then
    begin
    FName := SaveDialog1.FileName;
    Memo2.Lines.SaveToFile(FName);
    end;
    end;
    procedure TForm1.Button4Click(Sender: TObject);
    begin
    memo2.Clear;
    memo1.Clear;
    end;

    end.
    За ранее благодарен за любую помощь.
     
  2. acorn

    acorn PHP Developer

    Регистрация:
    29 авг 2004
    Сообщения:
    599
    Симпатии:
    3
    а что "дорешать"?
     
  3. acorn

    acorn PHP Developer

    Регистрация:
    29 авг 2004
    Сообщения:
    599
    Симпатии:
    3
    вечер, внимание уже притупилось :)

    вариант А:
    добавить все символы в множество и сравнить кол-во элементов в множестве с длиной строки, но т.к. я не помню как работать со множествами в Delphi делаем так:

    вариант Б:
    Код (Delphi):
    isVars:= true;
    for i:=1 to length(mystr)
    for j:=i+1 to length(mystr)-1
    if (mystr[i] = mystr[j])
    begin
    isVars:=false;
    break;
    end;
    if isVars
    //учитываем в поиске максимально длинных слов
     
  4. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    Есть ф-ция Pos, она может помочь быстро найти, существует ли дубликат символа в строке.
     
Загрузка...
Похожие Темы - Задачка по Delphi
  1. kirkl
    Ответов:
    1
    Просмотров:
    1.011
  2. Allexei
    Ответов:
    4
    Просмотров:
    1.665
  3. hosm
    Ответов:
    3
    Просмотров:
    2.583
  4. European
    Ответов:
    4
    Просмотров:
    3.073
  5. phantom76
    Ответов:
    2
    Просмотров:
    2.689

Поделиться этой страницей