28.02.2023 Views

Logica_de_Programacao_3_Edicao_Livro

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Capítulo 6 Modularizando algoritmos 1 137

FIGURA 6.5

Escopo de variáveis

---------~------------------~---------

K, J

-------~- ------------------

K, X Q)

..----------.-- - --- ---------------- ---

y 0 X

'------~- - - ----- - - -- - - - --- --- --- - - - ~- -✓

:......................,.'................•.......

. .

.....................................

..--------~- ------------------ -~ -

M

'----------'-- ------------------

'

. . .. ..

' •• ..

'••. ····

.•.. ·-..

...-K---- ·····.. .... ·····.....

y

..

,•

.... •·

,,

-e, - ,

i .....................................•..•' .•...•...••······

'-----------'--••········-------L------------

M

.... \.•,

...

\

\

\.

/

.'

K

.,,·•,,•./.-·.-····..........

l

... ..

', ',,

\ .

.

l

l '

\ J

Observarnos que as variáveis K e J definidas no início do algoritmo são visíveis, a p1;ncípio,

a todo e qualquer rnódulo, ou seja, sã.o globais a r.odos. A variável M é local ao rnódulo

3 e visível ape nas a este , assirn corno a variável Y é local ao rnódulo 2.

Em outra situação, ten1os a variável X, que é local ao 1nódulo 1, se11do visível tan1bén1 ao

1nódulo 2, pode11do ser definida relativan1ente con10 global ao 1nódulo 2.

Em u1na situação bastante particular, na qual ocorre un1 conflito na declaração da variável

K (início do algoritrno e inte1;or do módulo 1), assurniremos sempre que a va1;ável a

ser utilizada no interior do rnódulo será a que foi definida neste, ignorando a existência de

outra variável de 1nesn10 non1e no ârnbito global. Ten10s, então, que os n1ódulos 1 e 2 não

enxergan1 a 1nesn1a variável global K vista pelo módulo 3, e sim a variável K definida Jocal-

1ne11te a 1 e globaltnente a 2.

Refazenclo o algoritmo do cartão de ponto utilizando os conceitos de escopo de variáveis,

te1nos:

ALGORITMO 6.5 Cálculo dos atrasos e horas trabalhadas - versão 3

1. inicio

2. tipo di a = regi stro

3.

4.

5.

6.

7.

8.

9.

10.

inteiro: em, sm, et , st;

fimregistro ;

tipo totDia = registro

inteiro: atraso, horas ;

fimregistro ;

tipo Vl = vetor [1 .. 31] de

tipo V2 = vetor [1 .. 31] de

Vl: cartão;

dia ;

totDia;

(Couli11.1u1)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!