Удалить цифру из числа | Язык Паскаль

Удалить цифру из числа

Из натурального числа удалить заданную цифру. Число и цифру вводить с клавиатуры.

Например, задано число 5683. Требуется удалить из него цифру 8. Получится число 563.

Задача усложняется тем, что заранее неизвестно количество разрядов числа. Поэтому исходное число проще начать проверять с конца с помощью оператора mod (нахождения остатка от деления). Делить надо на 10, чтобы получить последнюю цифру числа.

Если последняя цифра не совпадает с цифрой, которую требуется удалить, то ее надо перенести в другое число, учитывая разрядность числа.

var 
    n, a, ch, sum, raz: integer;
 
begin
    write('Введите целое натуральное число: '); 
    readln(n);
    write('Какую цифру надо удалить? '); 
    readln(ch);

    sum := 0; // новое число
    raz := 1; // разряд

    while n > 0 do begin
        a := n mod 10; // последняя цифра числа
        if ch <> a then begin 
            sum := sum + a * raz; // перенос цифры в другое число
            raz := raz * 10; // увеличение разряда
        end;
        n := n div 10; // удаляем последнюю цифру из исходного числа
    end;

    writeln('Ваше число ', sum)
end. 

Пример выполнения программы:

Введите целое натуральное число: 18130
Какую цифру надо удалить? 1
Ваше число 830

Программа удаляет все вхождения заданной цифры.