BNF - Fortran 90
AVALIAÇÃO 1:
Programa em Fortran90 de acordo com as BNF’s
Por
Iwyson Thuller
Entregue ao professor
Roberto Pinheiro
ENGENHARIA DE COMPUTAÇÃO
IPRJ – NOVA FRIBURGO - RJ
INTRODUÇÃO
O trabalho consiste de um programa feito em Fortran90 que dada uma equação do segundo grau retorna suas raízes, caso existam. Ao final é feita uma demonstração para verificar se o código está de acordo com a BNF para a linguagem.
CÓDIGO FONTE DO PROGRAMA
1. PROGRAM EquacaoSegundoGrau
2.
3. IMPLICIT NONE
4.
5. REAL :: a, b, c
6. REAL :: d
7. REAL :: raiz1, raiz2
8.
9. WRITE(*,*) "Raízes da equação Ax^2 + Bx + C = 0"
10. WRITE(*,*) "Insira os valores de A, B e C: "
11.
12. READ(*,*) a, b, c
13. WRITE(*,*) 'a = ', a
14. WRITE(*,*) 'b = ', b
15. WRITE(*,*) 'c = ', c
16. WRITE(*,*)
17.
18. d = b*b - 4.0*a*c
19. IF (d >= 0.0) THEN
! para verificar se tem raízes reais
20. d = SQRT(d)
! d é o delta da equação
21. raiz1 = (-b + d)/(2.0*a) ! primeira raiz
22. raiz2 = (-b - d)/(2.0*a) ! segunda raiz
23. WRITE(*,*) "As raizes sao: ", raiz1, " e ", raiz2
24. ELSE
! possui raizes complexas
25. WRITE(*,*) "A equacao nao possui raizes reais!"
26. END IF
27.
28. END PROGRAM EquacaoSegundoGrau
DEMOSNTRANDO O PROGRAMA SEGUNDO AS BNF’S
Segundo a regra
R201 executable-program is program-unit
[ program-unit ] ...
um programa executável é constituido por um [ program-unit ]. Com isso chegamos a regra
R202:
R202 program-unit is main-program or external-subprogram or module or block-data
que diz que um program-unit é um main-program, external-program, module ou block-data.
No caso do código do programa, o program-unit será constituido por um main-program. A regra R1101 mostra do que o programa principal é constituido:
R1101 main-program is [ program-stmt ]
[ specification-part ]
[ execution-part ]
[ internal-subprogram-part ] end-program-stmt Segundo essa regra, o programa principal é iniciado