home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / interpre / p_pascal / samples / truefals.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1989-11-25  |  1.3 KB  |  49 lines

  1. {$c+,y+}
  2. PROGRAM TRUEFALSE;
  3. { ASCII HORIZONTAL TAB CHARACTER: }
  4. CONST TAB = #9;
  5. TYPE  B_ARRAY = ARRAY [1:24] OF BOOLEAN;
  6.       I_ARRAY = ARRAY [1:2] OF INTEGER;
  7. VAR   i, j, k : INTEGER;
  8.       boolarray : B_ARRAY;
  9.       intarray : I_ARRAY;
  10. { INCLUDE "ROLL-YOUR-OWN" VERSIONS }
  11. { OF THE STANDARD PASCAL PACK AND }
  12. { UNPACK PROCEDURES: }
  13. {$i+'a:\samples\vpack.p'}
  14. {$i+'a:\samples\vunpack.p'}
  15. BEGIN
  16. (* THIS MAY NOT SEEM SPECTACULAR, BUT *)
  17. { BOOLEAN ARRAYS ARE STORED IN A "PARTIALLY }
  18. { PACKED" FORMAT: }
  19.  FOR i := 1 TO 24 DO
  20.   IF ODD(i) THEN boolarray[i] := TRUE
  21.    ELSE boolarray[i] := FALSE;
  22.  FOR i := 1 TO 8 DO
  23.   FOR j := 1 TO 3 DO
  24.    BEGIN
  25.     k := (i - 1) * 3 + j;
  26.     write('boolarray[', k:1, '] is ');
  27.     IF boolarray[k] THEN write('TRUE.')
  28.      ELSE write('FALSE.');
  29.     IF j = 3 THEN writeln ELSE write(TAB)
  30.    END;
  31.  writeln('Packing the boolean array using vpack:');
  32.  vpack(boolarray, 1, intarray, 1, 2);
  33.  writeln('Unpacking the bitarray using vunpack:');
  34.  vunpack(intarray, 1, boolarray, 1, 24);
  35.  writeln;
  36.  writeln('Writing out the unpacked values:');
  37.  writeln;
  38.  FOR i :=1 TO 8 DO
  39.   FOR j := 1 TO 3 DO
  40.    BEGIN
  41.     k := (i - 1) * 3 + j;
  42.     write('boolarray[', k:1, '] is ');
  43.     IF boolarray[k] THEN write('TRUE.')
  44.      ELSE write('FALSE.');
  45.     IF j = 3 THEN writeln
  46.     ELSE write(TAB)
  47.    END
  48. END.
  49.