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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2008, 02:28   #1
Isuzu_Rin
Новичок
Джуниор
 
Регистрация: 24.12.2008
Сообщений: 1
По умолчанию Паскаль. задача на множества

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

Просто найти эти буквы получается, но я не понимаю как среди них найти те которые не входят хотя бы в одно слово...
Код:
type bukv=set of char;
const sogl:bukv=['k','p','s','t','f','j','h'];
var st:string;
      i,a:integer;
      c:char;
      rez:bukv;
begin
  writeln('Vvedite stroku');
  read(st);
  rez:=[];
  for i:=1 to length(st) do
    if st[i] in sogl then
      rez:=rez + [st[i]];
  for c:='a' to 'z' do
   if c in rez then
    write(c,' ');
readln;
end.
Думала посчитать количество слов и поставить условие что кол-во вхождений буквы в строке должно быть меньше, но не понимаю куда в таком случае вставить это сравнение... Помогите пожалуйста.
Isuzu_Rin вне форума Ответить с цитированием
Старый 24.12.2008, 10:01   #2
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Код:
uses crt;
type bukv=set of char;
const sogl:bukv=['k','p','s','t','f','j','h'];
var s:string;
    i:integer;
    m,m1:bukv;
    ch:char;
begin
clrscr;
readln(s);
i:=0;
m:=[];
repeat
inc(i);
if s[i]<>',' then  if s[i] in sogl then m:=m+[s[i]];
until s[i]=',';
repeat
m1:=[];
inc(i);
 while (s[i]<>',')and (s[i]<>'.') do
   begin
     if s[i]<>',' then  if s[i] in sogl then m1:=m1+[s[i]];
     inc(i);
   end;
m:=m*m1;
until s[i]='.';
m1:=sogl-m;
writeln;
for ch:='a' to 'z' do
 if (ch in sogl)and (ch in m1) then write(ch,' ');
end.
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить задачу на множества (Паскаль) mpegable Помощь студентам 3 17.02.2015 00:15
Множества.(паскаль)Help plz pif Помощь студентам 2 01.12.2008 15:59
Опять Паскаль...Тема множества...Заранее огромное спасибо!!! Miledi Помощь студентам 1 20.04.2008 16:34
Задача на множества Mastak Паскаль, Turbo Pascal, PascalABC.NET 2 11.12.2007 18:04