Symmetric difference: Difference between revisions
m
fix
(add FreeBASIC) |
m (fix) |
||
Line 942:
{ "John" "Bob" "Mary" "Serena" } { "Jim" "Mary" "John" "Bob" } symmetric-diff .</lang>
=={{header|FreeBASIC}}==▼
<lang freebasic>▼
redim shared as string Result(-1) 'represent our sets as strings;▼
'this'll do to illustrate the concept▼
sub sym( A() as string, B() as string )▼
dim as integer ai, bi, ri▼
dim as boolean add_it▼
for ai = lbound(A) to ubound(A)▼
add_it = true▼
for bi = lbound(B) to ubound(B)▼
if A(ai) = B(bi) then ▼
add_it=false▼
exit for 'if item is common to both lists, don't include it▼
end if▼
next bi▼
if add_it then▼
for ri = 0 to ubound(Result)▼
if A(ai) = Result(ri) then ▼
add_it=false▼
exit for▼
'if item is already in the result, don't include it again▼
end if▼
next ri▼
end if▼
if add_it then▼
redim preserve as string Result(0 to ubound(Result)+1)▼
Result(ubound(Result)) = A(ai)▼
end if▼
next ai▼
end sub▼
dim as string A(0 to 3) = {"John", "Bob", "Mary", "Serena"}▼
dim as string B(0 to 4) = {"Jim", "Mary", "John", "Bob", "Jim"}▼
'contains a double to show code can handle it▼
sym(A(), B())▼
sym(B(), A())▼
for i as uinteger = 0 to ubound(Result)▼
print Result(i)▼
next i▼
</lang>▼
{{out}}<pre>Serena▼
Jim▼
</lang>▼
=={{header|Forth}}==
Line 1,054 ⟶ 1,005:
<pre>
Serena
▲Jim
▲=={{header|FreeBASIC}}==
▲<lang freebasic>
▲redim shared as string Result(-1) 'represent our sets as strings;
▲ 'this'll do to illustrate the concept
▲sub sym( A() as string, B() as string )
▲ dim as integer ai, bi, ri
▲ dim as boolean add_it
▲ for ai = lbound(A) to ubound(A)
▲ add_it = true
▲ for bi = lbound(B) to ubound(B)
▲ if A(ai) = B(bi) then
▲ add_it=false
▲ exit for 'if item is common to both lists, don't include it
▲ end if
▲ next bi
▲ if add_it then
▲ for ri = 0 to ubound(Result)
▲ if A(ai) = Result(ri) then
▲ add_it=false
▲ exit for
▲ 'if item is already in the result, don't include it again
▲ end if
▲ next ri
▲ end if
▲ if add_it then
▲ redim preserve as string Result(0 to ubound(Result)+1)
▲ Result(ubound(Result)) = A(ai)
▲ end if
▲ next ai
▲end sub
▲dim as string A(0 to 3) = {"John", "Bob", "Mary", "Serena"}
▲dim as string B(0 to 4) = {"Jim", "Mary", "John", "Bob", "Jim"}
▲ 'contains a double to show code can handle it
▲sym(A(), B())
▲sym(B(), A())
▲for i as uinteger = 0 to ubound(Result)
▲ print Result(i)
▲next i
▲</lang>
▲{{out}}<pre>Serena
Jim
</pre>
|