Предмет: Информатика, автор: noname76844

Помогите с Паскалем, пожалуйста, алфавит.
1)Дана строка с алфавитом, (русский, английский, безразницы) нужно чтобы программа выводила из этого алфавита гласные и согласные буквы.
2) поменять первую букву с предпоследней местами.
3) программа должна посчитать количество заглавных букв, например Аа, Бб, Вв, т.е например 3 заглавные буквы.​

Ответы

Автор ответа: angryfukse
1

Язык: Pascal

Программа выводит из любой строки гласные и согласные буквы

Если нужна строка именно с алфавитом - введёшь самостоятельно, либо заведёшь константу.

var

 size, i, count:integer;

 temp:char;

 SomeString, NewString:string;

 PSigns, UpperReg, vow, vowels, cons, consonant:set of char;

begin

 PSigns:=['.', '!', '?'];

 UpperReg:=['А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я'];

 vowels:=['А', 'а', 'Е', 'е', 'Ё', 'ё', 'И', 'и', 'О', 'о', 'У', 'у', 'Ы', 'ы', 'Э', 'э', 'Ю', 'ю', 'Я', 'я'];

 consonant:=['Б', 'б', 'В', 'в', 'Г', 'г', 'Д', 'д', 'Ж', 'ж', 'З', 'з', 'Й', 'й', 'К', 'к', 'Л', 'л', 'М', 'м', 'Н', 'н', 'П', 'п', 'Р', 'р', 'С', 'с', 'Т', 'т', 'ф', 'Ф', 'Х', 'х', 'Ц', 'ц', 'Ч', 'ч', 'Ш', 'ш', 'Щ', 'щ'];

 vow:=[]; cons:=[];

 count:=0;

 SomeString:=ReadString('Введите строку на русском языке: ');

 size:=length(SomeString);

 temp:=SomeString[1];

 NewString:=SomeString;

 for i:=1 to size do

   begin

     if (SomeString[i] in vowels) then

         include(vow, SomeString[i]);

     if (SomeString[i] in consonant) then

       include(cons, SomeString[i]);

     if (SomeString[i] in UpperReg) then

       inc(count);

   end;

 write('Гласные буквы в строке: ', vow, #10, 'Согласные буквы в строке: ', cons, #10);

 write('Поменяем первую и предпоследнюю букву в строке местами: ' );

 NewString[1]:=NewString[size - 1];

 if (NewString[size - 1] in PSigns) then

   NewString[size - 2]:=temp

 else

   NewString[size - 1]:=temp;

 write(NewString);

 write(#10, 'Количество заглавных букв в строке: ', count);

end.

Приложения:

noname76844: если просто ['A'..'Z'] на ['A'..'Я'] менять, не работает
angryfukse: С русским алфавитом не выйдет
angryfukse: Так сработает только с английским
angryfukse: Что делать с русским я не знаю. Я попытался исправить, но не вышло
angryfukse: Если тебе необязательно в лазарусе показывать, то скачай Pascal ABC и покажи в нём. Там вообще ВСЁ, что я написал, работает. Как исправить кириллицу в лазарусе - к сожалению не знаю
angryfukse: Даже если писать прямую проверку "if (SomeString[i] = 'И'), то он не понимает кириллицу
angryfukse: Только что проверил
noname76844: спасибо огромное!
alexminaev: https://znanija.com/task/49744330?answeringSource=feedPublic%2FhomePage%2F10
alexminaev: Помогите пожалуйста, а я вам с рейтингом на сайте!)
Похожие вопросы
Предмет: Қазақ тiлi, автор: zhetkergen
Предмет: Математика, автор: inna8223