Наташа Мишкина
Наташа Мишкина

Pascal ABC . Дана строка-предложение на русском языке. Зашифровать ее...

Дополнительные задания на обработку
строк

Pascal ABC. Дана строка-предложение на русском языке. Зашифровать ее, выполнив
циклическую замену каждой буквы на следующую за ней в алфавите и сохранив при
этом регистр букв («А» перейдет в «Б» , «а» — в «б» , «Б» — в «В» , «я» — в «а» и
т. д.) . Букву «ё» в алфавите не учитывать («е» должна переходить в «ж») . Знаки
препинания и пробелы не изменять.

Юл
Юлия

В предложении могут быть буквы и любые другие символы, поэтому сначала проверяем, буква это или нет. Затем получаем код этой буквы через функцию оrd и увеличиваем его на 1 - получаем новый код. Потом проверяем на цикличность, т. е. не вылетел ли код за алфавит (в данной задаче - для букв "Я" и "я") , и если вылетели, то возвращаемся на начало алфавита, отняв от кода число букв в алфавите (по условию - 32).

Вот так получается:

var i,nc,sc:integer;
s:string;
begin
readln(s);
for i:=1 to length(s) do
if s[i] in ['А'..'Я','а'..'я'] then
begin
sc:=ord(s[i]);
nc:=sc+1;
if (s[i] in ['А'..'Я']) and (nc>ord('Я')) or
(s[i] in ['а'..'я']) and (nc>ord('я')) then
nc:=nc-32;
s[i]:=chr(nc);
end;
writeln(s);
end.

Успехов!

Похожие вопросы
Помогите с предложениями по русскому языку
flfСчитывание данных из файла в Pascal ABC
Перевести предложение на русский язык.
Помогите перевести на язык pascal abc
образуйте от глаголов, данных в скобках, герундий, выделите его, переведите предложения на русский язык
переведите предложения на русский язык.
Простые предложения в русском языке
PASCAL ABC Подскажите, пожалуйста, где у меня ошибка....
вывести количество повторяющихся символов в строке Pascal ABC
Pascal ABC . Дана строка, состоящая из русских слов...