Fundamentos de Programação 1 - Alcides Maya Tecnologia
Fundamentos de Programação 1 - Alcides Maya Tecnologia
Fundamentos de Programação 1 - Alcides Maya Tecnologia
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
printf(“Pressione uma tecla”);<br />
getch( );<br />
}<br />
poemsg( )<br />
{<br />
printf(“%s e %s sao casados\n”, nome1, nome2);<br />
}<br />
73<br />
<strong>Fundamentos</strong> <strong>de</strong> <strong>Programação</strong><br />
Você <strong>de</strong>ve observar que estamos usando as palavras <strong>de</strong>claração e <strong>de</strong>finição cuidadosamente quando nos<br />
referimos a variáveis externas nessa seção. “Definição” refere-se ao local on<strong>de</strong> a variável está sendo criada ou<br />
à qual é atribuída uma área <strong>de</strong> armazenamento; “<strong>de</strong>claração” refere-se ao local on<strong>de</strong> a natureza da variável é<br />
dada, sem alocação <strong>de</strong> área <strong>de</strong> armazenamento.<br />
A propósito, há uma tendência <strong>de</strong> se fazer com que tudo em vista seja uma variável extern porque simplifica<br />
aparentemente a comunicação – listas <strong>de</strong> argumentos são curtas e as variáveis estão sempre on<strong>de</strong> você as quer.<br />
Mas variáveis externas estão sempre lá, mesmo quando você não as quer.<br />
Este estilo <strong>de</strong> codificação é cheio <strong>de</strong> perigos porque leva a programas cujas conexões <strong>de</strong> dados não são<br />
óbvias – variáveis po<strong>de</strong>m ser mudadas <strong>de</strong> modo inesperado e inadvertidamente, e o programa é difícil <strong>de</strong><br />
modificar se o for necessário.<br />
Nós ainda não tratamos funções com passagem <strong>de</strong> argumentos, mas logo vamos ver como isto funciona, e<br />
ai então, po<strong>de</strong>remos i<strong>de</strong>ntificar melhor o uso <strong>de</strong>stas variáveis.<br />
Refinamento Sucessivo<br />
O refinamento sucessivo é uma técnica <strong>de</strong> programação que possibilita dividir uma função em outras funções.<br />
Deve ser aplicado com muito critério para que o programa a ser construído não se torne <strong>de</strong>sestruturado e difícil<br />
<strong>de</strong> ser compreendido por você ou por outras pessoas.<br />
Na aula anterior vimos um programa que utilizava um menu na rotina principal e 4 funções para efetuar<br />
cálculos básicos (soma, subtração, multiplicação e divisão).<br />
Neste programa po<strong>de</strong>mos aplicar esta técnica, aliada a <strong>de</strong>claração <strong>de</strong> variáveis externas.<br />
Por exemplo: a entrada e a saída são efetuadas com as mesmas variáveis. Observe que as variáveis valorA,<br />
valorB e result são <strong>de</strong>finidas quatro vezes, uma em cada função.<br />
A solução é <strong>de</strong>finir as variáveis valorA, valorB e result como externas e construir mais duas funções, uma para<br />
a entrada e a outra para a saída. As quatro funções atuais serão diminuídas em números <strong>de</strong> linhas, pois tudo o<br />
que se repete nas funções será retirado.<br />
Veja no programa a seguir a <strong>de</strong>finição das variáveis externas e a <strong>de</strong>finição das duas novas funções <strong>de</strong><br />
entrada e <strong>de</strong> saída. Perceba nas funções estão sendo <strong>de</strong>claradas as variáveis que serão utilizadas pela função,<br />
fazendo uso do conceito <strong>de</strong> variáveis externas.<br />
float valorA, valorB, result;<br />
main( )<br />
{<br />
char opcao=0;<br />
while(opcao != ‘5’)<br />
{<br />
clrscr( );<br />
printf(“1 - adicao\n”);