Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program lab3_2;
- {$APPTYPE CONSOLE}
- {$R *.res}
- uses
- System.SysUtils, Windows;
- type
- SetOfChar = set of Char;
- const
- Vocals = ['а','е','ё','и','о','у','ы','э','ю','я'];
- UpperVocals = ['А','Е','Ё','И','О','У','Ы','Э','Ю','Я'];
- Consonants = ['б','в','г','д','ж','з','к','л','м','н','п','р','с','т','ф','х','ц','ч','ш','щ','ь','ъ','й'];
- UpperConsonants = ['Б','В','Г','Д','Ж','З','К','Л','М','Н','П','Р','С','Т','Ф','Х','Ц','Ч','Ш','Щ','Ь','Ъ','Й'];
- procedure StrResult(VocalsCount, ConsonantsCount: Integer; CurrentVocals, CurrentConsonants: SetOfChar);
- var
- I: Ansichar;
- SymbolCounter: Integer;
- begin
- Writeln('Эта программа подсчитывает количество гласных и согласных в предложении.');
- if (VocalsCount = 0) and (ConsonantsCount = 0) then
- Writeln('В строке отсутствуют русские буквы.')
- else
- begin
- if VocalsCount = 0 then
- Writeln('В предложении отсутствуют гласные буквы.')
- else
- begin
- Writeln('Гласные содержащиеся в предложении:');
- for I := 'а' to 'я' do
- if I in CurrentVocals then
- Write(I, ' ');
- for I := 'А' to 'Я' do
- if I in CurrentVocals then
- Write(I, ' ');
- Writeln;
- end;
- if ConsonantsCount = 0 then
- Writeln('В предложении отсутствуют согласные буквы.')
- else
- begin
- Writeln('Согласные содержащиеся в предложении:');
- for I := 'а' to 'я' do
- if I in CurrentConsonants then
- Write(I, ' ');
- for I := 'А' to 'Я' do
- if I in CurrentConsonants then
- Write(I, ' ');
- Writeln;
- end;
- end;
- Writeln('Количество гласных: ', VocalsCount);
- Writeln('Количество согласных: ', ConsonantsCount);
- end;
- procedure StrCheck(InputString: AnsiString; High: Integer);
- var
- I: Integer;
- CurrentVocals, CurrentConsonants: SetOfChar;
- VocalsCounter, ConsonantsCounter: Integer;
- const
- AllVocals = Vocals + UpperVocals;
- AllConsonants = Consonants + UpperConsonants;
- begin
- VocalsCounter := 0;
- ConsonantsCounter := 0;
- CurrentVocals := [];
- CurrentConsonants := [];
- for I := 0 to High do
- begin
- if InputString[I] in AllVocals then
- begin
- Inc(VocalsCounter);
- Include(CurrentVocals, InputString[I]);
- end
- else
- if InputString[I] in AllConsonants then
- begin
- Inc(ConsonantsCounter);
- Include(CurrentConsonants, inputString[I]);
- end;
- end;
- StrResult(VocalsCounter, ConsonantsCounter, CurrentVocals, CurrentConsonants);
- end;
- procedure StrRead();
- var
- InputString: AnsiString;
- IsNotCorrect: Boolean;
- begin
- IsNotCorrect := False;
- repeat
- Writeln('Введите предложение:');
- Readln(InputString);
- IsNotCorrect := True;
- if InputString = '' then
- begin
- Writeln('Введена пустая строка, повторите попытку!');
- IsNotCorrect := False;
- end;
- until IsNotCorrect;
- StrCheck(InputString, Length(InputString));
- end;
- begin
- SetConsoleCP(1251);
- SetConsoleOutputCP(1251);
- StrRead();
- Readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement