RosettaCodeData/Task/Set/Run-BASIC/set.run

71 lines
1.6 KiB
Plaintext

A$ = "apple cherry elderberry grape"
B$ = "banana cherry date elderberry fig"
C$ = "apple cherry elderberry grape orange"
D$ = "apple cherry elderberry grape"
E$ = "apple cherry elderberry"
M$ = "banana"
print "A = ";A$
print "B = ";B$
print "C = ";C$
print "D = ";D$
print "E = ";E$
print "M = ";M$
if instr(A$,M$) = 0 then a$ = "not "
print "M is ";a$; "an element of Set A"
a$ = ""
if instr(B$,M$) = 0 then a$ = "not "
print "M is ";a$; "an element of Set B"
un$ = A$ + " "
for i = 1 to 5
if instr(un$,word$(B$,i)) = 0 then un$ = un$ + word$(B$,i) + " "
next i
print "union(A,B) = ";un$
for i = 1 to 5
if instr(A$,word$(B$,i)) <> 0 then ins$ = ins$ + word$(B$,i) + " "
next i
print "Intersection(A,B) = ";ins$
for i = 1 to 5
if instr(B$,word$(A$,i)) = 0 then dif$ = dif$ + word$(A$,i) + " "
next i
print "Difference(A,B) = ";dif$
a = subs(A$,B$,"AB")
a = subs(A$,C$,"AC")
a = subs(A$,D$,"AD")
a = subs(A$,E$,"AE")
a = eqs(A$,B$,"AB")
a = eqs(A$,C$,"AC")
a = eqs(A$,D$,"AD")
a = eqs(A$,E$,"AE")
end
function subs(a$,b$,sets$)
for i = 1 to 5
if instr(b$,word$(a$,i)) <> 0 then subs = subs + 1
next i
if subs = 4 then
print left$(sets$,1);" is a subset of ";right$(sets$,1)
else
print left$(sets$,1);" is not a subset of ";right$(sets$,1)
end if
end function
function eqs(a$,b$,sets$)
for i = 1 to 5
if word$(a$,i) <> "" then a = a + 1
if word$(b$,i) <> "" then b = b + 1
if instr(b$,word$(a$,i)) <> 0 then c = c + 1
next i
if (a = b) and (a = c) then
print left$(sets$,1);" is equal ";right$(sets$,1)
else
print left$(sets$,1);" is not equal ";right$(sets$,1)
end if
end function