Не правильно работает программа - 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;

Объяснение кода листинга программы

  1. В функции UCaseStr объявлена переменная s типа String, которая представляет исходную строку.
  2. Создается переменная p типа PChar, которая представляет указатель на последний символ строки s.
  3. В цикле while происходит считывание символа с конца строки и его сравнение с символами 'a'..'z', 'а'..'п'. Если символы совпадают, то значение символа уменьшается на 20.
  4. Если символы 'р'..'я' соответствуют символам в строке, то значение символа уменьшается на 50.
  5. Если символ равен 'ё', то его значение также уменьшается на 20.
  6. После каждого цикла значение переменной p обновляется, чтобы указывать на следующий символ.
  7. В конце функция возвращает измененную строку s в качестве результата.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.2 из 5
Похожие ответы