
Programma in Fortran 90 che calcola espressioni algebriche espresse dalla grammatica a cura del Prof. Paolo Bison - Corso di Fondamenti di Informatica - Università di Padova.
! calc.f90
!
! programma che calcola espressioni algebriche
! espresse dalla grammatica:
!
! V={0,1,2,3,4,5,6,7,8,9,+,-,=}
! N={
! p={
!
!
!
!
program calc
integer :: i
integer :: num1, num2
character (len=100) :: expr
character (len=1):: oper,ch
read *,expr
print *,”>”
print *,trim(expr)
num1=0
oper=”+”
i=0
do
i=i+1
if (i>len_trim(expr)) then
print *,”espressione non corretta”; stop
end if
ch = expr(i:i)
! lettura numero
num2 = 0
if (ch >=”0″ .and. ch< ="9") then
do
if (ch >=”0″ .and. ch<="9") then
num2 = num2*10 +ichar(ch)-ichar("0")
i = i+1; ch = expr(i:i)
else
exit
end if
end do
else
print *,"espressione non corretta"; stop
end if
! esegue operazione con numero precedente
select case (oper)
case ("+")
num1 = num1 + num2
case ("-")
num1 = num1 - num2
case default
print *,oper," non e' nel lessico"; stop
end select
! in ch c'e' un operatore o =
if (ch=="=") then
print *,num1; stop
else
oper=ch
end if
end do
end program calc

Giuseppe Ciaburro








