Информатика, вопрос задал vaniakalinin , 8 лет назад

ПАСКАЛЬ.ПОМОГИТЕ ПОЖАЛУЙСТА.Дана не пустая последовательность слов из строчных русских букв,между соседними словами пробел, за последним словом точка. Напечатать в алфавитном порядке все звонкие согласные буквы, которые входят в каждое нечётное слово и в то же время не входят в каждое чётное слово. А ещё написать текст программы так, чтобы всё правильно работало если пробелов будет несколько. И если текст, который ввели не удолетворяет условиям, то должно выдасть ошибку. В тексте программы можно использовать подпрограммы, множества и т.д. Но нельзя использовать модули.

Ответы на вопрос

Ответил petyaGavrikov
0
var s:string;
m,mn,m1,m2:set of char;
i,k,l:integer;
begin
writeln('Введите последовательность русских слов:');
readln(s);
m:=['Б','б','В','в','Г','г','Д','д','Ж','ж','З','з','Й','й','Л','л','М','м','Н','н','Р','р'];
k:=0;
for i:=1 to length(s) do
 if not (s[i] in ['А'..'Я','а'..'я',' ','.']) then k:=k+1;
if k>0 then writeln('Ошибка ввода')
else begin
 while pos('  ',s)>0 do delete(s,pos('  ',s),1);
 if s[length(s)]='.' then s[length(s)]:=' ';
 k:=0; mn:=[]; m1:=m; m2:=m;
 for i:=1 to length(s) do
  begin
  mn:=mn+[s[i]];
  if s[i]=' ' then
   begin
   k:=k+1;
   if k mod 2=1 then m1:=m1*mn else m2:=m2*mn;
   mn:=[];
   end;
  end;
 mn:=m1-m2;
 print(mn);
     end;
end.

Пример:
Введите последовательность русских слов:
напечатать в   алфавитном порядке    звонкие буквы.
{н} 
Новые вопросы