On Fri, 25 Jul 2008, Lloyd Jefferson wrote:
> Write a program that will read in two arrays of integers representing the
> elements of two sets from two different user-specified input files, and
> calculate both the union and the intersection of the two sets. Use arrays to
> contain the input sets, and also to build both the union and the intersection.
> Note that the input sets may not be sorted in order, so your algorithm must
> work regardless of the order in which set elements are entered.
>
> Test your program on tww files inputA.dat and inputB.dat, containing the
> following two sets
>
> inputA=0, 1, -3, 5, -11, 6, 8, 11, 17, 15
> inputB=0, -1, 3, 7, -6, 16, 5, 12, 21
What about the following, simple but straight forward solution?
################################################################
Program U_I
!
! Determine union and interdection of two sets of integers.
! Roland Schilling, 26-07-08
!
integer :: A(10)=[0, 1, -3, 5, -11, 6, 8, 11, 17, 15]
integer :: B(9) =[0, -1, 3, 7, -6, 16, 5, 12, 21]
integer :: AuB(20), AiB(10), i, k, nu, ni
!
nu=size(A)
ni=0
AuB(1:nu)=A
do k=1,size(B)
if (any(B(k) == A)) then
ni=ni+1
AiB(ni)=B(k)
else
nu=nu+1
AuB(nu)=B(k)
end if
end do
write(*,*) AuB(1:nu)
write(*,*) AiB(1:ni)
end
#############################################################
Hope that helps,
Roland
+----------------------------------------------------------------------+
| Roland Schilling Home-Office: +49(89)32929-670 |
| Max-Planck-Institut für Gravitationsphysik |
| -- Albert-Einstein-Institut -- |
| D-85748 Garching E-mail: [log in to unmask] |
| Germany http://www.geo600.uni-hannover.de |
+----------------------------------------------------------------------+
Please avoid sending me Word or PowerPoint attachments.
See http://www.gnu.org/philosophy/no-word-attachments.html
|