10  REM ****  HP TIME-SHARED BASIC PROGRAM LIBRARY  ********************
20  REM
30  REM            SETS: UNION AND INTERSECTION OF SETS
40  REM
50  REM            36337  (A801)  REV A -- 10/71
60  REM
70  REM ****  CONTRIBUTED PROGRAM  *************************************
80  REM SETS - COPYRIGHT 1971, POLYTECHNIC INSTITUTE OF BROOKLYN
90  REM W. TEPPER, WYANDANCH HS, 7/29/69
100  REM  REVISED BY C.LOSIK  8-10-70 
110  DIM A[30],B[30]
120  REM  UP TO 30 ELEMENTS PER SET ARE ALLOWED(UNLESS DIM IS CHANGED)  
130  LET X=0
140  PRINT "THIS PROGRAM FINDS THE UNION AND INTERSECTION OF ANY TWO"
150  PRINT "NUMERICAL SETS."
160  PRINT 
170  PRINT "  HOW MANY ELEMENTS IN THE FIRST SET";
180  INPUT N
190  IF N=0 THEN 350
200  IF N=INT(N) THEN 230
210  PRINT "ONLY AN INTEGER NUMBER OF ELEMENTS IS POSSIBLE."
220  GOTO 160
230  IF N <= 30 THEN 270
240  PRINT "THE MACHINE CANNOT HOLD MORE THAN 30 ELEMENTS.";
250  PRINT "  SEE YOUR TEACHER."
260  GOTO 910
270  IF N>0 THEN 300
280  PRINT "THERE CANNOT BE A NEGATIVE NUMBER OF ELEMENTS."
290  GOTO 160
300  PRINT 
310  PRINT "THESE ARE - (HIT THE RETURN KEY AFTER ENTERING EACH ELEMENT";
320  FOR K=1 TO N
330  INPUT A[K]
340  NEXT K
350  PRINT 
360  PRINT "  HOW MANY ELEMENTS IN THE SECOND SET";
370  INPUT J
380  IF J=0 THEN 770
390  IF J=INT(J) THEN 420
400  PRINT "ONLY AN INTEGER NUMBER OF ELEMENTS IS POSSIBLE."
410  GOTO 350
420  IF J>30 THEN 240
430  IF J>0 THEN 460
440  PRINT "THERE CANNOT BE A NEGATIVE NUMBER OF ELEMENTS."
450  GOTO 350
460  PRINT 
470  PRINT "THESE ARE:"
480  FOR K1=1 TO J
490  INPUT B[K1]
500  NEXT K1
510  PRINT 
520  PRINT 
530  IF N <= 0 THEN 860
540  PRINT "THE INTERSECTION CONTAINS ";
550  FOR K=1 TO N
560  FOR L=1 TO J
570  IF A[K]=B[L] THEN 600
580  NEXT L
590  GOTO 620
600  PRINT A[K];
610  LET X=X+1
620  NEXT K
630  IF X>0 THEN 650
640  PRINT "  EMPTY SET....NO ELEMENTS"
650  PRINT 
660  PRINT "THE UNION CONTAINS";
670  FOR L=1 TO J
680  PRINT B[L];
690  NEXT L
700  FOR K=1 TO N
710  FOR L=1 TO J
720  IF A[K]=B[L] THEN 750
730  NEXT L
740  PRINT A[K];
750  NEXT K
760  GOTO 910
770  IF N <= 0 THEN 840
780  PRINT "INTERSECTION IS EMPTY"
790  PRINT "UNION CONTAINS";
800  FOR K=1 TO N
810  PRINT A[K];
820  NEXT K
830  GOTO 910
840  PRINT "UNION AND INTERSECTION ARE EMPTY"
850  GOTO 910
860  PRINT "INTERSECTION IS EMPTY"
870  PRINT "UNION CONTAINS";
880  FOR K=1 TO J
890  PRINT B[K];
900  NEXT K
910  PRINT 
920  PRINT 
930  PRINT "DO YOU WANT ANOTHDR RUN (1=YES, 0=NO) : ";
940  INPUT N
950  IF N=1 THEN 160
960  IF N <> 0 THEN 930
970  END 
