Не правильно работает программа - Turbo Pascal
Формулировка задачи:
Нужно перевести все слова ,из одного массива ,в другой и перевести их в верхний регистр
С англ буквами все работает ,но с русскими почему то не хочет ...
И при выполнении программа почему то слова выводит не в том порядке ,в каком они в начальном массиве.
Решение задачи: «Не правильно работает программа»
textual
Листинг программы
function UCaseStr(s: String): String; var p: PChar; begin p:=@s[Length(s)]; while p>@s[0] do begin case p^ of 'a'..'z','а'..'п': Dec(p^,$20); 'р'..'я': Dec(p^,$50); 'ё': Dec(p^); end; Dec(p); end; UCaseStr:=s; end;
Объяснение кода листинга программы
- В функции UCaseStr объявлена переменная s типа String, которая представляет исходную строку.
- Создается переменная p типа PChar, которая представляет указатель на последний символ строки s.
- В цикле while происходит считывание символа с конца строки и его сравнение с символами 'a'..'z', 'а'..'п'. Если символы совпадают, то значение символа уменьшается на 20.
- Если символы 'р'..'я' соответствуют символам в строке, то значение символа уменьшается на 50.
- Если символ равен 'ё', то его значение также уменьшается на 20.
- После каждого цикла значение переменной p обновляется, чтобы указывать на следующий символ.
- В конце функция возвращает измененную строку s в качестве результата.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д