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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2009, 13:47   #1
Архат
Новичок
Джуниор
 
Регистрация: 14.06.2009
Сообщений: 12
По умолчанию Множество, очень замудренно, паскаль АБС

Дана непустая последовательность слов из строчных русских букв
Между соседними словами - запятая
За последним словом - точка

а) Напечатать в алфавитном порядке все звонкие согласные буквы, которые входят в каждое нечетное и не входят ни в одно четное слово.

б) Все глухие согласные буквы, которые входят в каждое нечетное и не входят хотя бы в одно четное слово

Гласные буквы- а,е,и,о,у,ы,э,ю,я
Согласные буквы - все остальные кроме й,ь,ъ
Звонкие согл - б,в,г,д,ж,з,л,м,н,р
глухие согл -к,п,с,т,ф,х,ц,ч,ш,щ

Помогите пожалуйста, даже не знаю с чего начать, заранее спасибо!
Архат вне форума Ответить с цитированием
Старый 14.06.2009, 14:16   #2
Архат
Новичок
Джуниор
 
Регистрация: 14.06.2009
Сообщений: 12
По умолчанию Вот что нашел в инете

Вот что нашел в инете
там условие чуть по другому:
1. Все гласные буквы, которые входят в каждое слово;
2. Все звонкие согласные буквы, которые входят в каждое нечетное слово и не входят ни в одно четное слово.

а мне надо что бы по моему условию было, помогите пожалуйста???
Код:
  var
    SetChet,SetNeChet,SetChar,SetOne,SetTwo:set of char;
    WordCount:integer;
    InputString:string;
  begin
    {ставим нужные множества: гласных и согластных}
    SetOne:=['а','е','и','о','у','ы','э','ю','я'];{гластные}
    SetTwo:=['б','в','г','д','ж','з','л','м','н','р'];{согласные}
    {варианты на все случаи жизни:
    гласные буквы - а, е, и, о, у, ы, э, ю, я;
    звонкие согласные буквы - б, в, г, д, ж, з, л, м, н, р;
    глухие согласные буквы - к, п, с, т, ф, х, ц, ч, ш, щ.}
    write('Enter string :');readln(InputString);{вводим строку}
    if pos('.',InputString)=0
      then InputString := InputString + '.'{ставим точку если пользователь забыл}
      else while InputString[length(InputString)]<>'.' do
        delete(InputString,length(InputString),1);{удаляем все символы после точки, если ввел лишнее}
    InputString:='бвгджзаеу,джаеи,лмнрае.';{контрольная строка для проверки- приработе она ненужна}
    writeln('Result:',InputString);{выводим строку}
    {сброс счетчиков букв и рабочих множеств}
    WordCount:=1;{счетчик слов}
    SetChet:=[];{множество согласных букв четных слов}
    SetNechet:=[];{множество согластных букв нечетных слов}
    SetChar:=[];{множество гласных букв в одном слове}
    writeln;
    While length(InputString)>0 do{}
      begin
        if (InputString[1]='.') or (InputString[1]=',')then{если точка или запятая - новое слово}
          begin
            inc(WordCount);{увеличиваем счетчик слов}
            SetOne:=SetOne * SetChar;{пересечение множеств, остаются только те буквы, которые есть в обоих множествах}
            SetChar:=[];{сбрасываем текущее множество}
          end
          else
          begin
            if InputString[1]in SetTwo then{если буква принадлежит множеству согласных букв}
              begin
              if odd(WordCount){буквы четных и нечентных слов записываем в разные множества}
                then SetNechet:=SetNechet+[InputString[1]]
                else SetChet:=SetChet+[InputString[1]];
              end;
            if InputString[1]in SetOne then
              SetChar:=SetChar + [InputString[1]];{если буква принадлежит множеству гласных, записываем текущего слова}
          end;
        delete(InputString,1,1);{удаляем первый символ строки}
      end;
    SetNechet:=SetNechet-SetChet;{вычитаем из множества согласных букв нечетных слов, буквы которые встретились в четных словах}
    writeln('Count:',WordCount);
    write('One :');{выводим результат первой задачи}
    for WordCount:=0 to 255 do
      if chr(WordCount)in SetOne then write(chr(WordCount):2);
    writeln;
    write('Two :');{выводим результат второй задачи}
    for WordCount:=0 to 255 do
      if chr(WordCount)in SetNechet then write(chr(WordCount):2);
    readln;
  end.
Архат вне форума Ответить с цитированием
Старый 14.06.2009, 14:22   #3
-HunteR-
Форумчанин
 
Аватар для -HunteR-
 
Регистрация: 04.11.2007
Сообщений: 117
По умолчанию

считай запятые, узнавай "четность" слов

есть ещё такие полезные функции при работе со строками:
pos(x,y) найдет x в строке y и результатом будет позиция x в y

delete(x,y,z) удалит z символов из строки x начиная от y

insert(x,y,z) вставит x в z на позицию y
Перед тем, как выложить код, я его всегда проверяю.
Если помог - тыкни на на весы слева, под аватарой.
-HunteR- вне форума Ответить с цитированием
Старый 14.06.2009, 14:36   #4
Архат
Новичок
Джуниор
 
Регистрация: 14.06.2009
Сообщений: 12
По умолчанию

Цитата:
Сообщение от -HunteR- Посмотреть сообщение
считай запятые, узнавай "четность" слов
Зачем там же уже используется odd(от чегота там)
Архат вне форума Ответить с цитированием
Старый 14.06.2009, 14:52   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

посмотрите сюда: 2 задания на множества
может поможет...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.06.2009, 15:30   #6
Архат
Новичок
Джуниор
 
Регистрация: 14.06.2009
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
посмотрите сюда: 2 задания на множества
может поможет...
спасибо, очень помогло
Архат вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рекурентное соотношение на Паскаль АБС Архат Паскаль, Turbo Pascal, PascalABC.NET 0 14.06.2009 13:10
ПАСкаль. 2 очень интересные задачи Valik102 Помощь студентам 2 22.05.2009 17:06
Паскаль,функция и множество pavlentus Помощь студентам 4 20.04.2009 20:39
Люди помогите !!! Очень срочно нужно. (ПАСКАЛЬ) Jey_RO Помощь студентам 2 27.05.2008 18:52
Помоги с задачей плз очень надо.Паскаль menlo Помощь студентам 7 03.11.2007 16:40