Pascal. Дана непустая последовательность слов из строчных русских букв;
между соседними словами – запятая, за последним словом – точка. Напечатать звонкие согласные буквы, которые входят в каждое нечетное слово и не входят ни в одно четное слово в алфавитном порядке все.
<em><u>Вариант для тех, кто любит и понимает множества.</u></em> const cs='бвгджз'; var s:string; i:integer; c:char; p,csg:set of char; begin Writeln('Введите текст, разделяя слова запятыми, в конце поставьте точку'); Readln(s); p:=[]; for i:=1 to Length(cs) do Include(csg,cs[i]); { инициализация множества } s:=LowerCase(s); { приведение к нижнему регистру } i:=1; c:=s[1]; while c<>'.' do begin { обработка нечетного слова } while not (c in [',','.']) do begin if (c in csg) and not (c in p) then Include(p,c); i:=i+1; c:=s[i] end; { обработка четного слова } if c<>'.' then begin i:=i+1; c:=s[i] end; while not(c in [',','.']) do begin if (c in csg) and (c in p) then Exclude(p,c); i:=i+1; c:=s[i] end; if c<>'.' then begin i:=i+1; c:=s[i] end end; s:=''; for i:=1 to Length(cs) do if cs[i] in p then Write(cs[i]) end.
<em><u>Тестовое решение:</u></em> Введите текст, разделяя слова запятыми, в конце поставьте точку Это,пример,текста,созданного,для,проверки,программы. гд
<em><u>Вариант для тех, кто с множествами не дружит:</u></em> const cs='бвгджз'; var s,p:string; i,n:integer; c:char; begin Writeln('Введите текст, разделяя слова запятыми, в конце поставьте точку'); Readln(s); p:=''; n:=Length(cs); s:=LowerCase(s); { приведение к нижнему регистру } i:=1; c:=s[1]; while c<>'.' do begin { обработка нечетного слова } while (c<>',') and (c<>'.') do begin if (Pos(c,cs)>0) and (Pos(c,p)=0) then p:=p+c; i:=i+1; c:=s[i] end; { обработка четного слова } if c<>'.' then begin i:=i+1; c:=s[i] end; while (c<>',') and (c<>'.') do begin if (Pos(c,cs)>0) and (Pos(c,p)=1) then p[Pos(c,p)]:='*'; i:=i+1; c:=s[i] end; if c<>'.' then begin i:=i+1; c:=s[i] end end; for i:=1 to Length(cs) do if Pos(cs[i],p)>0 then Write(cs[i]) end.
<em><u>Тестовое решение:</u></em> Введите текст, разделяя слова запятыми, в конце поставьте точку Данная,фраза,предлагается,для,тестирования. вг
Var p:char; s,a,b:real; begin writeln('Введите первое число'); readln(a); writeln('Введите второе число'); readln(b); writeln('Введите знак действия (+ - * /)'); readln(p); case p of '+': s:=a+b; '*': s:=a*b; '/': s:=a/b; '-': s:=a-b; end; writeln(s); end.