Advertisement
Guest User

Untitled

a guest
Feb 27th, 2020
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 3.61 KB | None | 0 0
  1. program lab3_2;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. {$R *.res}
  6.  
  7. uses
  8.     System.SysUtils, Windows;
  9.  
  10. type
  11.     SetOfChar = set of Char;
  12.  
  13. const
  14.     Vocals = ['а','е','ё','и','о','у','ы','э','ю','я'];
  15.     UpperVocals = ['А','Е','Ё','И','О','У','Ы','Э','Ю','Я'];
  16.     Consonants = ['б','в','г','д','ж','з','к','л','м','н','п','р','с','т','ф','х','ц','ч','ш','щ','ь','ъ','й'];
  17.     UpperConsonants = ['Б','В','Г','Д','Ж','З','К','Л','М','Н','П','Р','С','Т','Ф','Х','Ц','Ч','Ш','Щ','Ь','Ъ','Й'];
  18.  
  19. procedure StrResult(VocalsCount, ConsonantsCount: Integer; CurrentVocals, CurrentConsonants: SetOfChar);
  20. var
  21.     I: Ansichar;
  22.     SymbolCounter: Integer;
  23. begin
  24.     Writeln('Эта программа подсчитывает количество гласных и согласных в предложении.');
  25.     if (VocalsCount = 0) and (ConsonantsCount = 0)  then
  26.         Writeln('В строке отсутствуют русские буквы.')
  27.     else
  28.     begin
  29.         if VocalsCount = 0 then
  30.             Writeln('В предложении отсутствуют гласные буквы.')
  31.         else
  32.         begin
  33.             Writeln('Гласные содержащиеся в предложении:');
  34.             for I := 'а' to 'я' do
  35.                 if I in CurrentVocals then
  36.                     Write(I, ' ');
  37.             for I := 'А' to 'Я' do
  38.                 if I in CurrentVocals then
  39.                     Write(I, ' ');
  40.             Writeln;
  41.         end;
  42.         if ConsonantsCount = 0 then
  43.             Writeln('В предложении отсутствуют согласные буквы.')
  44.         else
  45.         begin
  46.             Writeln('Согласные содержащиеся в предложении:');
  47.             for I := 'а' to 'я' do
  48.                 if I in CurrentConsonants then
  49.                     Write(I, ' ');
  50.             for I := 'А' to 'Я' do
  51.                 if I in CurrentConsonants then
  52.                     Write(I, ' ');
  53.             Writeln;
  54.         end;
  55.     end;
  56.     Writeln('Количество гласных: ', VocalsCount);
  57.     Writeln('Количество согласных: ', ConsonantsCount);
  58. end;
  59.  
  60. procedure StrCheck(InputString: AnsiString; High: Integer);
  61. var
  62.     I: Integer;
  63.     CurrentVocals, CurrentConsonants: SetOfChar;
  64.     VocalsCounter, ConsonantsCounter: Integer;
  65. const
  66.     AllVocals = Vocals + UpperVocals;
  67.     AllConsonants = Consonants + UpperConsonants;
  68. begin
  69.     VocalsCounter := 0;
  70.     ConsonantsCounter := 0;
  71.     CurrentVocals := [];
  72.     CurrentConsonants := [];
  73.     for I := 0 to High do
  74.         begin
  75.             if InputString[I] in AllVocals then
  76.             begin
  77.                 Inc(VocalsCounter);
  78.                 Include(CurrentVocals, InputString[I]);
  79.             end
  80.             else
  81.                 if InputString[I] in AllConsonants then
  82.                 begin
  83.                     Inc(ConsonantsCounter);
  84.                     Include(CurrentConsonants, inputString[I]);
  85.                 end;
  86.         end;
  87.     StrResult(VocalsCounter, ConsonantsCounter, CurrentVocals, CurrentConsonants);
  88. end;
  89.  
  90. procedure StrRead();
  91. var
  92.     InputString: AnsiString;
  93.     IsNotCorrect: Boolean;
  94. begin
  95.     IsNotCorrect := False;
  96.     repeat
  97.         Writeln('Введите предложение:');
  98.         Readln(InputString);
  99.         IsNotCorrect := True;
  100.         if InputString = '' then
  101.         begin
  102.             Writeln('Введена пустая строка, повторите попытку!');
  103.             IsNotCorrect := False;
  104.         end;
  105.     until IsNotCorrect;
  106.     StrCheck(InputString, Length(InputString));
  107. end;
  108.  
  109. begin
  110.     SetConsoleCP(1251);
  111.     SetConsoleOutputCP(1251);
  112.     StrRead();
  113.     Readln;
  114. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement