Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Помогите написать небольшую программу

Автор: Uneor 25.12.2013 22:16

задание:
Из заданного числа удалить заданную цифру и показать полученное число.
Как это сделать? blink.gif

Автор: APAL 9.01.2014 13:26

Var
A : Longint;

Function GetNumCifr(A : Longint) : Byte;
Var l : Byte;
k : LongInt;
Begin
k:=A;l:=0;
While k>0 do
Begin
Inc(l);
k:=k div 10;
End;
GetNumCifr:=l;
End;

Function GetNumInPos(B : Longint;N : Byte) : Byte;
Var ll : Integer;
kk : LongInt;
Begin
kk:=B; ll:=1;
While ll<N do
Begin
Inc(ll);
kk:=kk div 10;
End;
GetNumInPos:=kk mod 10;
End;

Function DelNumInPos(B : Longint;N : Byte) : Longint;
Var mm : Longint;
vv : Byte;
Begin
If N<=GetNumCifr(B) then
Begin
mm:=0;
For vv:=GetNumCifr(B) downto 1 do
If vv<>N then mm:=mm*10+GetNumInPos(B,vv);
DelNumInPos:=mm;
End
else DelNumInPos:=B;
End;

Function SetNumInPos(C : Longint;N,SetNum : Byte) : Longint;
Var mm : Longint;
vv : Byte;
Begin
If N<=GetNumCifr© then
Begin
mm:=0;
For vv:=GetNumCifr© downto 1 do
If vv<>N then mm:=mm*10+GetNumInPos(C,vv)
else mm:=mm*10+SetNum;
SetNumInPos:=mm;
End
else SetNumInPos:=C;
End;

Begin
A:=12345;
Writeln(A);
Writeln('Цифр в числе: ',GetNumCifr(A));
Writeln('Во втором разряде цифра: ',GetNumInPos(A,2));
Writeln('Второй разряд был удалён: ',DelNumInPos(A,2));
end.