home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* BOOLTEST.PAS *)
- (* Die Funktion "Bool" wurde der gleichnamigen *)
- (* "Built-In"-Funktion in PL/1 nachempfunden. *)
- (* (c) 1988 Dr.Michael Eisner & TOOLBOX *)
- (* ------------------------------------------------------ *)
- PROGRAM TruthTabs(INPUT,OUTPUT);
-
- VAR P, Q, FF, FT, TF, TT : BOOLEAN;
-
- FUNCTION Bool(P, Q, FF, FT, TF, TT: BOOLEAN) : BOOLEAN;
- BEGIN
- CASE P OF
- FALSE:
- CASE Q OF
- FALSE:
- Bool:=FF;
- TRUE:
- Bool:=FT
- END;
- TRUE:
- CASE Q OF
- FALSE:
- Bool:=TF;
- TRUE:
- Bool:=TT
- END
- END
- END;
-
- FUNCTION ReadLnBoolVal(CONST OutStrg : LString) : BOOLEAN;
- { Type 'LString' is var.Length }
- { String in Microsoft Pascal ! }
- VAR C: CHAR;
- BEGIN
- REPEAT
- WRITE(OUTPUT,OutStrg);
- READLN(INPUT,C);
- CASE C OF
- 'T','t': BEGIN
- ReadLnBoolVal:=TRUE;
- RETURN
- END;
- 'F','f': BEGIN
- ReadLnBoolVal:=FALSE;
- RETURN
- END
- OTHERWISE WRITE(OUTPUT,CHR(7))
- END
- UNTIL FALSE
- END;
-
- BEGIN
- WRITELN(OUTPUT);
- P := ReadLnBoolVal('P: ');
- Q := ReadLnBoolVal('Q: ');
- WRITELN(OUTPUT);
- FF := ReadLnBoolVal('FF: ');
- FT := ReadLnBoolVal('FT: ');
- TF := ReadLnBoolVal('TF: ');
- TT := ReadLnBoolVal('TT: ');
- WRITELN(OUTPUT);
- WRITELN(OUTPUT,
- 'Bool("',P,'","',Q,'","',FF,',',FT,',',TF,',',TT,
- '") ==> ', Bool(P,Q,FF,FT,TF,TT))
- END.