F90: Verificando freqüência de valores em um vetor ordenado
From AdonaiMedrado.Pro.Br
PROGRAM aula IMPLICIT NONE INTEGER :: n,i INTEGER, DIMENSION(:), ALLOCATABLE :: V WRITE (*,*) "Quantos elementos deseja digitar?" READ (*,*) n ALLOCATE(V(1:n)) WRITE (*,*) "Digite seus elementos" READ (*,*) (V(i),i=1,n) CALL IdenficarFrequencia(V) DEALLOCATE(V) CONTAINS SUBROUTINE IdenficarFrequencia(Vetor) IMPLICIT NONE INTEGER, DIMENSION(:), INTENT(IN) :: Vetor INTEGER :: ElementoCorrente, ElementoSendoAnalisado, & Frequencia INTEGER :: i i = 1 Frequencia = 1 ElementoCorrente = Vetor(i) DO IF (i==Size(Vetor)) THEN EXIT END IF i = i + 1 ElementoSendoAnalisado = Vetor(i) IF (ElementoCorrente == ElementoSendoAnalisado) THEN Frequencia = Frequencia + 1 ELSE WRITE (*,*) "Frequencia",ElementoCorrente,"=",Frequencia Frequencia = 1 ElementoCorrente = ElementoSendoAnalisado END IF END DO WRITE (*,*) "Frequencia",ElementoCorrente,"=",Frequencia END SUBROUTINE END PROGRAM aula