program funcoes_conjuntos
	implicit none
    integer conjA(100), conjB(100), tamA, tamB, i, &
            &soma_elementos, maior_elemento
    ! Leitura do conjunto A
    write(*,*) "Digite o tamanho do Conjunto A (maximo 100)"
    read (*,*) tamA
    write(*,*)
    write(*,*) "Digite os", tamA, "   elementos do Conjunto A"
    read (*,*) (conjA(i), i = 1, tamA, 1)

    ! Leitura do conjunto B
	write(*,*)
    write(*,*)    
	write(*,*) "Digite o tamanho do Conjunto B (maximo 100)"
    read (*,*) tamB
    write(*,*)
    write(*,*) "Digite os", tamB, "   elementos do Conjunto B"
    read (*,*) (conjB(i), i = 1, tamB, 1)

    ! Chamada da funcao que faz o somatorio dos elementos de um  
    ! determinado conjunto 
    write(*,*)
    write(*,*) "Somatorio dos elementos do Conjunto A =      ", &
    			&soma_elementos(conjA,tamA)
    write(*,*)
    write(*,*) "Somatorio dos elementos do Conjunto B =      ", &
    			&soma_elementos(conjB,tamB) 

    ! Chamada da funcao que encontra o maior elementos de um  
    ! determinado conjunto 
    write(*,*)
    write(*,*) "Maior elemento do Conjunto A =      ", maior_elemento(conjA,tamA) 
            
    write(*,*)
    write(*,*) "Maior elemento do Conjunto B =      ", maior_elemento(conjB,tamB) 
                
    stop     
end program funcoes_conjuntos

!
! Funcao que determina maior elemento de um conjunto.
!
function maior_elemento(conjunto, tamanho)
	implicit none
    integer tamanho, conjunto(tamanho), maior_elemento, i

    maior_elemento = conjunto(1)
    do i = 2, tamanho, 1
      if (conjunto(i) > maior_elemento) then
        maior_elemento = conjunto(i)
      end if
    end do
    return
end function maior_elemento
!
! Funcao que soma os elementos de um conjunto
!
function soma_elementos(conjunto, tamanho)
	implicit none
    integer tamanho, conjunto(tamanho), soma_elementos, i
    soma_elementos = 0
    do i = 1, tamanho, 1
      soma_elementos = soma_elementos + conjunto(i)
    end do
    return
end function soma_elementos    
    
     