Capítulo 8. Funções e Subrotinas - UFMG
Capítulo 8. Funções e Subrotinas - UFMG
Capítulo 8. Funções e Subrotinas - UFMG
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Capítulo</strong> <strong>8.</strong> Sub-Programas e Módulos 87<br />
Programa <strong>8.</strong>1: Exemplo de emprego de rotinas internas.<br />
program bascara1<br />
implicit none<br />
l o g i c a l : : c o n t r o l e<br />
real : : a , b , c<br />
real : : x1 , x2 ! Raizes r e a i s .<br />
!<br />
do<br />
print , ”Entre com os v a l o r e s dos c o e f i c i e n t e s ( a , b , c ) , ”<br />
print , ”onde ax2 + bx + c . ”<br />
read , a , b , c<br />
c a l l bascara ( a , b , c , c o n t r o l e , x1 , x2 )<br />
i f ( c o n t r o l e ) then<br />
print , ”As r a i z e s ( r e a i s ) sao : ”<br />
print , ”x1=” , x1<br />
print , ”x2=” , x2<br />
exit<br />
else<br />
print , ”As r a i z e s sao complexas . Tente novamente . ”<br />
end i f<br />
end do<br />
CONTAINS<br />
subroutine bascara ( a2 , a1 , a0 , r a i z e s r e a i s , r1 , r2 )<br />
! V a r i a v e i s mudas :<br />
real , intent ( in ) : : a0 , a1 , a2<br />
logical , intent ( out ) : : r a i z e s r e a i s<br />
real , intent ( out ) : : r1 , r2<br />
! V a r i a v e i s l o c a i s :<br />
real : : d i s c<br />
!<br />
r a i z e s r e a i s= t e s t a d i s c ( a2 , a1 , a0 )<br />
i f ( . not . r a i z e s r e a i s ) return<br />
d i s c= a1a1 − 4 a0a2<br />
r1= 0.5( − a1 − s q r t ( d i s c ) ) / a2<br />
r2= 0.5( − a1 + s q r t ( d i s c ) ) / a2<br />
return<br />
end subroutine bascara<br />
!<br />
function t e s t a d i s c ( c2 , c1 , c0 )<br />
l o g i c a l : : t e s t a d i s c<br />
! V a r i a v e i s mudas :<br />
real , intent ( in ) : : c0 , c1 , c2<br />
i f ( c1c1 − 4 c0c2 >= 0 . 0 ) then<br />
t e s t a d i s c= . true .<br />
else<br />
t e s t a d i s c= . f a l s e .<br />
end i f<br />
return<br />
end function t e s t a d i s c<br />
end program bascara1<br />
Autor: Rudi Gaelzer – IFM/UFPel Impresso: 23 de abril de 2008