Advertisement
Jater

Elena_function2

Dec 12th, 2012
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.26 KB | None | 0 0
  1. {Дано число в шестнадцатеричной  системе счисления.
  2. Проверить правильность ввода этого числа.
  3. При правильном вводе перевести число в десятичную систему счисления.}
  4. program Gde_to_tam_daleko_est_ty;
  5. var d,s,i,j,c,f:integer; h:string; z:boolean;
  6.  
  7. function Hex1(he:string):boolean;
  8. begin
  9.     s:=0;
  10.     for i:=1 to length(he) do
  11.         if ((ord(he[i])>47) and (ord(he[i])<58))
  12.         or ((ord(he[i])>64) and (ord(he[i])<71))
  13.         or ((ord(he[i])>96) and (ord(he[i])<103)) then
  14.             s:=s+1;
  15.     if s=length(he) then Hex1:=true
  16.     else Hex1:=false;
  17. end;
  18.  
  19. function pow(n:integer):integer;
  20. begin
  21.     s:=1;
  22.     if n=0 then pow:=1
  23.     else
  24.     for j:=1 to n do
  25.         s:=s*16;
  26.     pow:=s;
  27.    
  28. end;
  29.  
  30. begin
  31.     write('Vvedi chislo: ');
  32.     readLN(h);
  33.     c:=0;
  34.     if Hex1(h) then
  35.         begin
  36.         for i:=1 to length(h) do
  37.             begin
  38.             f:=pow(length(h)-i);
  39.             if ((ord(h[i])>47) and (ord(h[i])<58)) then
  40.                 c:=(ord(h[i])-48)*f+c;
  41.             if ((ord(h[i])>64) and (ord(h[i])<71)) then
  42.                 c:=(ord(h[i])-55)*f+c;
  43.             if ((ord(h[i])>96) and (ord(h[i])<103)) then
  44.                 c:=(ord(h[i])-87)*f+c;
  45.             end;
  46.         writeLN(h,'(16) =',c,'(10)');
  47.         end
  48.     else writeLN('Ne pravelnuy vvod! =\');
  49.     read;
  50. End.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement