Замените каждую цифру, кроме цифры 0, соответствующей заглавной буквой латинского алфавита - Turbo Pascal
Формулировка задачи:
В процедуру Bukva передаётся строка Q, состоящая из любых символов. Замените
каждую цифру, кроме цифры 0, соответствующей заглавной буквой латинского алфавита: 1
буквой А, 2 буквой B, 3 буквой C, 4 буквой D, и т.д..
(Алфавит - ABCDEFGHIJKLMNOPQRSTUVWXYZ).
Процедура возвращает переданную строку Q с произведёнными изменениями и KOL -
количество таких замен.
МАССИВЫ использовать НЕЛЬЗЯ!!!!
Исходная строка: qwert2asdfgh5@#$h0KJ3qsdfvb
Результат: qwertBasdfghE@#$h0KJCqsdfvb
Решение задачи: «Замените каждую цифру, кроме цифры 0, соответствующей заглавной буквой латинского алфавита»
textual
Листинг программы
procedure Bukva(var s: String; var u: Integer);
var c: Char; p: Integer;
begin
u:=0;
for c:='1' to '9' do begin
p:=Pos(c,s);
while p>0 do begin
s:=Copy(s,1,p-1)+Chr(Ord(c)-Ord('1')+Ord('A'))+Copy(s,p+1,255);
p:=Pos(c,s);
Inc(u);
end;
end;
end;
Объяснение кода листинга программы
- В процедуре Bukva объявлены две переменные: s (строка) и u (целое число).
- Значение переменной u установлено равным 0.
- Цикл for выполняется от символа '1' до символа '9'.
- Внутри цикла переменная c принимает значение каждого из символов от '1' до '9'.
- Переменная p инициализируется значением, которое возвращает функция Pos, которая ищет первое вхождение символа c в строке s.
- Затем, в цикле, строка s изменяется следующим образом: сначала удаляется символ c, затем к первым 1 или 2 символам добавляется заглавная буква, соответствующая символу c, а затем оставшаяся часть строки s копируется без изменений.
- После завершения внутреннего цикла, значение переменной u увеличивается на 1.
- Внешний цикл завершается, когда значение переменной c равно 0.
- В результате выполнения процедуры Bukva, строка s будет содержать каждую цифру от 0 до 9, замененную соответствующей заглавной буквой латинского алфавита.