Jater

Kristina_function

Dec 16th, 2012
97
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. {Дано число в двоичной системе счисления.
  2. Проверить правильность ввода этого числа.
  3. При правильном вводе перевести число в десятичную систему счисления}
  4.  
  5. function BLength(b:integer):integer;
  6. var s:integer;
  7. begin
  8.     s:=0;
  9.     while(b>0)do
  10.         begin
  11.         s:=s+1;
  12.         b:=b div 10;
  13.         end;
  14.     BLength:=s;
  15. end;
  16.  
  17. function BinDec(b,s:integer):boolean;
  18. var i,s2:integer;
  19. begin
  20.     s2:=0;
  21.     for i:=1 to s do
  22.         begin
  23.         if ((b mod 10)>-1)and((b mod 10)<2) then
  24.             s2:=s2+1;
  25.         b:=b div 10;
  26.         end;
  27.     if(s=s2)then BinDec:=true
  28.         else BinDec:=false;
  29. end;
  30.  
  31. function pow(n:integer):integer;
  32. var i,s:integer;
  33. begin
  34.     s:=1;
  35.     if n=0 then pow:=1
  36.     else
  37.     for i:=1 to n do
  38.         s:=s*2;
  39.     pow:=s;
  40.    
  41. end;
  42.  
  43. function Perevod(a,s:integer):integer;
  44. var i,c:integer;
  45. begin
  46.     c:=0;
  47.     for i:=s downto 1 do
  48.         begin
  49.         c:=(a mod 10)*pow(s-i)+c;
  50.         a:=a div 10;
  51.         end;
  52.     Perevod:=c;
  53. end;
  54.  
  55. var a,c,l:integer;
  56. begin
  57.     write('Vvedi chislo: ');
  58.     readln(a);
  59.     l:=BLength(a);
  60.     writeln(l);
  61.     writeln(BinDec(a,l));
  62.     if BinDec(a,l) then
  63.         begin
  64.         c:=Perevod(a,l);
  65.         writeln(a,'(2)=',c,'(10)');
  66.         end
  67.     else
  68.         writeln('Ne vernyi vvod chisla!');
  69. End.
RAW Paste Data