Difference between revisions of "F90: Verificando freqüência de valores em um vetor ordenado"

From AdonaiMedrado.Pro.Br
Jump to: navigation, search
(New page: <code lang="fortran"> PROGRAM aula IMPLICIT NONE INTEGER :: n,i INTEGER, DIMENSION(:), ALLOCATABLE :: V WRITE (*,*) "Quantos elementos deseja digitar?" READ (*,*) n ALLOCATE(V(1:n)) ...)
 
 
Line 39: Line 39:
 
END SUBROUTINE
 
END SUBROUTINE
 
END PROGRAM aula
 
END PROGRAM aula
</fortran>
+
</code>

Latest revision as of 17:38, 6 November 2008

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