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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2010, 20:17   #1
ilyas22
Пользователь
 
Регистрация: 04.11.2009
Сообщений: 17
Сообщение Множества. Вывести в алфавитном порядке все буква текста, входящие в него более двух раз

Вывести в алфавитном порядке все буква текста, входящие в него более двух раз
ilyas22 вне форума Ответить с цитированием
Старый 22.05.2010, 20:45   #2
Stranger333
Пользователь
 
Аватар для Stranger333
 
Регистрация: 19.05.2009
Сообщений: 98
По умолчанию

Ну если у вас в строка типу String, тогда вы можете ее отсортировать любым способом который вам нравится, а за тем выводить нужные вам слова.
Stranger333 вне форума Ответить с цитированием
Старый 22.05.2010, 21:02   #3
ilyas22
Пользователь
 
Регистрация: 04.11.2009
Сообщений: 17
Сообщение

<отсортировать любым способом который вам нравится> как это сделать?
ilyas22 вне форума Ответить с цитированием
Старый 22.05.2010, 21:48   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от ilyas22
<отсортировать любым способом который вам нравится>
забудьте об этом. Вам нужно решение через тип множество.

вот готовое решение.
Код:
var sAll, sDouble : set of char;
   s : string;
   i : integer;
   ch : char;
begin
   WriteLn('Введите исходный текст: ');
   Readln(s);
  
   {начальная иницилизация множеств}
    sAll := [];
    sDouble := [];

    {перебор строки и проверка вхождения символов}
    for i:=1 to length(s) do  begin
      if s[i] in sAll then {встретился повторный символ}
            include(sDouble, s[i])
      else
           include(sAll, s[i]); 
    end;

   {вывод результатов}
   for ch:=' ' to #255 do
      if ch in sDouble then 
           Write(ch,'  ');
   WriteLn;
   Readln;
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.05.2010, 12:32   #5
ilyas22
Пользователь
 
Регистрация: 04.11.2009
Сообщений: 17
По умолчанию

Спасибо! Выручили, а что означает этот символ #

Последний раз редактировалось ilyas22; 23.05.2010 в 12:37.
ilyas22 вне форума Ответить с цитированием
Старый 23.05.2010, 12:50   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
а что означает этот символ #
Это означает, что компилятор понимает, что число после решёточки принимать не как число, а как символ с таким кодом.
Например, s := #072#101#108#108#111;
равносильно s:= 'Hello';

А в случае данной программы можно заменить на
for ch:=' ' to chr(255) do
или
на
for ch:=' ' to 'я' do
('я' можно заменить на любой символ, главное, чтобы он был символом с наибольшим возможным кодом, который может встретиться в Вашем тексте...)
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Все слова входного потока вывести в алфавитном порядке lutuygrey1 Общие вопросы C/C++ 13 28.05.2009 01:31
Напечатать в алфавитном порядке все гласные буквы, которые не входят более чем в одно слово. GHOST_DOG Помощь студентам 5 30.03.2009 15:24
Распечатать все буквы входящие в текст не мене двух раз в алфавитном порядке. Паскаль. DIzza Помощь студентам 5 13.03.2009 09:08
Вывести в алфавитном порядке все латинские буквы Jereme Паскаль, Turbo Pascal, PascalABC.NET 6 26.12.2008 13:15