F90: Formatação da saída

From AdonaiMedrado.Pro.Br
Jump to: navigation, search
PROGRAM aula
	IMPLICIT NONE
	CALL MenuPrincipal()
CONTAINS
	SUBROUTINE MenuPrincipal()
		IMPLICIT NONE
		INTEGER :: Opcao, Erro
		WRITE (*,*) "1- Testar formatação de inteiro"
		WRITE (*,*) "2- Testar formatação de real"
		WRITE (*,*) "3- Sair"
		DO
			READ (*,*,IOstat=Erro) Opcao
			IF (Erro <= 0 .AND. Opcao >= 1 .AND. Opcao <=3) THEN
				SELECT CASE (Opcao)
					CASE (1)
						CALL TestarFormatacaoInteiro()
					CASE (2)
						CALL TestarFormatacaoReal()
					CASE (3)
						RETURN
				END SELECT
				EXIT
			END IF
		END DO
	END SUBROUTINE MenuPrincipal
	SUBROUTINE TestarFormatacaoInteiro()
		IMPLICIT NONE
		INTEGER :: Numero
		CHARACTER(LEN=10) :: Formatacao 
		WRITE (*,*) "Digite um número inteiro"
		READ (*,*) Numero
		WRITE (*,*) "Digite a formatação (exemplos: (I5), (I5.5))"
		READ (*,*) Formatacao
		WRITE (*,Formatacao) Numero
	END SUBROUTINE TestarFormatacaoInteiro
	SUBROUTINE TestarFormatacaoReal()
		IMPLICIT NONE
		REAL :: Numero
		CHARACTER(LEN=10) :: Formatacao 
		WRITE (*,*) "Digite um número real"
		READ (*,*) Numero
		WRITE (*,*) "Digite a formatação (exemplos: (F5.2), (E5.2) (E5.2E3))"
		READ (*,*) Formatacao
		WRITE (*,Formatacao) Numero
	END SUBROUTINE TestarFormatacaoReal
END PROGRAM aula