Advertisement
Guest User

Untitled

a guest
May 27th, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.62 KB | None | 0 0
  1. program bits;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.   SysUtils;
  7.  
  8. var
  9. X: array[1..10] of word;
  10. od: array[1..10] of word;
  11. i:integer;
  12. j:integer;
  13. a:array[1..SizeOf(word)*8] of Char;
  14.  
  15. procedure printbin(x:Integer);
  16. var t:Integer;
  17. begin
  18. for t:=1 to SizeOf(word)*8 do
  19.     begin
  20.       if (x and 1)=1 then
  21.         a[SizeOf(word)*8-t]:='1'
  22.         else
  23.         a[SizeOf(word)*8-t]:='0';
  24.       x:=x shr 1;
  25.     end;
  26.     for t:=1 to SizeOf(word)*8 do
  27.     begin
  28.       write(a[t]);
  29.     end;
  30.     writeln;
  31. end;
  32.  
  33. // scr = shift cyclic right
  34. function scr(it:word; n:integer):integer;
  35. var
  36. bitsize:integer;
  37. lo:word;
  38. res:word;
  39. begin
  40.   if (it and 2)<>0 then
  41.   begin
  42.     bitsize:=SizeOf(word)*8;
  43.  
  44.     lo:=(it shl (bitsize - n));
  45.   res:=(it shr n);
  46.   res:=(lo or res);
  47.   scr:=res;
  48.   end
  49.   else
  50.   scr:=it;
  51. end;
  52.  
  53. procedure makemass;
  54. var
  55.   i:Integer;
  56. begin
  57.     j:=1;
  58.         for i:=1 to 10 do
  59.         begin
  60.         if odd(X[i])=false then
  61.             begin
  62.             od[j]:=X[i];
  63.             j:=j+1;
  64.             end;
  65.         end;
  66.     writeln('Chetnie elementy: ');
  67.   for i:=1 to j-1 do
  68.     begin
  69.         write(od[i], ' - ');
  70.         printbin(od[i]);
  71.       end;
  72.         end;
  73.  
  74.  
  75.  
  76. begin
  77.         randomize;
  78.         writeln('Ishodniy massiv:');
  79.     for i:=1 to 10 do
  80.         begin
  81.                 X[i]:=random(15000);
  82.                 write(X[i],' - ' );
  83.                 printbin(X[i]);
  84.  
  85.         end;
  86.         makemass();
  87.         writeln('Konechniy massiv:');
  88.     for i:=1 to 10 do
  89.         begin
  90.             X[i]:=scr(X[i], 6);
  91.                           write(X[i],' - ' );
  92.                 printbin(X[i]);
  93.         end;
  94.     makemass();
  95.     readln;
  96. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement