home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1989 / 02 / hitech / booltest.pas next >
Encoding:
Pascal/Delphi Source File  |  1988-11-28  |  1.7 KB  |  67 lines

  1. (* ------------------------------------------------------ *)
  2. (*                    BOOLTEST.PAS                        *)
  3. (*     Die Funktion "Bool" wurde der gleichnamigen        *)
  4. (*     "Built-In"-Funktion in PL/1 nachempfunden.         *)
  5. (*        (c) 1988 Dr.Michael Eisner & TOOLBOX            *)
  6. (* ------------------------------------------------------ *)
  7. PROGRAM TruthTabs(INPUT,OUTPUT);
  8.  
  9. VAR  P, Q, FF, FT, TF, TT : BOOLEAN;
  10.  
  11.   FUNCTION Bool(P, Q, FF, FT, TF, TT: BOOLEAN) : BOOLEAN;
  12.   BEGIN
  13.     CASE P OF
  14.       FALSE:
  15.         CASE Q OF
  16.           FALSE:
  17.             Bool:=FF;
  18.           TRUE:
  19.             Bool:=FT
  20.         END;
  21.       TRUE:
  22.         CASE Q OF
  23.           FALSE:
  24.             Bool:=TF;
  25.           TRUE:
  26.             Bool:=TT
  27.         END
  28.     END
  29.   END;
  30.  
  31.   FUNCTION ReadLnBoolVal(CONST OutStrg : LString) : BOOLEAN;
  32.                             { Type 'LString' is var.Length }
  33.                             { String in Microsoft Pascal ! }
  34.   VAR  C: CHAR;
  35.   BEGIN
  36.     REPEAT
  37.       WRITE(OUTPUT,OutStrg);
  38.       READLN(INPUT,C);
  39.       CASE C OF
  40.         'T','t': BEGIN
  41.                    ReadLnBoolVal:=TRUE;
  42.                    RETURN
  43.                  END;
  44.         'F','f': BEGIN
  45.                    ReadLnBoolVal:=FALSE;
  46.                    RETURN
  47.                  END
  48.         OTHERWISE WRITE(OUTPUT,CHR(7))
  49.       END
  50.     UNTIL FALSE
  51.   END;
  52.  
  53. BEGIN
  54.   WRITELN(OUTPUT);
  55.   P := ReadLnBoolVal('P: ');
  56.   Q := ReadLnBoolVal('Q: ');
  57.   WRITELN(OUTPUT);
  58.   FF := ReadLnBoolVal('FF: ');
  59.   FT := ReadLnBoolVal('FT: ');
  60.   TF := ReadLnBoolVal('TF: ');
  61.   TT := ReadLnBoolVal('TT: ');
  62.   WRITELN(OUTPUT);
  63.   WRITELN(OUTPUT,
  64.    'Bool("',P,'","',Q,'","',FF,',',FT,',',TF,',',TT,
  65.          '") ==> ', Bool(P,Q,FF,FT,TF,TT))
  66. END.
  67.