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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2009, 21:50   #1
Walter
Пользователь
 
Регистрация: 03.11.2008
Сообщений: 43
По умолчанию пойск строк при помощи множеств Delphi

Добрый вечер, столкнулся с следующей задачкой: Вводяться 2 строки и набор чисел. Введённые числа показывают номера выбранных мест в строках. Верно ли, что на выбранных местах в первой строке нет символов второй?
Значит сами строки реализуються в ListBox, решение как я смог выглядеть следующее:
1. Формируете множество символов на выбранных местах первой строки.
2. Формируете множество символов второй строки.
3. Проверяете, пересекаются ли эти множества. Если да, то есть, если нет, то нет.
Вот сама и загвоздка в том, что никак не могу понять, как именно сформироватьт эти самые множества символов по строчно... пересечение эт не проблема... Еси кто может помогите пожалуйста. Сам воод строк и чисел приведён в следующем коде:
Код:
procedure TForm1.Button6Click(Sender: TObject);
begin
ListBox1.Clear;
Edit1.Text:='';
Edit1.SetFocus;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  if ListBox1.Items.Count <=1 then
  begin
    ListBox1.Items.Add(Edit1.Text);
    Edit1.Text:='';
    Edit1.SetFocus;
  end
  else
    begin
    ShowMessage('In ListBox 2 strings already exist');
    Edit1.Text:='';
    Edit1.SetFocus;
    end;
end;


procedure TForm1.Button2Click(Sender: TObject);
var x,c:integer;
    s:string;
begin
  c:=0;
  s:=Edit1.Text;
  for x:=1 to Length(s) do
  if (s[x] in ['0'..'9']) then inc(c);
  if c=Length(s) then
      begin
         ListBox1.Items.Add(Edit1.Text);
         Edit1.Text:='';
         Edit1.SetFocus;
      end
    else
      begin
         Edit1.Text:='';
         Edit1.SetFocus;
         ShowMessage('Incorrect');
      end;
end;
Walter вне форума Ответить с цитированием
Старый 23.05.2009, 00:36   #2
Walter
Пользователь
 
Регистрация: 03.11.2008
Сообщений: 43
По умолчанию

Очень прошу помогите, хотябы подскажите как создать мноество в Делфи, а то в Паскале знаю, а вот в Делфи преобразовать никак не могу (
Walter вне форума Ответить с цитированием
Старый 23.05.2009, 00:40   #3
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

просто создаете два множества символов (set of char), в первое добавляете все символы второй строки, во второе символы первой строки, которые нужно (аналогично паскалю).. потом находите пересечение с помощью операции *
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 23.05.2009, 07:34   #4
Walter
Пользователь
 
Регистрация: 03.11.2008
Сообщений: 43
По умолчанию

а что значит, в первое добавить все символы второй строки, как эт вообще реализовать, лана с множеством, создам, но вот эта часть мне вообще не понятна, т.к. со строками я мало работал вообще (
Walter вне форума Ответить с цитированием
Старый 23.05.2009, 12:09   #5
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

ну есть например пустое множество x и строка s..
Код:
x := [];
for i:=1 to length(s) do
  x := x + [s[i]];
Тогда в x будут все символы из s
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 23.05.2009, 19:38   #6
Walter
Пользователь
 
Регистрация: 03.11.2008
Сообщений: 43
По умолчанию

stdc спс, но я уже разобрался с ней... наконецто )))
Walter вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перетин множеств designer Паскаль, Turbo Pascal, PascalABC.NET 0 15.05.2009 12:17
пойск строк Walter Помощь студентам 0 07.05.2009 21:30
Управление Ecxel при помощи Delphi nikolai_P Общие вопросы Delphi 9 12.03.2009 09:00
Печать водяных знаков на документах при помощи Delphi Pitonio Помощь студентам 6 12.08.2008 10:51