Guest User

Untitled

a guest
Apr 16th, 2018
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.60 KB | None | 0 0
  1. type
  2. t = set of char;
  3. const
  4. rus : t = ['а'..'я','А'..'Я']; {множество букв слов}
  5. sh : t = ['ч','ш','щ','Ч','Ш','Щ']; {множество шипящих}
  6. var
  7. txt:string; {исходный текст}
  8. i:integer;
  9. ischet:boolean; {четное или нечетное слово}
  10. chet,nechet,res: t ;
  11.  
  12. begin
  13.  
  14. chet := []; {множество шипящих четных слов}
  15. nechet := []; {множество шипящих нечетных слов}
  16. txt := 'нечет четщ шшшша шшвв';
  17. i := 1;
  18. ischet := true;
  19.  
  20. while i<=length(txt) do begin
  21.  
  22. ischet := not ischet;
  23.  
  24. {проходим внутри слова}
  25. while ((txt[i]) in rus) and (i<=length(txt)) do begin
  26. if txt[i] in sh then {если буква шипящая то}
  27. if ischet then
  28. chet := chet + [txt[i]] {если слово четное то добавляем в chet}
  29. else
  30. nechet := nechet + [txt[i]]; {если слово нечетное то добавляем в nechet}
  31. i := i+1;
  32. end;
  33.  
  34. {пропускаем все символы между слов}
  35. while not (txt[i] in rus) and (i<=length(txt)) do
  36. i := i+1;
  37. end;
  38.  
  39. writeln(txt); {выводим слово}
  40.  
  41. write('шипящие:');
  42. res := chet - nechet; {вычисляем множество шипящих входящих в четные слова и не входящие в нечетные}
  43. for i:=1 to length(txt) do
  44. if txt[i] in res then
  45. write(txt[i],' ');
  46. writeln;
  47.  
  48. end.
Add Comment
Please, Sign In to add comment