Из данного натурального числа удалить все цифры A. A вводится с клавиатуры — Pascal(Паскаль)

uses CRT;
VAR
 Num, B: Longint;
 A, code : Integer;
 ch: Char;
 S : String;
BEGIN
 {Опять два способа: через строку и через MOD}
 Write('Введите целое число: '); ReadLn(Num);
 Write('Введите цифру: ');
 repeat
  ch := ReadKey;
 until (ch >= '0') and (ch <= '9');
 VAL(ch, A, code);
 WriteLn(A);
 {С помощью строки}
 Str(Num, S);
 while POS(ch, S) <> 0 do delete(S, POS(ch, S), 1);
 VAL(S, B, code);
 WriteLn('1) После удаления: ',B);
 {Второй способ - "в лоб"}
 B := 0;
 While Num <> 0 do begin
   if Num MOD 10 <> A then B:= B*10 + (Num MOD 10);
   Num := Num DIV 10
 end;
 {Получается перевернутым, поэтому еще раз пересоберем}
 While B <> 0 do begin
  Num := Num * 10 + (B MOD 10);
  B   := B DIV 10;
 end;
 WriteLn('2) После удаления: ',Num);
END.

Leave a Comment

+ 87 = 89