Дана не пустая последовательность слов, из строчных русских букв. Между ними запятая, а за последним точка.
Напечатать в алфовитном порядке согласные, звонкие буквы, которые входят более чем в одно слово!
Другие языки программирования и технологии
помогите решить плз! Программирование, Паскаль. Множества. прозьба без наворотов... Циклы, иф, подпрограммы, строки, множе
Доброго времени суток.
Вот программка, которая делает то же самое для гласных. Переделать ее для звонких согласных не сложно. Замените константу 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.
Удачи!
Вот программка, которая делает то же самое для гласных. Переделать ее для звонких согласных не сложно. Замените константу 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.
Удачи!
уважаемый.. .
а как же ты как минимум без циклов и ифов тут обойдёшься?
а как же ты как минимум без циклов и ифов тут обойдёшься?
Похожие вопросы
- Помогите решить задачу в паскале. Задание: Заменить в строке все вхождения "да" на "нет".
- Помогите решить задачку в паскале на циклы. Вычисоить: y=cos(1+cos(2+...+cos(39+cos40)...))
- Помогите решить задачи по Паскалю
- помогите решить задачу на паскале: напечатать "столбиком" значения sin2, sin3, ..sin 20.
- Помогите решить программу в паскале)
- Помогите решить, пожалуста (ТУрбо Паскаль)
- Помогите решить задачу на паскале
- Помогите плиз, язык программирования паскаль
- Помогите решить задачу в паскале
- Помогите решить задачу в паскале