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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.01.2014, 16:48   #1
mishammm
Форумчанин
 
Регистрация: 21.09.2013
Сообщений: 232
По умолчанию множества(подскажите сам алгоритм)

задача звучит: составить программу которая анализирует множество символов, которое заканчиваеться символом "точка". и вывести все согласные буквы. вот мой код:

Код:
var
   s := ['b','c', 'd', 'f'];
   symbol:char;
   begin
   repeat
     writeln('vvedi simvoli abo n dlya zavershenna');
     readln(symbol);
     s:=s+[symbol];
     until symbol = 'n';
     for symbol:= chr(0) to chr(255) do
     If (symbol='.')
     write(s,'');
     end.
но мне выводит все буквы и гласные и согласные . как сделать так чтобы выводило тольно согласные ???я пробывал в множестве задать только все согласные буквы в алфавите, а оно мне выводит все, а не те что я задал с клавы. мне код не нужно, просто на словах скажите плиз, как можно поправить.
P.S. была идея такова еще: создать еше одно множество с гласными буквами и писать так:
Код:
If (not symbol in q ) and (symbol in s) then
mishammm вне форума Ответить с цитированием
Старый 25.01.2014, 17:32   #2
mishammm
Форумчанин
 
Регистрация: 21.09.2013
Сообщений: 232
По умолчанию

попробывал удалить гласные буквы:

Код:
var
   s : string;
   symbol:char;
   i:integer;
   glas:set of char;
   begin
   glas:= ['a', 'e' , 'i', 'o', 'u', 'y'];
   repeat
     writeln('vvedi simvoli abo n dlya zavershenna');
     readln(symbol);
     If s[i] in glas then 
     Delete(s,i,1)
     else
     inc(i);
     glas:=glas+[symbol];
     until symbol = 'n';
     for symbol:= chr(0) to chr(255) do
     If (symbol = '.') then
     write(s,'');
     end.
но это наверно непраавильно
mishammm вне форума Ответить с цитированием
Старый 25.01.2014, 19:08   #3
mishammm
Форумчанин
 
Регистрация: 21.09.2013
Сообщений: 232
По умолчанию

сделал через const
Код:
const 
    q = ['B','C','D','F','G','H','J','K','L','M','N','P','Q','R','S','T','V','W','X','Y','Z',
           'b','c','d','f','g','h','j','k','l','m','n','p','q','r','s','t','v','w','x','y','z'];
var
    s:set of char;
   symbol:char;
   begin
   repeat
     writeln('vvedi simvoli abo n dlya zavershenna');
     readln(symbol);
     If symbol in q then
     s:=s+[symbol];
     until symbol = 'n';
     write(s,'');
     end.
вроде как...работает
mishammm вне форума Ответить с цитированием
Старый 25.01.2014, 19:19   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,341
По умолчанию

http://ideone.com/4X0xJS
Код:
const 
  q = ['B','C','D','F','G','H','J','K','L','M','N','P','Q','R','S','T','V','W','X','Y','Z',
       'b','c','d','f','g','h','j','k','l','m','n','p','q','r','s','t','v','w','x','y','z'];
var
  s: set of char;
  c: char;
begin
  s := [];
  read(c);
  while c <> '.' do
  begin
    if c in q then
      s := s + [c];
    read(c);
  end;
  for c := 'A' to 'z' do
    if c in s then
      write(c);
end.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 25.01.2014, 20:16   #5
mishammm
Форумчанин
 
Регистрация: 21.09.2013
Сообщений: 232
По умолчанию

та ладно, спасибо главное что работает. а что это такое?
Код:
 for c := 'A' to 'z' do
    if c in s then
      write(c)
;
чисто для интереса? и можно это добавить в мой код??
mishammm вне форума Ответить с цитированием
Старый 25.01.2014, 20:26   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,341
По умолчанию

Паскаль не может вывести сам множество (Turbo Pascal, Free Pascal), поэтому приходится перебрать все буквы (и еще пару лишних символов), чтобы вывести содержимое множества. PascalABC с его наворотами слишком далек от "канонического" паскаля.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
алгоритм генерирования к-элементных подмножеств множества Evelin_18 Паскаль, Turbo Pascal, PascalABC.NET 1 18.02.2013 11:16
Эвристический алгоритм нахождения максимально(по размеру) независимого множества Zengor Помощь студентам 0 01.06.2010 19:42
1.изобразить в виде блок схемы алгоритмы 2. Задайте нормальный алгоритм Маркова, а 3 я сам решу! Bernuar Помощь студентам 0 31.03.2010 15:49
Подскажите алгоритм acidcool Помощь студентам 1 28.10.2009 08:48