Другие языки программирования и технологии

помогите решить плз! Программирование, Паскаль. Множества. прозьба без наворотов... Циклы, иф, подпрограммы, строки, множе

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

Вот программка, которая делает то же самое для гласных. Переделать ее для звонких согласных не сложно. Замените константу Vocalic, вернее ее содержимое на нужные символы и откорректируйте рамерность массива А в соответствии с новой длиной Vocalic. Не думаю, что здесь есть навороты.

program VocalCnt;
uses Crt;

const
WordDelim : Set of Char = [',', '.', ' ']; {множество разделителей слов}
Vocalic : String = 'аеёиоуыэюя';

var
s, s1 : String;
j,k : Integer;
a : array[1..10] of Integer;

begin
ClrScr;
Write('Введите предложение: ');
ReadLn(s);

s1 := ''; {буфер для накопления слова}
for j:=1 to Length(s) do begin
if not (s[j] in WordDelim) then s1 := s1 + s[j]; {накапливаем, если не пробел, запятая или точка}
if s[j] in WordDelim then {пробел, запятая или точка}
if (s1 <> '') then begin {слово не пустое}
for k:=1 to Length(Vocalic) do begin {для всех гласных}
if Pos(Vocalic[k], s1) > 0 then {если она есть в слове}
Inc(a[k]); {увеличим счетчик}
end;
s1 := ''; {очищаем накопитель}
end;
end;

{выводим результат}
Write('гласные, встречающиеся более, чем в одном слове: ');
for k:=1 to Length(Vocalic) do {для всех гласных}
if a[k] > 1 then {если счетчик больше одного}
Write(Vocalic[k], ' '); {печатаем}

ReadLn;
end.

Удачи!
Александр Стараковский
Александр Стараковский
59 612
Лучший ответ
уважаемый.. .
а как же ты как минимум без циклов и ифов тут обойдёшься?
@~Jeenbek~@ Kalygul Uulu
@~Jeenbek~@ Kalygul Uulu
81 811