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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2009, 23:05   #1
Lirik18
 
Регистрация: 26.04.2009
Сообщений: 3
По умолчанию 2 задания на множества

Доброго времени суток дорогие программисты!!! Столкнулся с проблемой решения двух задач:
1) Дана непустая последовательность слов из строчных русских букв; между со-седними словами - запятая, за последним словом - точка. Напечатать в алфа-витном порядке:
все гласные буквы, которые входят в каждое слово; все согласные бук-вы, которые не входят ни в одно слово
2) В заданной последовательности литер, состоящей из букв латинского алфа-вита и оканчивающейся точкой, определите общее число вхождений букв "a","e", "c", "h".
Lirik18 вне форума Ответить с цитированием
Старый 29.04.2009, 23:29   #2
Lirik18
 
Регистрация: 26.04.2009
Сообщений: 3
По умолчанию

По первой программе я понял немного, но только про согласные буквы которые не входят не в одно слово. Но как еще с гласными сделать и соединить в одно.
Код:
uses crt;
const sg='б','в','г','д','ж','з','й','к','л','м','н','п','р','с','т','ф','х','ц','ч','ш','щ','ъ','ь'];
var s:string;
    m,m1:set of char;
    i,k:integer;
begin
clrscr;
writeln('Vvedite text');
readln(s);
for i:=1 to length(s) do
if s[i] in sg then include(m,s[i]);
m1:=sg-m;
writeln('rezul:');
k:=0;
for i:=161 to 236 do
if chr(ord(i))in m1 then
  begin
   write(chr(ord(i)),' ');
   k:=k+1;
  end;
if k=0 then writeln('bukv net');
reeadln
end.
А по второй программе я торможу..

Последний раз редактировалось Lirik18; 29.04.2009 в 23:30. Причина: Забыл добавить
Lirik18 вне форума Ответить с цитированием
Старый 30.04.2009, 23:17   #3
Lirik18
 
Регистрация: 26.04.2009
Сообщений: 3
По умолчанию

Люди по второй задачи разобрался Кому надо скину код. Помогите по первой!!
Lirik18 вне форума Ответить с цитированием
Старый 01.05.2009, 00:20   #4
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Цитата:
Сообщение от Lirik18 Посмотреть сообщение
Доброго времени суток дорогие программисты!!! Столкнулся с проблемой решения двух задач:
1) Дана непустая последовательность слов из строчных русских букв; между со-седними словами - запятая, за последним словом - точка. Напечатать в алфа-витном порядке:
все гласные буквы, которые входят в каждое слово; все согласные бук-вы, которые не входят ни в одно слово .
Как вариант
1. Разбейте всю последовательность на слова(можно запихнуть их в массив) - этого добра на форуме полно
2. Формируете множество гласных букв из первого слова(f). Затем в цикле для остальных слов формируете мн-во для i-ого слова(temp) и пересекаете их(f:=f*temp). И так для всех слов в итоге к концу у Вас в f останутся гласные, которые есть во всех словах
3.Множество согласных(mn) состоит из всех букв этого типа.В цикле по всем словам из него удаляете все согласные в i-ом слову(mn:=mn-a[i][j], где i - номер слова в массиве, j - номер буквы в слове). В конце имеем согласные которые не встречаются ни в одном из слов.
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 01.05.2009, 11:45   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Лирик, вот, готовая программка ((c) не мой)
разберётесь в ней - сделаете свою :
Код:
(*

Дана непустая последовательность слов из строчных русских букв;
между соседними словами - запятая, за последним словом - точка.
Напечатать в алфавитном порядке:
  все глухие согласные буквы, которые входят в каждое нечетное слово
                              и не входят хотябы в одно четное слово.
Примечание: гласные буквы: а,е,и,о,у,ы,э,ю,я (без ё);
согласные - все остальные буквы, кроме й,ь,ъ;
звонкие согласные - б,в,г,д,ж,з,л,м,н,р;
глухие согласные - к,п,с,т,ф,х,ц,ч,ш,щ.

*)

program lalala; {Прога "ляляля"}
const gluh = ['к', 'п', 'с', 'т', 'ф', 'х', 'ц', 'щ']; {Все глухие}
type wrds = array[1..250] of string; {новый тип- массив словес}
var l: string; {строчечго}
  ww: array[1..250] of string; {массив слов}
  len, ii: integer; {числеца - len кол-во слов ii счётчик}

procedure fromstringtwords; {строчечго --> словеса}
var i, j: integer; { no comments}
  cs: string; {cs- current string - кусок слова}
begin {---}
  i := 1; {---}
  j := 1; {---}
  cs := ''; {}
  while l[i] <> '.' do {пока символ l[i] <> '.'}
  begin {---}
    if l[i] = ',' then {если он "," }
    begin {---}
      ww[j] := cs; {словесо = сs}
      cs := ''; {кусок слова пустой}
      inc(j); {следующее словесо }
    end else cs := cs + l[i]; {иначе кусок слова + символ из строчечго}
    inc(i);
  end;
  ww[j] := cs; {последнее словесо}
  len := j; {кол-во словес}
end;

function ninchet(s: char): boolean; {символ s не содержится в 1 чёт.}
var i, j: integer;
  k: boolean;
begin
  i := 0;
  k := true; {к = содержится}
  while (i <= len) and k do
  begin
    inc(i, 2);
    j := 1;
    while (j <= length(ww[i])) and (ww[i][j] <> s) do inc(j);
    if j <= length(ww[i]) then {если всё-таки не содержится}
    begin
      k := false; {то так и быть}
    end;
  end;
  ninchet := i > len; {возврат}
end;

function inallnechet(s: char): boolean; {во всех нечет. есть s}
var i, j: integer;
  k: boolean;
begin
  k := true; {k= оно во всех}
  i := -1;
  while (i <= len) and k do { если не во всех- ПАКА}
  begin
    inc(i, 2);
    j := 1;
    while (j <= length(ww[i])) and (ww[i][j] <> s) do inc(j);
    k := j > length(ww[i]); {k:= во всех ли?}
  end;
  inallnechet := i < len;
end;

var jj: integer;
begin
  fillchar(ww, sizeof(ww), 0); {забить словеса пустотой}
{  read(l);}{строчечго!}
  l := 'хищение,ага,порох.';
  fromstringtwords; {строчечго --> словеса}
  WriteLn(len);
  for jj := 1 to Len do
    Writeln(ww[jj]);
  for ii := 40 to 256 do {все символы, в кот. может содержаться глух. (можно упростить)}
    if chr(ii) in gluh then {если символ глухой}
    begin
      if ninchet(chr(ii)) and inallnechet(chr(ii)) then write(chr(ii), ' '); { и соотв. условию - вывести}
    end;
end. {всё}
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
2 задания(Двумерные массивы) MyaSnIKs Помощь студентам 8 25.03.2009 15:57
перехват задания на печать Bogood Win Api 4 20.03.2009 08:47
3 задания по турбо паскалю infff Помощь студентам 12 05.03.2009 18:59
необходимо решить задания Жека2110 Фриланс 2 10.02.2008 20:18