Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {Дано число в двоичной системе счисления.
- Проверить правильность ввода этого числа.
- При правильном вводе перевести число в десятичную систему счисления}
- function BLength(b:integer):integer;
- var s:integer;
- begin
- s:=0;
- while(b>0)do
- begin
- s:=s+1;
- b:=b div 10;
- end;
- BLength:=s;
- end;
- function BinDec(b,s:integer):boolean;
- var i,s2:integer;
- begin
- s2:=0;
- for i:=1 to s do
- begin
- if ((b mod 10)>-1)and((b mod 10)<2) then
- s2:=s2+1;
- b:=b div 10;
- end;
- if(s=s2)then BinDec:=true
- else BinDec:=false;
- end;
- function pow(n:integer):integer;
- var i,s:integer;
- begin
- s:=1;
- if n=0 then pow:=1
- else
- for i:=1 to n do
- s:=s*2;
- pow:=s;
- end;
- function Perevod(a,s:integer):integer;
- var i,c:integer;
- begin
- c:=0;
- for i:=s downto 1 do
- begin
- c:=(a mod 10)*pow(s-i)+c;
- a:=a div 10;
- end;
- Perevod:=c;
- end;
- var a,c,l:integer;
- begin
- write('Vvedi chislo: ');
- readln(a);
- l:=BLength(a);
- writeln(l);
- writeln(BinDec(a,l));
- if BinDec(a,l) then
- begin
- c:=Perevod(a,l);
- writeln(a,'(2)=',c,'(10)');
- end
- else
- writeln('Ne vernyi vvod chisla!');
- End.
RAW Paste Data