F90: Somando dois números por extenso

From AdonaiMedrado.Pro.Br
Jump to: navigation, search
PROGRAM aula
	IMPLICIT NONE
	CHARACTER(LEN=10) :: NumeroPorExtenso
	INTEGER :: PrimeiroNumero, SegundoNumero
 
	WRITE (*,*) "Digite o primeiro número"
	READ (*,*) NumeroPorExtenso
	PrimeiroNumero = RetornarInteiro(NumeroPorExtenso)
 
	WRITE (*,*) "Digite o segundo número"
	READ (*,*) NumeroPorExtenso
	SegundoNumero = RetornarInteiro(NumeroPorExtenso)
 
	WRITE (*,*) "A soma é igual a ", PrimeiroNumero+SegundoNumero
CONTAINS
	INTEGER FUNCTION RetornarInteiro(ValorPorExtenso)
		CHARACTER(LEN=10), INTENT(IN) :: ValorPorExtenso
		SELECT CASE (ValorPorExtenso)
			CASE ("um")
				RetornarInteiro	= 1
			CASE ("dois")
				RetornarInteiro	= 2
			CASE ("três")
				RetornarInteiro	= 3
			CASE ("quatro")
				RetornarInteiro	= 4
			CASE ("cinco")
				RetornarInteiro	= 5
			CASE ("seis")
				RetornarInteiro	= 6
			CASE ("sete")
				RetornarInteiro	= 7
			CASE ("oito")
				RetornarInteiro	= 8
			CASE ("nove")
				RetornarInteiro	= 9
			CASE ("dez")
				RetornarInteiro	= 10
			CASE DEFAULT
				RetornarInteiro = 0
		END SELECT
	END FUNCTION
END PROGRAM aula