Advertisement
machalda

Suda Parita

Jan 16th, 2012
282
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.37 KB | None | 0 0
  1. {Na standardním vstupu je řada celých čísel. Vypište přečtené hodnoty na
  2. standardní výstup v binární podobě a ke každé hodnotě vypočtěte a vypište
  3. ještě zabezpečovací bit sudé parity, který doplňuje počet binárních
  4. jedniček čísla na sudou hodnotu.}
  5.  
  6. program SudaParita;
  7. const max=16;
  8. type CeleCislo = integer;
  9.      BinarniCislo = string[max+1];
  10.  
  11. var cislo:CeleCislo;
  12.     bin:BinarniCislo;
  13.  
  14. function dec2bin(var x:CeleCislo):BinarniCislo;
  15. var zbytek:integer; //hezci by bylo asi boolean
  16. var i:integer;
  17. var pom:BinarniCislo;
  18. begin
  19.      for i:=0 to max do pom[i]:='0';
  20.      i:=max+1;
  21.      repeat
  22.            zbytek:=x mod 2;
  23.            x:=x div 2;
  24.            if zbytek = 1 then pom[i]:='1'
  25.            else pom[i]:='0';
  26.            i:=i-1;
  27.      until x<=0;
  28.      dec2bin:=pom;
  29. end;
  30.  
  31. function Parita(var x:BinarniCislo):BinarniCislo;
  32. var counter:integer;
  33. var i:integer;
  34. begin
  35.      counter:=0;
  36.      for i:=1 to max+1 do if x[i]='1' then counter:=counter+1;
  37.      if (counter mod 2)=1 then x[1]:='1'
  38.      else x[1]:='0';
  39.      Parita:=x;
  40. end;
  41. begin
  42.      while not eof do
  43.      begin
  44.       write('DEC number= ');
  45.       readln(cislo);
  46.       bin:=dec2bin(cislo);
  47.       write('BIN number= ');
  48.       writeln(bin);
  49.       write('BIN parity check number= ');
  50.       writeln(Parita(bin));
  51.       writeln;
  52.       writeln;
  53.      end;
  54. readln;
  55. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement