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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2014, 18:30   #1
nadyaH
Форумчанин
 
Регистрация: 24.10.2013
Сообщений: 130
По умолчанию Дано предложение, которое заканчивается точкой. Найти повторяющиеся буквы. Делфи 7.

Дано предложение ,которое заканчивается точкой .Найти повторяющиеся буквы.
Код:
procedure TForm1.Button1Click(Sender: TObject);
type
TCharSet=set of char;
var
S:string;
e,x:TCharSet;
i:integer;
begin
S:=edit1.Text;
e:=['a'..'z'];
x:=[];
for i:=1 to length(s) do
  if s[i] in ['a'..'z'] then x:= x+[s[i]]
  else if x<>[] then
    begin
    e:=e*x;
    x:=[];
    end;
edit2.Text:=[low(TCharSet)..hieg(TCharSet)]; // эта срока выдаёт ошибку.
end.
Не знаю как её правильно написать.
nadyaH вне форума Ответить с цитированием
Старый 11.01.2014, 20:30   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Обычно такие задачи решаются через "частоту букв в тексте" / "частотный анализ текста" (такой поисковый запрос по форуму даст Вам много тем, где это уже обсуждалось), у какой буквы частота больше 1 - Ваш случай, в частотном анализе применяется массив частот.
Но, насколько я вижу, Вам надо решить через сеты, а не через массивы, вот набросал:
Код:
procedure TForm1.Button1Click(Sender: TObject);
type
  TCharSet=set of char;
var
  S:string;
  once, more: TCharSet;
  i:integer;
  ch: char;
begin
  S := Edit1.Text;
  once := [];
  more := [];
  for i:=1 to length(s) do
    if s[i] in ['а'..'я'] then
      if s[i] in once then
        Include(more, s[i]) // аналогично more := more + [s[i]];
      else
        Include(once, s[i]);
  Edit2.Text := '';
  for ch := 'а' to 'я' do
    if ch in more then
      Edit2.Text := Edit2.Text + ch;
end;
phomm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача по СИ: Ввести предложение. Сформировать новое предложение из тех слов, в которых нет заданной буквы kaha94 Помощь студентам 0 26.04.2013 00:45
Дано предложение. Напечатать все его слова mimit Помощь студентам 2 07.12.2012 14:05
Повторяющиеся буквы в слове. lypyotr Общие вопросы Delphi 4 27.02.2012 20:32
Дано предложение из нескольких слов, отделенных пробелом или запятой и пробелом, заканчивающейся точкой..... zzz6 Помощь студентам 5 12.07.2011 11:00
Вводим с клавиатуры предложение с пробелами, которое должно поменяется местами начало с концом. Pashka1 Паскаль, Turbo Pascal, PascalABC.NET 18 28.09.2010 19:10