Изменить регистр букв в словах, в которых есть мягкий знак - Turbo Pascal
Формулировка задачи:
Написать программу : Изменить регистр букв в словах, в которых есть мягкий знак. Паскаль
Решение задачи: «Изменить регистр букв в словах, в которых есть мягкий знак»
textual
Листинг программы
const UCase:string='ЁЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТБЮQWERTYUIOPASDFGHJKLZXCVBNM'; LCase:string='ёйцукенгшщзхъфывапролджэячсмитбюqwertyuiopasdfghjklzxcvbnm'; var s,Sout,t:string; c:char; i:integer; procedure MSlovo(var t:string;var SOut:string); var i:integer; begin if (t<>'') and ((pos('ь',t)>0) or (pos('Ь',t)>0)) then for i:=1 to length(t) do if pos(t[i],UCase)>0 then t[i]:=LCase[pos(t[i],UCase)] else if pos(t[i],LCase)>0 then t[i]:=UCase[pos(t[i],LCase)]; SOut:=SOut+t; t:=''; end; begin { write('введите слова:'); readln(s); } s:='тЕСТЬ ТО-еСТЬ, тьмаSDsd. aaa;соль польКа'; writeln('исходная строка: ',s); SOut:=''; t:=''; for i:=1 to length(s) do begin t:=t+s[i]; if pos(s[i],'., :!?;')<>0 then MSlovo(t,SOut); end; MSlovo(t,Sout); writeln('Полученная строка: ',Sout); readln; end.
Объяснение кода листинга программы
- В строке const определены две переменные: UCase и LCase. UCase содержит заглавные буквы русского алфавита, а LCase содержит строчные буквы.
- В переменной s хранится введенная пользователем строка.
- В переменной Sout хранится результат обработки строки s.
- В переменной t хранится текущий символ из строки s.
- В переменной i используется цикл for для прохода по каждому символу в строке s.
- Если текущий символ в строке s является мягким знаком (ь или ь), то он заменяется на соответствующую заглавную букву в переменной t.
- Если текущий символ в строке s не является мягким знаком, то он заменяется на соответствующую строчную букву в переменной t.
- После прохода по всем символам в строке s, результат обработки записывается в переменную Sout.
- Переменная t сбрасывается в пустую строку.
- Цикл for завершается.
- Выводится сообщение с исходной и полученной строками.
- Программа завершается ожиданием ввода пользователя.