Вывести все согласные, которых нет ни в одном слове предложения - Free Pascal
Формулировка задачи:
Помогите пожалуйста а то у меня не получается.
Задание: Дано предложение. Вывести все согласные, которых нет ни в одном слове.
Вот есть подобная задача, как же мне сделать так чтоб она производила такие действия, но со строкой введённой с клавиатуры?
uses crt;
//множество всех согласных букв русского алфавита
const sgl=['Б','б','В','в','Г','г','Д','д','Ж','ж','З','з','Й','й','К','к',
'Л','л','М','м','П','п','Р','р','С','с','Т','т','Ф','ф','Х','х',
'Ц','ц','Ч','ч','Ш','ш','Щ','щ'];
var f:text;
c:char;
m:set of char;
begin
assign(f,'text.txt');
reset(f);
m:=[];//множество согласных, которые ксть в файле
while not eof(f) do
read(f,c);
if c in sgl then m:=m+[c];
close(f);
writeln('Согласные буквы, которых нет ни в одном слове:');
m:=sgl-m;//вычитаем из полного множества, те что есть
if m=[] then write('Таких букв нет')
else
begin
for c:='Б' to 'щ' do
if c in m then write(c);
end;
end.Решение задачи: «Вывести все согласные, которых нет ни в одном слове предложения»
textual
Листинг программы
ReadLn(s); for i:=1 to Length(s) do Include(m,s[i]); m:=sgl-m; for c:='А' to 'я' do if с in m then Write(c); WriteLn;
Объяснение кода листинга программы
- Вводится предложение в переменную
sс помощью функции ReadLn. - В цикле перебираются все символы в предложении
s. - С помощью функции Include проверяется, является ли текущий символ согласным и добавляется в переменную
m, если да. - Переменная
mсодержит все согласные символы в предложенииs. - Переменная
sglсодержит количество символов в предложенииs. - Переменная
mсодержит только согласные символы, которых нет в предложенииs. - В цикле перебираются все буквы от 'А' до 'я'.
- Если текущая буква есть в переменной
m, то она выводится на экран с помощью функции Write. - Код выводит все отсутствующие согласные буквы в предложении
s.