home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
rtsi.com
/
2014.01.www.rtsi.com.tar
/
www.rtsi.com
/
OS9
/
OSK
/
EFFO
/
forum8.lzh
/
PROGRAMME
/
MODULA
/
SET
/
bigsetter.mod
< prev
Wrap
Text File
|
1989-01-19
|
3KB
|
98 lines
(* Module Version V#012, Gdos /1.3l/, Begonnen: 19.01.86, Stand: 12.04.86 *)
(* Alex Wyss *)
(* Anpassung Miele-M2 / OS-9 19-12-88 W. Stehling *)
MODULE BigSetter ;
FROM BigSet IMPORT
(* typ *) bigset ,
(* proc *) define , destroy , nullset , fullset , assign ,
include , exclude , union , intersection , diff , symdiff ,
complement , inset , subset , superset , equalset
;
FROM InOut IMPORT
(* proc *) WriteString , Write , WriteCard , WriteLn, Read
;
CONST
setsize = 35 ;
PROCEDURE checkset ( bs : bigset ) ;
VAR
i : CARDINAL ;
flag : BOOLEAN;
BEGIN
flag := FALSE;
FOR i := 0 TO setsize DO
IF inset ( bs , i ) THEN
WriteCard ( i , 5 ) ;
flag := TRUE
END ; (* if *)
END ; (* for *)
IF NOT flag THEN
WriteString (' {}')
END;
WriteLn ;
END checkset ;
PROCEDURE printset (set : CARDINAL; head : ARRAY OF CHAR);
VAR ch : CHAR;
BEGIN
WriteLn;
WriteString (head);
WriteLn;
IF (set = 1) OR (set = 3) THEN
WriteString ('Set A : ');
checkset (seta)
END;
IF (set = 2) OR (set = 3) THEN
WriteString ('Set B : ');
checkset (setb)
END;
Read (ch);
END printset;
VAR
seta ,
setb : bigset ;
BEGIN
WriteLn;
WriteLn;
WriteString ( 'Test fuer BigSet mit 36 Elementen' ) ; WriteLn ;
seta := define ( setsize ) ; printset (1, 'define Set A') ;
include ( seta , 16 ) ; printset (1, 'include 16 in Set A') ;
include ( seta , 31 ) ; printset (1, 'include 31 in Set A') ;
exclude ( seta , 23 ) ; printset (1, 'exclude 23 in Set A') ;
exclude ( seta , 16 ) ; printset (1, 'exclude 16 in Set A') ;
include ( seta , 16 ) ; printset (1, 'include 16 in Set A') ;
setb := define ( setsize ) ;
include ( setb , 23 ) ; printset (2, 'define Set B, include 23');
include ( setb , 31 ) ; printset (2, 'include 31 in Set B');
include ( setb , 3 ) ; printset (2, 'include 3 in Set B');
include ( setb , 1 ) ; printset (2, 'include 1 in Set B');
union ( seta , setb , setb ) ; printset (3, 'Set B = Set A + Set B');
assign ( setb , seta ) ; printset (3, 'Set A = Set B');
complement ( setb ) ; printset (2, 'Set B = NOT (Set B)') ;
fullset ( seta ) ; printset (1, 'fullset (Set A)') ;
exclude (seta, 16);
exclude (seta, 13);
exclude (seta, 14);
exclude (seta, 15); printset (1, 'exclude 13, 14, 15, 16 in Set A') ;
complement ( seta ) ; printset (1, 'Set A = NOT (Set A)') ;
intersection (setb, seta, setb);
printset (3, 'Set B = Set A * Set B');
diff (seta, setb, seta);
printset (3, 'Set A = Set A - Set B');
include ( seta , 14 ) ; printset (1, 'include 14 in Set A') ;
symdiff (setb, seta, setb);
printset (3, 'Set B = Set B / Set A');
destroy ( setb ) ;
destroy ( seta ) ;
END BigSetter .