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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2011, 18:44   #1
Сароникус
Пользователь
 
Регистрация: 01.10.2011
Сообщений: 12
Вопрос Исправить работу

Здравствуйте, господа! Вот делал работу, но не получается доделать(исправить). Буду благодарен каждому кто мне поможет! :-)

Дана строка, ограниченная точкой(Edit1), содержащая слова из лат. букв. Слова разделены 1 или несколькими пробелами.
Напечатать все слова, которые встречаются в этой строке по 1 разу.
Программа работает и казалось бы работает правильно. НО! Если я введу в Edit1 например строку: a as. То в Edit2 он ничего не выведет, хотя это разные слова. Мол первое слово входит во второе и значит они одинаковые.
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Edit2: TEdit;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var s,s1, ss : string;
    p:Integer;
begin
 Edit2.Text:='';
 S:=Edit1.Text;
 delete(S,pos('.',S),1);
 S:=S+' ';
 s1:='';
 P:=Pos(' ',S);
 while p>0 do
 begin
  ss:=copy(s,1,p-1);
  delete(S,1,p);
  p:=pos(ss,S);
  if p=0 then s1:=s1+ss+' '
  else
  while p<>0 do
   begin
   Delete(S,P,Length(ss)+1);
   p:=pos(ss,S);
   end;
  p:=Pos(' ',S);
 end;
Edit2.Text:=s1;
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
case key of
'a'..'z':;
'A'..'Z':;
'.':;
#8:;
#32:;
#13:Button1.SetFocus;
else Key:=Chr(0);
end;
end;
end.

Последний раз редактировалось Stilet; 28.11.2011 в 21:32.
Сароникус вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ищу работу! V@Programmer Фриланс 7 26.08.2011 22:40
Ищу работу MAcK Фриланс 7 24.09.2008 12:32
ищю работу Sergeu Фриланс 41 30.08.2008 10:56